<story><title>Async-await on stable Rust</title><url>https://blog.rust-lang.org/2019/11/07/Async-await-stable.html</url></story><parent_chain><item><author>ComputerGuru</author><text>I’ve been playing with async await in a polar opposite vertical than its typical use case (high tps web backends) and believe this was the missing piece to further unlock great ergonomic and productivity gains for system development: embedded no_std.&lt;p&gt;Async&amp;#x2F;await lets you write non-blocking, single-threaded but highly interweaved firmware&amp;#x2F;apps in allocation-free, single-threaded environments (bare-metal programming without an OS). The abstractions around stack snapshots allow seamless coroutines and I believe will make rust pretty much the easiest low-level platform to develop for.</text></item></parent_chain><comment><author>vanderZwan</author><text>Have you ever heard of Esterel or Céu? They follow the &lt;i&gt;synchronous&lt;/i&gt; concurrency paradigm, which apparently has specific trade-offs that give it great advantages on embedded (IIRC the memory overhead per Céu &amp;quot;trail&amp;quot; is much lower than for async threads (in the order of &lt;i&gt;bytes&lt;/i&gt;), fibers or whatnot, but computationally it scales worse with the nr of trails).&lt;p&gt;Céu is the more recent one of the two and is a research language that was designed with embedded systems in mind, with the PhD theses to show for it [2][3].&lt;p&gt;I wish other languages would adopt ideas from Céu. I have a feeling that if there was a language that supports both kinds of concurrency and allows for the GALS approach (globally asynchronous (meaning threads in this context), locally synchronous) you would have something really powerful on your hands.&lt;p&gt;EDIT: Er... sorry, this may have been a bit of an inappropriate comment, shifting the focus away from the Rust celebration. I&amp;#x27;m really happy for Rust for finally landing this! (but could you pretty please start experimenting with synchronous concurrency too? ;) )&lt;p&gt;[0] &lt;a href=&quot;http:&amp;#x2F;&amp;#x2F;ceu-lang.org&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;ceu-lang.org&amp;#x2F;&lt;/a&gt;&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Esterel&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;en.wikipedia.org&amp;#x2F;wiki&amp;#x2F;Esterel&lt;/a&gt;&lt;p&gt;[2] &lt;a href=&quot;http:&amp;#x2F;&amp;#x2F;ceu-lang.org&amp;#x2F;chico&amp;#x2F;ceu_phd.pdf&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;ceu-lang.org&amp;#x2F;chico&amp;#x2F;ceu_phd.pdf&lt;/a&gt;&lt;p&gt;[3] &lt;a href=&quot;http:&amp;#x2F;&amp;#x2F;sunsite.informatik.rwth-aachen.de&amp;#x2F;Publications&amp;#x2F;AIB&amp;#x2F;2018&amp;#x2F;2018-05.pdf&quot; rel=&quot;nofollow&quot;&gt;http:&amp;#x2F;&amp;#x2F;sunsite.informatik.rwth-aachen.de&amp;#x2F;Publications&amp;#x2F;AIB&amp;#x2F;20...&lt;/a&gt;</text></comment>
<story><title>Async-await on stable Rust</title><url>https://blog.rust-lang.org/2019/11/07/Async-await-stable.html</url></story><parent_chain><item><author>ComputerGuru</author><text>I’ve been playing with async await in a polar opposite vertical than its typical use case (high tps web backends) and believe this was the missing piece to further unlock great ergonomic and productivity gains for system development: embedded no_std.&lt;p&gt;Async&amp;#x2F;await lets you write non-blocking, single-threaded but highly interweaved firmware&amp;#x2F;apps in allocation-free, single-threaded environments (bare-metal programming without an OS). The abstractions around stack snapshots allow seamless coroutines and I believe will make rust pretty much the easiest low-level platform to develop for.</text></item></parent_chain><comment><author>estebank</author><text>Keep in mind that the current release only brings an MVP of the async&amp;#x2F;await feature to the table. The two things I&amp;#x27;ve missed are both no_std support and async trait methods, but there are reasons these haven&amp;#x27;t been completed yet. That doesn&amp;#x27;t mean they won&amp;#x27;t be available in the future, just that the team has prioritized to release a significant part of the feature that many will already find useful.</text></comment>