Living with Rust Long-Term - Jon Gjengset

Поделиться
HTML-код
  • Опубликовано: 26 фев 2023
  • Rust and its ecosystem are in constant flux, and this can be scary, especially when you're building an application with stability and long-term project sustainability in mind. New Rust versions bring ever-higher editions, must-have new features, and lint and tool changes to keep on top. And as new features emerge, they'll fade into oblivion. In this talk, we'll look at the changes that may happen to you when working with Rust and how to live with them. We'll talk about Rust and crate versioning, backwards compatibility, unstable features, minimum supported Rust versions, and 1.0 releases. This talk is geared towards those using Rust to build applications and services, not those building Rust libraries. It won't tell you the right way to set up CI for your library crate or decide whether a change is backwards compatible. Instead, we'll dig into the kinds of stability challenges that can arise in Rust, what to do when they crop up, and some promising avenues for making the stable life easier.
  • НаукаНаука

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

  • @AdamChalmers
    @AdamChalmers Год назад +15

    My team and I update to new Rust versions the day they come out, but we run our CI through a script. The script fails if there's any rustc or clippy warnings, to make sure we at least know about any new lints. However, we also ignore lints that we're aware of and just don't want to adopt, or don't want to fix yet. This is a good balance for us. It ensures we know about every new lint, but we can also choose to ignore them, and that choice is documented in our script. Comments in the script tell you why and describe when we plan to remove the ignore :)

  • @robert36902
    @robert36902 3 месяца назад

    Loved this talk - exactly the kind of balanced discussion we need to have for all long term non-trivial software projects with external dependencies regardless of language, to be able to move forward responsibly and not getting stuck in old versions or upgrade recklessly.

  • @lyingcat9022
    @lyingcat9022 Год назад +51

    The best Rustacean in the world!!! I swear he’s the only person on the internet that actually knows rust beyond a basic “Let me paraphrase The Book to beginners” level of instruction.

    • @jonhoo
      @jonhoo Год назад +47

      I appreciate the compliment, but that's definitely not true! There are a lot of fantastic Rust developers out there, starting with the amazing folks who develop Rust itself - the compiler, the build tooling, the standard library, and tools like rust-analyzer.

    • @lyingcat9022
      @lyingcat9022 Год назад +12

      @@jonhoo might have been not worded properly and came of insulting sorry:) Should I say you are one of few people on RUclips that does content approachable for intermediate Devs beyond the basics “introduction to Rust” and a walk through of syntax and basic ownership/borrowing/lifetime/compiler shenanigans:)
      I’ve seen a others with mad skills but you Sir are hands down the best I’ve seen. Now if you know someone better than you in some area that also gives excellent instruction PLEASE send me their way :) Or maybe someone on your level with a slightly different perspective:)
      I’m just bias because I’ve learned more from you than anyone creator in all my years in Rust and as a Dev in general I believe:) Thank you so much for everything my friend! I really do owe you a lot and if the opportunity arises I would be honored to return even a small favor. Cheers buddy

    • @user-ov5nd1fb7s
      @user-ov5nd1fb7s Год назад +4

      Aren't all rust developers "on the internet"?

    • @lyingcat9022
      @lyingcat9022 Год назад +7

      @@user-ov5nd1fb7s haha indeed. It was a poor and imprecise wording on my part. That why I attempted to clarify I meant Rust RUclipsrs

    • @SimonBuchanNz
      @SimonBuchanNz Год назад +1

      Check out fasterthanlime too.

  • @FlaviusAspra
    @FlaviusAspra 11 месяцев назад +1

    The elephant in the room: rust makes it incredibly complicated to refactor incrementally small parts of your application.