Rust Async Programming in 2018 • Katharina Fey • GOTO 2018

Поделиться
HTML-код
  • Опубликовано: 19 окт 2024
  • This presentation was recorded at GOTO Copenhagen 2018. #gotocon #gotocph
    gotocph.com
    Katharina Fey - Software engineer at Ferrous Systems
    ABSTRACT
    Async IO, network programming and microservices have become a popular application of the Rust programming language.
    This talk will give an introduction into these subjects and highlight why people are choosing Rust over other options.
    The talk presents specific language features, like the concurrency-aware type system, as well as libraries that have emerged in the [...]
    Download slides and read the full abstract here:
    gotocph.com/20...
    RECOMMENDED BOOKS
    Tim McNamara • Rust in Action • amzn.to/3ux2R9u
    Blandy, Orendorff & Tindall • Programming Rust • amzn.to/3x7r6w6
    Ken Youens-Clark • Command-Line Rust • amzn.to/3PQZ539
    Kevin Hoffman • Programming WebAssembly with Rust • amzn.to/3x3brhe
    / gotocph
    / gotoconference
    / goto-
    gotocon.com
    #Rustlang #AsyncProgramming #Rust #Programming #ProgrammingLanguage #SoftwareEngineering #Mozilla #Coding #FP #FunctionalProgramming
    Looking for a unique learning experience?
    Attend the next GOTO Conference near you! Get your ticket at gotocon.com
    SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
    www.youtube.co...

Комментарии • 36

  • @robertswain278
    @robertswain278 5 лет назад +22

    I've seen a number of people struggling with writing async code over the past year or so. This talk was a really great walk through of the history of async I/O in Rust leading up to the current state of things. Thank you!

  • @Zendist
    @Zendist 5 лет назад +5

    Great talk, very informative. Been wanting to learn more about Rust and how async is implemented with it. Also loved the Bojack reference 😊.

    • @circularly
      @circularly 4 года назад

      drat, i missed it. where was it?

    • @Zendist
      @Zendist 4 года назад +1

      @@circularly 10:38 :)

  • @ProCoder2007
    @ProCoder2007 5 лет назад +8

    Very cool, informative, entertaining and good to follow talk :) Nice!

  • @Techonsapevole
    @Techonsapevole 5 лет назад +7

    Good talk, thanks!

  • @Posichronic
    @Posichronic 5 лет назад +5

    Just stopped by to say the thumbnail for this video looks metal as fvck.

  • @Bubatu7
    @Bubatu7 5 лет назад +1

    Great talk!

  • @edgeeffect
    @edgeeffect 4 года назад

    Really really hard to read the code samples on the slides... higher luminance contrast please.

  • @BenjaminCronce
    @BenjaminCronce 5 лет назад

    I've been obsessed with concurrency since I was 10. I think it's fun and relatively easy if designed correctly. If you limit how a object can get in a certain state to a small bit of code, instead of strewn all over the system, any time there is an issue with that state, you only have to look at a little bit of code.
    Sometimes it is desirable to lose data in order to gain scalability. Will Rust allow me to write code that allows certain kinds of race conditions like lossy algorithms?

    • @berndeckenfels
      @berndeckenfels 5 лет назад +1

      Benjamin Cronce I guess there are many race conditions which are blocked by the compiler due to the single owner principle, but you can always use unsafe doc.rust-lang.org/1.5.0/book/unsafe.html

  • @Siniverisyys
    @Siniverisyys 4 года назад

    "Zero cost abstraction" should mean that the cost is zero because the abstraction is summed to zero at compile time. I think that the Rust guys are abusing the term. It should be called "user parity" abstraction or "as good as you" abstraction.

  • @nolike1984
    @nolike1984 5 лет назад +1

    Excuse me, am i right, that for async/await need some runtime >? does it mean lose 0 cost abstraction >? and what's about compiler errors for not safety async code ?

    • @TheSrishanbhattarai
      @TheSrishanbhattarai 5 лет назад +11

      There is always SOME runtime. People generally mean a MINIMAL runtime when they say C or Rust has no runtime. With async/await, as the speaker explained around the 13min mark, there is some scheduling overhead with the event loop. What's cool though is that the Futures themselves are zero cost abstractions and because Rust does NOT subscribe to the m:n model (as Go does), the language itself still does not pay for this runtime.

    • @nolike1984
      @nolike1984 5 лет назад +3

      thanks, Srishan. Now i found a discussion about Scheduling model in Rust: news.ycombinator.com/item?id=6980946

    • @chinoto1
      @chinoto1 5 лет назад +5

      This reminds me of when people talk of not using a framework, but really you're always using a framework, even if it's something you cobbled together yourself. In the case of Go, you're stuck with the event system that is built into the language, but with Rust you can pick or create one tailored to your needs. Though it can be convenient to just be told "here, use this".

    • @vegai
      @vegai 5 лет назад

      She elaborates the concept of zero-cost abstractions a bit at around 19:40

    • @floriangilcher4812
      @floriangilcher4812 5 лет назад

      That discussion discusses a research version of Rust. Rust was finally released in 2015, and doesn't have the Task model anymore.

  • @snom3ad
    @snom3ad 5 лет назад +18

    Terrible crowd, some of her jokes were really funny yet no one laughed. Great presentation nonetheless.

    • @andersarpi5230
      @andersarpi5230 5 лет назад +17

      Terrible crowd... or good mic setup?

    • @bisalonggo5212
      @bisalonggo5212 5 лет назад +2

      @@andersarpi5230 I actually went straight to the description for an Amazon Affiliate link on that mic...

    • @glowiever
      @glowiever 4 года назад +1

      >her

  • @goodingwashington6099
    @goodingwashington6099 5 лет назад

    Hope i can join rust bridge workshop next time you do it in Portland.

  • @Sousleek
    @Sousleek 5 лет назад

    Cool

  • @bakarock90
    @bakarock90 5 лет назад +2

    Obviously Java & Mocha are not for you, because you love tea. 😎

  • @asdasdaasdasda4978
    @asdasdaasdasda4978 5 лет назад +2

    So nothing about async in a talk about async?

  • @realcygnus
    @realcygnus 5 лет назад

    build a linux-like kernel with it !?

    • @recklessroges
      @recklessroges 5 лет назад +3

      Already done, (multiple times): www.redox-os.org/ os.phil-opp.com/ github.com/thepowersgang/rust_os

  • @Danielo515
    @Danielo515 5 лет назад +1

    I will never understand what problem has people with async programming. It's quite easy to reason about

    • @julkiewicz
      @julkiewicz 5 лет назад +2

      Those who think it's easy usually introduce all the bugs that other people have to fix...

    • @jorickcaberio5367
      @jorickcaberio5367 5 лет назад

      @@julkiewicz not if you use a language like Erlang

    • @julkiewicz
      @julkiewicz 5 лет назад

      @@jorickcaberio5367 Sure, there are nice abstractions to deal with the difficult problem that is async programming. Doesn't mean you should be ignorant of why they exist and what problems they solve. At present, most languages contain enough ammo to easily shoot yourself in a foot when it comes to race conditions.

  • @thomasmaier7053
    @thomasmaier7053 5 лет назад +2

    I very much don't agree with Katy's opinions about feminism, sexism and so on but her talk is great!

    • @julkiewicz
      @julkiewicz 5 лет назад +21

      She never even mentioned these topics... and then people complain about these topics being brought up for no reason. It seems the same people complaining about these topics being brought up too often are the ones bringing them up too often. Lol.