RustLatam 2019 - Without Boats: Zero-Cost Async IO
Rust Programming Language5 HN recommenders · recommended in 4 months, 2019–2020
talk · intermediate · 2019–2020 on HN
Without Boats, a Rust language team member, explains the design of Rust's async/await at RustLatam 2019. He covers the history and constraints behind zero-cost, allocation-free async state machines.
Recommended during the await syntax debates for explaining the constraints that shaped Rust's async design.
Up next
1 mo on HNCompiling and Optimizing Scripting Languages
Google TechTalks
1 HN recommend · 2011–2020
5 mo on HNSimon Peyton Jones: Data Parallel Haskell
nuACM
5 HN recommender · 2010–2017
5 mo on HNP vs. NP and the Computational Complexity Zoo
hackerdashery
4 HN recommender · 2015–2026
1 mo on HNLucas Cavalcanti & Edward Wible - Exploring four hidden superpowers of Datomic
ClojureTV
1 HN recommend · 2015–2024
12 mo on HNReverse emulating the NES to give it SUPER POWERS!
suckerpinch
12 HN recommender · 2018–2025
10 mo on HNConway's Game Of Life in APL
Dyalog
11 HN recommender · 2010–2024
5 mo on HN"Clean" Code, Horrible Performance
Molly Rocket
3 HN recommender · 2023–2026
4 mo on HNRust's Journey to Async/Await
InfoQ
5 HN recommender · 2020–2026
11 mo on HNCppCon 2015: Andrei Alexandrescu “std::allocator...”
CppCon
7 HN recommender · 2017–2025
12 mo on HNLexical Scanning in Go - Rob Pike
GoogleFOSSSydney
13 HN recommender · 2012–2025
10 mo on HNCppCon 2017: Matt Kulukundis “Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step”
CppCon
9 HN recommender · 2018–2026
9 mo on HNRustConf 2018 - Closing Keynote - Using Rust For Game Development by Catherine West
Rust Programming Language
9 HN recommender · 2018–2023
5 comments from Hacker News
The nuances in this case went well beyond what I was expecting - it's actually more than just syntax, this heavily crosses over into semantics. It's been a very impressive process, and I was surprised at the power of the solution they landed on. - Rust has to find a syntax that can work with different underlying libraries (Rust can compile to lots of different targets, some will have capability to accommodate larger libraries than others) - The abstraction can't incur undue overhead (callback-based solutions may cause allocations that are hard to keep under control and will split the language if it spreads too much) - The syntax should be pleasant to write for at least the majority of people (modeling your entire application as a state machine around async computation is pretty unpleasant) - The compiler has to be able to give helpful error messages (this was a problem early on I think) - Language authors had to think about how the borrow checker would work across async points, and whether to invest in changing the language to make that possible. - and so on and so on I really loved this talk by Without Boats (the author of the friendly article) going over all this stuff, really gave me a good sense of what they were up against ▶ this video
I was referring to the fact that it is the only async implementation that I know of that compiles to a state machine that doesn't need to allocate new memory for each continuation. I think it will translate to extremely fast web services in practice. Pinning is of course part of the elegant solution. There are some great videos about it: link ▶ this video
I thought this talk about Async in Rust was pretty cool (RustLatam 2019 - Without Boats: Zero-Cost Async IO): ▶ this video
I don't know anything about Kotlin, but if you are interested in the Rust story (history and evolution) this is an interesting talk: RustLatam 2019 - Without Boats: Zero-Cost Async IO ▶ this video
That document isn't about arguing one way or the other, it lists all the different options and pros/cons. The post thread is the current stance of the lang team and letting everyone know they're going to make the final decision later this month. Boats' keynote at rust-latam goes into some more detail as well. ▶ this video I'm just a casual observer here, but it seems like just about every argument and position on the subject has been iterated across Github, internals.rust-lang.org, the IRC/Discourse/Zulip chats, Reddit, and now HN. This post by boats is just the next stepping stone alerting the community to the direction the team is leading and that it's going to be over soon.