Async Rust: the good, the bad, and the ugly - Steve Klabnik

  Рет қаралды 16,815

All Things Open

All Things Open

Күн бұрын

Presented at All Things Open 2023
Presented by Steve Klabnik - Oxide Computer Company
Title: Async Rust: the good, the bad, and the ugly
Abstract: Rust's async/await feature shipped in 2018 in an MVP state. Since then, a lot have things have changed, and there's a lot more work to do. In this talk, Steve will talk frankly about the design of async/await in Rust, its strengths, its weaknesses, and lessons learned from using it in production.
About All Things Open
All Things Open is a universe of open source events and platforms designed to educate and connect technologists around the world. It includes the All Things Open conference, the largest open source / tech / web event on the U.S. East Coast, meetups in the Research Triangle Park (RTP) of NC, South Carolina, and New York City, and a KZbin channel with more than 1,000 free recordings. See everything we do at allthingsopen.org.
Join our meetups:
New York City meetup: www.meetup.com...
South Carolina meetup: www.meetup.com...
Research Triangle Park, NC meetup: www.meetup.com...
Follow All Things Open:
KZbin: / allthingsopen
LinkedIn: / all-things-open
Instagram: / allthingsopen
Facebook: / allthingsopen
Twitter: / allthingsopen

Пікірлер: 32
@meyou118
@meyou118 9 ай бұрын
rust's use of await is a big insight! i love it
@manishroy3024
@manishroy3024 Жыл бұрын
I think the joke failed at 2:30. The slide says "two raised to the power of its position" - which means 2^0 = 1 . And not the other way around.
@zeroows
@zeroows 11 ай бұрын
Still, the joke stands. Meaning only one would talk about it.
@No-op
@No-op 10 ай бұрын
You do realize that the numbers are proportional to the time spent discussing the associated feature not the number of individuals discussing it@@zeroows
@heavenlyactsatheavycost7629
@heavenlyactsatheavycost7629 7 ай бұрын
he put that there for the compiler-programmer watchers to error out on. smart.
7 ай бұрын
Off by one error
@theevilcottonball
@theevilcottonball 2 ай бұрын
@@heavenlyactsatheavycost7629 It's actually anyone who knows this subset of math.
@realSimonPeter
@realSimonPeter 2 ай бұрын
Minor correction: Swift also has async await and a built-in tokio-like runtime and is not a garbage collected language.
@manohardenver6404
@manohardenver6404 11 ай бұрын
Start at 17:30 for Async info
@10e999
@10e999 7 ай бұрын
thanks
@hrvojetonkovac6519
@hrvojetonkovac6519 Ай бұрын
I would recommend watching from the start if you are new to rust.
@Dygear
@Dygear 10 ай бұрын
I did not know that you can use async await in embedded rust without an allocator. That's VERY cool. Going to have to look for cancellation problems in my code. Haven't had any bugs, but I might just be getting lucky.
@gzoechi
@gzoechi 10 ай бұрын
Wadlers Law seems to be quite similar to Bikeshedding
@theevilcottonball
@theevilcottonball 2 ай бұрын
Yeah, I got rid of my bike ages ago. Shed your bike!
@yurtle1851
@yurtle1851 5 ай бұрын
great talk!!
@BundesNachrichtenDavid
@BundesNachrichtenDavid 8 ай бұрын
2 to the power of 0 being 1 and not 0 is the only feedback I'm gonna give this talk, and there is nothing you can do about it ;-)
@anotherelvis
@anotherelvis 3 ай бұрын
I still think that async rust should have stayed in library space. There was no need to bake the syntactic sugar in to the language.
@micycle8778
@micycle8778 7 ай бұрын
19:55 erm, actually, its rust += 1
@theevilcottonball
@theevilcottonball 2 ай бұрын
Who says its an assignment? The ++ in C++ can be overloaded to do just about anything.
@S4ntia60
@S4ntia60 2 ай бұрын
god i love nerds beefing
@JG-nm9zk
@JG-nm9zk 12 күн бұрын
Async is bad in Rust because your runtime has colors, AS WELL as your functions. Discarding the colors problem because it was written about javascript is really naive. Rust has even more color problems. And no they aren't described in the type system.
@Virens132
@Virens132 10 ай бұрын
Such an interesting talk, but such a shitty sound quality 🙉🙉
@laztheripper
@laztheripper 10 ай бұрын
something().await makes it look like you're running a synchronous function, getting a result, and then accessing `await` on that. It fundamentally goes against assumed order of execution for nested statements. It might be nicer not to have to wrap `(await something())` for specific situations, but at least people would know in what order things are running. The monads / ? exception bubbling and all the rest are irrelevant to the question of what someone would naturally assume the code is doing, even in regards to internal consistency of the language syntax.
@mikkelens
@mikkelens 10 ай бұрын
(await something()) is not the solution you want if you don't want await to look like a field you access after polling to completion and getting the result. You would want await(_), or (_.await()), or something like that, but this would also be new weird exceptional syntax the same way (await _) or (_.await) is. Your problem here is literally just the weird assumption that .await can only be read as field access, and that (await _) is inherently readable. I think this is both a superficial discussion, but also a bad argument that relies on the assumption that (await _) is readable, which I disagree with.
10 ай бұрын
that is quite literally what you do though. you access a function that returns a Future synchronously. Then you tell you executor to start working on it. without await nothing would happen.
@simonmassey8850
@simonmassey8850 10 ай бұрын
i don't want to write async code and think about the execution order: i want to describe a data processing pipeline. I want to think declaratively. For example, with webflux on Java, you flatMap a Mono to say, “run another async task and extract the result”. In scala, you flatMap optional to extract the value, or flatMap lists of lists, or flatMap async tasks to say “flatten the containing handle to what it contains”, which is perfect for thinking about async tasks from a declarative perspective - i don't care about the wrappers. When they happen, i care about the results. Functional programming for the win 😊
@scarminio
@scarminio 10 ай бұрын
Well… this talk took too long to get things going. I don’t know why people think that talks should be funny. They should be interesting instead.
@br9809
@br9809 9 ай бұрын
More than halfway through, and I'm still awaiting the future that contains the subject matter declared in the title. On the other hand I know a ton about the speaker.
@Videosong-u
@Videosong-u 5 ай бұрын
​@@br9809😅 0:24 am😊w whw
@stefanalecu9532
@stefanalecu9532 2 ай бұрын
You must be fun at parties.
@DataPastor
@DataPastor 17 күн бұрын
I have come here for being entertained.
@paleopteryx
@paleopteryx 6 ай бұрын
Just use C ffs
DevSecOps: A Love Triangle - Burr Sutter
44:12
All Things Open
Рет қаралды 830
Rust's Journey to Async/Await
48:46
InfoQ
Рет қаралды 87 М.
«Жат бауыр» телехикаясы І 26-бөлім
52:18
Qazaqstan TV / Қазақстан Ұлттық Арнасы
Рет қаралды 434 М.
🎈🎈🎈😲 #tiktok #shorts
0:28
Byungari 병아리언니
Рет қаралды 4,5 МЛН
OCCUPIED #shortssprintbrasil
0:37
Natan por Aí
Рет қаралды 131 МЛН
Catching up with async Rust
17:55
fasterthanlime
Рет қаралды 26 М.
I Spent 18 Months Using Rust And Regret It
38:36
ThePrimeTime
Рет қаралды 517 М.
Async Rust in Embedded Systems with Embassy - Dario Nieuwenhuis
36:16
Rust Nederland (RustNL)
Рет қаралды 8 М.
Async Rust Is A Bad Language | Prime Reacts
28:46
ThePrimeTime
Рет қаралды 111 М.
The SQLite Rewrite In Rust
22:15
ThePrimeTime
Рет қаралды 186 М.
Oxidize Conference: How Rust makes Oxide possible
50:18
Oxidize Conference
Рет қаралды 7 М.
Andrew Kelley   Practical Data Oriented Design (DoD)
46:40
ChimiChanga
Рет қаралды 152 М.
«Жат бауыр» телехикаясы І 26-бөлім
52:18
Qazaqstan TV / Қазақстан Ұлттық Арнасы
Рет қаралды 434 М.