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

Поділитися
Вставка
  • Опубліковано 17 лис 2024

КОМЕНТАРІ • 29

  • @meyou118
    @meyou118 7 місяців тому +3

    rust's use of await is a big insight! i love it

  • @realSimonPeter
    @realSimonPeter Місяць тому +1

    Minor correction: Swift also has async await and a built-in tokio-like runtime and is not a garbage collected language.

  • @manishroy3024
    @manishroy3024 10 місяців тому +32

    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 10 місяців тому +6

      Still, the joke stands. Meaning only one would talk about it.

    • @No-op
      @No-op 9 місяців тому

      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 6 місяців тому +5

      he put that there for the compiler-programmer watchers to error out on. smart.

    •  5 місяців тому +3

      Off by one error

    • @theevilcottonball
      @theevilcottonball 13 днів тому

      @@heavenlyactsatheavycost7629 It's actually anyone who knows this subset of math.

  • @Dygear
    @Dygear 8 місяців тому +12

    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.

  • @manohardenver6404
    @manohardenver6404 10 місяців тому +26

    Start at 17:30 for Async info

    • @10e999
      @10e999 6 місяців тому +1

      thanks

  • @gzoechi
    @gzoechi 9 місяців тому +8

    Wadlers Law seems to be quite similar to Bikeshedding

    • @theevilcottonball
      @theevilcottonball 13 днів тому

      Yeah, I got rid of my bike ages ago. Shed your bike!

  • @BundesNachrichtenDavid
    @BundesNachrichtenDavid 7 місяців тому +2

    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 ;-)

  • @yurtle1851
    @yurtle1851 3 місяці тому

    great talk!!

  • @anotherelvis
    @anotherelvis Місяць тому

    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 5 місяців тому

    19:55 erm, actually, its rust += 1

    • @theevilcottonball
      @theevilcottonball 13 днів тому

      Who says its an assignment? The ++ in C++ can be overloaded to do just about anything.

  • @S4ntia60
    @S4ntia60 19 днів тому

    god i love nerds beefing

  • @Virens132
    @Virens132 8 місяців тому +7

    Such an interesting talk, but such a shitty sound quality 🙉🙉

  • @laztheripper
    @laztheripper 9 місяців тому +1

    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 9 місяців тому +8

      (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.

    •  8 місяців тому +21

      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 8 місяців тому

      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 8 місяців тому +19

    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 7 місяців тому +3

      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 3 місяці тому

      ​@@br9809😅 0:24 am😊w whw

    • @stefanalecu9532
      @stefanalecu9532 23 дні тому

      You must be fun at parties.

  • @paleopteryx
    @paleopteryx 4 місяці тому +2

    Just use C ffs