# Irenic language comparisons: Ada and Rust, AoC overall

**URL:** <https://forum.ada-lang.io/t/irenic-language-comparisons-ada-and-rust-aoc-overall/1275>\
**Category:** General\
**Created:** [October 1, 2024, 11:49am UTC](https://forum.ada-lang.io/t/irenic-language-comparisons-ada-and-rust-aoc-overall/1275 "2024-10-01T11:49:27Z")\
**Posts on this page:** 7\
**Page:** 4

<div class="post-metadata">

**Author:** ![kevlar700](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/kevlar700/32/1118_2.png) [@kevlar700](https://forum.ada-lang.io/u/kevlar700)\
**Post date:** [October 17, 2024, 4:29pm UTC](https://forum.ada-lang.io/t/irenic-language-comparisons-ada-and-rust-aoc-overall/1275/61 "2024-10-17T16:29:24Z")

</div>

[![](https://img.youtube.com/vi/_lwvoBBqa9k/maxresdefault.jpg "Async Rust Is The Bane Of My Existence | Prime Reacts") ](https://www.youtube.com/watch?v=_lwvoBBqa9k)

---

<div class="post-metadata">

**Author:** ![cantanima](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/cantanima/32/121_2.png) [@cantanima](https://forum.ada-lang.io/u/cantanima)\
**Post date:** [October 19, 2024, 2:51am UTC](https://forum.ada-lang.io/t/irenic-language-comparisons-ada-and-rust-aoc-overall/1275/62 "2024-10-19T02:51:35Z")

</div>

I understand this video a _little_ differently. It isn’t `async` and `await` that are ~~difficult~~ painful so much as trying to use them while also using non-`async` code.

I watched the video over 3 days, but a project I work on does something like this and it doesn’t seem quite as painful as they make it out to be. IIRC (I’m on another project at the moment) the synchronous api basically wrap calls to the asynchronous api by spawning a blocking tokio thread and using `async` in there. It’s relatively easy and there’s no code duplication.

Caveats:

- We do feature-flag it, so that cargo builds separate products for synchronous and asynchronous usage.
- I’ve implemented some of the API (on both the synchronous and asynchronous ends), but I didn’t design the feature flagging. What looks relatively easy to me may have been a bear to design.
- I also don’t like how `async` taints everything it touches. [That’s one reason I asked about this in Ada a while back](https://forum.ada-lang.io/t/do-colored-subprograms-exist-in-ada/343/6).
- I think there was another caveat, but I’ve forgotten it. 😵‍💫

---

<div class="post-metadata">

**Author:** ![kevlar700](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/kevlar700/32/1118_2.png) [@kevlar700](https://forum.ada-lang.io/u/kevlar700)\
**Post date:** [October 19, 2024, 6:17am UTC](https://forum.ada-lang.io/t/irenic-language-comparisons-ada-and-rust-aoc-overall/1275/63 "2024-10-19T06:17:18Z")

</div>

You understand it far better than I. I guess he is using the part about trying not to use Tokio to create a dramatic title. Perhaps I should be more thankful for Adas standard runtime? 🤔

---

<div class="post-metadata">

**Author:** ![kevlar700](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/kevlar700/32/1118_2.png) [@kevlar700](https://forum.ada-lang.io/u/kevlar700)\
**Post date:** [October 19, 2024, 6:29am UTC](https://forum.ada-lang.io/t/irenic-language-comparisons-ada-and-rust-aoc-overall/1275/64 "2024-10-19T06:29:33Z")

</div>

> [@kevlar700](#):
>
> Perhaps I should be more thankful for Adas standard runtime?

Though Rust projects seem to happily create ip stacks without Tokio or runtime support. Whilst Ada stacks tend to depend on e.g. protected objects except for the Spark one that only supports ipv4.

> **[GitHub - smoltcp-rs/smoltcp: a smol tcp/ip stack](https://github.com/smoltcp-rs/smoltcp)**
>
> a smol tcp/ip stack

---

<div class="post-metadata">

**Author:** ![kevlar700](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/kevlar700/32/1118_2.png) [@kevlar700](https://forum.ada-lang.io/u/kevlar700)\
**Post date:** [October 24, 2024, 12:18pm UTC](https://forum.ada-lang.io/t/irenic-language-comparisons-ada-and-rust-aoc-overall/1275/65 "2024-10-24T12:18:09Z")

</div>

I happened across another view of theprimagens, which is that Rust doesn’t scale because if you “throw in an extra lifetime” then you have to modify a ton of code.

---

<div class="post-metadata">

**Author:** ![Lucretia](https://forum.ada-lang.io/user_avatar/forum.ada-lang.io/lucretia/32/17_2.png) [@Lucretia](https://forum.ada-lang.io/u/Lucretia)\
**Post date:** [October 24, 2024, 12:26pm UTC](https://forum.ada-lang.io/t/irenic-language-comparisons-ada-and-rust-aoc-overall/1275/66 "2024-10-24T12:26:43Z")

</div>

Exactly the same reason for [loglog](https://loglog.games/blog/leaving-rust-gamedev/) games (and plenty of others I’ve seen) dropping rust.

---

<div class="post-metadata">

**Author:** ![Micronian2](https://forum.ada-lang.io/letter_avatar_proxy/v4/letter/m/e56c9b/32.png) [@Micronian2](https://forum.ada-lang.io/u/Micronian2)\
**Post date:** [October 24, 2024, 8:19pm UTC](https://forum.ada-lang.io/t/irenic-language-comparisons-ada-and-rust-aoc-overall/1275/67 "2024-10-24T20:19:21Z")

</div>

While I don’t doubt the reasons why those individuals reported their displeasure with Rust, let’s not forget there are far more success stories. It would be interesting to know how what they would think if they tried Ada.

[Previous page](https://forum.ada-lang.io/t/irenic-language-comparisons-ada-and-rust-aoc-overall/1275.md?page=3)
