Rust Vs Go Panel - Miriah Peterson, Michael Snoyman, Jonathan Turner, Steve Francia

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

КОМЕНТАРІ • 44

  • @onigbindeoluwamuyiwa4135
    @onigbindeoluwamuyiwa4135 2 роки тому +14

    this is one of the best discussions I've seen on UA-cam. these developers truly love what they're talking about

  • @rustlabconference3671
    @rustlabconference3671  2 роки тому +3

    🎉 After 2 years of online events, RustLab is getting back to the in presence format, with both local and remote speakers.
    The conference will be held from October 2nd to October 4th, 2022 in Prato (Florence area).
    The CfP is open, submit your proposal! 👉 www.papercall.io/rustlab2022

  • @robertboyer5926
    @robertboyer5926 3 роки тому +11

    So funny being an old guy that started coding ASM in the late 70's. Everything comes full circle in listening to these conversations, ESPECIALLY the youngest of the panel here.
    99% of Go's upsides are similar to those of COBOL and it's defacto "run time" (OS/360, 370. XA, ESA VSAM, CICS environments) and how "simple" and not fancy the language is.
    Rust is the new C and ASM without the object hell adding the Haskell type system and other features which is kind of ummm PL/I or PL/S or ALGOL or in terms of "safety" but some of the nice things about C flexibility when you want/need it.
    Will be interesting to see if they actually supplant them in the same way with the same adoption.

  • @naufraghi
    @naufraghi 3 роки тому +12

    Maybe I should have used a normal chair instead of a moving ball to sit on during the panel :)

  • @bigtymer4862
    @bigtymer4862 3 роки тому +10

    Love them both!!! Thanks for the great insights

  • @jimxu1963
    @jimxu1963 3 роки тому +4

    Totally agree that too many options hurt productivity. Rust is a really serious low level language that you have to constantly think about memory, think about what you actually want to get out of a piece of code. I love both, wanted to utilize them in areas that suit them the best. The rust compiler is like a babysitter, it literally lifts you while you are writing the code.

    • @alejandroagua5813
      @alejandroagua5813 3 роки тому

      I believe you are slightly slower in using Rust than even using C++. Rust has the safety feature that makes dealing with the compiler is a time spent on its own other than the development time. With C++, you have such a large ecosystem that you can just use the preexisting library and focus more on the business logic. Everyone loves Rust, but let us all be honest for once, productivity is less than in many other languages.

    • @rjScubaSki
      @rjScubaSki 2 роки тому +4

      @@alejandroagua5813 This is an extremely temporary phase. Once you internalise the rules, it’s *far* more productive than C++ as you don’t have to constantly fear UAF or working out the ownership rules of a library you are calling into.

    • @TheMrKeksLp
      @TheMrKeksLp 2 роки тому

      @@rjScubaSki I agree. Also because the obvious way to do something in Rust is most often also the right one, while in C++ it's most definitely not (raw pointers may be easy but you shouldn't use them!)

    • @aftalavera
      @aftalavera Рік тому

      Rust is a fake language!

  • @SamWhitlock
    @SamWhitlock 2 роки тому +5

    One thing that did not get enough attention was the differing governing models for the language. This is why I'll never choose Go for my own code.
    Go was made to solve Google's problems: enable a large number of devs who have varying ability to both READ other people's code quickly and write code quickly. This focused on having a runtime and making the language be very simple and have few ways of doing things. If you don't really care about the craft of software (e.g. discovering new language features / techniques to improve code), then maybe this is for you as well.
    Google is in control of the language, and they're going to restrict it to meet their business needs. If you're a business with similar needs, then go for it.
    But if you care about new features being added to try out, the ability to meaningfully report and fix bugs, you definitely should choose Rust.

  • @robinhopeixoto
    @robinhopeixoto 3 роки тому +2

    Great! Which book do you recommend to read focused in design systems using Go?

  • @Arjun-vy9dx
    @Arjun-vy9dx 3 роки тому +6

    I'm a Python programmer. Started learning both Go and Rust. I Love all 3 languages. I use Python for scripting and high productivity, Golang for application development and looking forward to use Rust for system programming and to contribute to Linux. These 3 languages are all that I need.

    • @cat-.-
      @cat-.- 2 роки тому +2

      As long as you never touch web so you can avoid js
      Also never do FP so you don’t need Haskell, Clojure, F#
      Hope you never enter game dev, so you won’t need C# and unity
      Oh and never real-time systems just to avoid C, C++ and asm
      Plus, never touch logic programming, you will hate prolog
      And avoid android and iOS, it’s all Kotlin and Swift
      And don’t even mention SQL, it’s basically deprecated no one uses it anymore
      And Coq? pfffffft not even a real language
      Also lua who would ever need embedding

    • @baxiry.
      @baxiry. 2 роки тому

      Choose Zig for System Programming and Low Level Programming.

  • @esnunes
    @esnunes 3 роки тому +2

    Regarding the idea of tutorial docs similar do api docs, you can achieve that using literate programming in org-mode (emacs). You can write your tutorial and have the snippets of code "tangled" to real code files.

  • @kaplansedat
    @kaplansedat 2 роки тому +1

    is Steve Francia from go team or google marketing team ?

  • @valentinussofa4135
    @valentinussofa4135 2 роки тому

    One of the best youtube account for rustacean. Many thanks from Indonesia. 🙏🙏🙏

  • @erlangparasu6339
    @erlangparasu6339 3 роки тому +2

    Great! Thanks 🙏

  • @caveofmovies8597
    @caveofmovies8597 3 роки тому +1

    Michael thanks for the excellent book!

  • @PythonPlusPlus
    @PythonPlusPlus 2 роки тому +3

    I’m a Python dev at heart.
    A few months ago I tried to learn Go, I got frustrated and stopped. Go is the opposite of a good language, maybe it is fast and safe, but it is so constricted and hard to work with because of the lack of features. Plus the module system is just unjustifiably horrible. And the way error handling works is just the worst and seemingly defeats the purpose of errors as a return values.
    I just started Rust last week, and I’m not understanding the complaints about it being hard. Rust doesn’t have a crazy number of features, at least in comparison to most popular modern languages. Additionally it is so simple to get started with, and the compiler is very empathetic towards you by guiding you to the correct solutions. Plus the Cargo package manager is easier to use than Package Installer for Python.

  • @aftalavera
    @aftalavera Рік тому

    Having so many choices! Modern gaslighting!

  • @baxiry.
    @baxiry. 2 роки тому +1

    In low-level programming, Rust will not provide any safety, due to the nature of Bar Metal programming, I think that a simple and easy language will make the code safer, and far from making mistakes. A complex language will cause the programmer to make security errors, so I would prefer Zig over Rust in this case.
    In high level programming where a garbage collector is not a problem I would prefer a language with a garbage collector with a data-race checker. What Rust will provide is the same as what it will give (go run -race .) for example.
    I think Haskell is the language that offers real safety from memory problems and data races, garbage collector + pure functions will certainly fulfill this requirement.
    There is an area where Rust stands out. But it's a very narrow field, I don't think it exceeds 5% of use cases at best expectations.

    • @ArnabAnimeshDas
      @ArnabAnimeshDas 2 роки тому +1

      For the first case, the benefit of using Rust is that if you want to have a higher level safe abstractions from unsafe functions then it is easier to develop a memory safe abstractions which helps in maintaining future codes and have contributors across different skillsets work with your abstractions. If memory safe abstractions are not required, Zig is for you.
      go run -race is checked for race conditions at runtime, the static analysis is missing. In Rust, you can have it checked at compile time, which ensures that it won't happen in the future no matter what because it focuses on the correctness of code.
      Rust is as useful for the app devs as the quality of the library authors designing an user friendly public API (which is the case with the most popular crates) because it provides a way of creating zero cost memory safe high level abstractions without the unpredictable hiccups of GC. Frankly if you just want to code at a high level like developing web frontends and backends, you only need to learn easy Rust. You only need to learn hard low level Rust if you are developing a complex data structures where you are moving pointers and such.
      Rust code is more verbose and more explicit because you are relaying more information to the compiler which allows for more performance optimizations as you get to know about what is happening with the memory and pointers. Go is like you get what Google gives, there is a wall that a GC can never overcome with respect to predictability and maintainability.

  • @tomwilliam7299
    @tomwilliam7299 2 роки тому

    Rust is not replace C++. Rust yield many others problems. C++ can be the best language if someone re-create it from the beginning and break the code and clean it and add modern properties like Named parameters, Serialization, uniform memory interface, compiler and linker error improve, uniform packaging, standard network , async operation😊😊😊

  • @konga8165
    @konga8165 2 роки тому

    I don't subscribe to the whole idea that Rust is inherently harder than other programming languages to someone who understands programming. If you understand the basics of computers then you can code in Rust quite quickly. Just skim through The Book, build a little web server by reading Actix Web docs, and then you will learn Rust pretty fast. Be okay with using `.unwrap()` and `.clone()` throughout your code in the beginning to avoid the error handling and borrow checker. The best thing about Rust is that you can write higher level code but have the option to optimize beyond any other language if you want to. I think Rust is better suited for most every situation that Go would also be considered for. Rust is also suited for teams because of the verbose type system that allows engineers to have more context about what is going on.

    • @TehKarmalizer
      @TehKarmalizer Рік тому

      You can absolutely .unwrap() and .clone() everywhere. It’s probably fine for your own CLI tools and learning the syntax, but that sort of thinking will hinder learning to negotiate with one of the most distinct features of rust: the borrow checker. It changes how you think about your code and how you structure it.

  • @vesder819
    @vesder819 3 роки тому +5

    This sounds more like a promotion talk about Go than a comparison between Go and Rust.
    Every benefit of Go is mentioned even non-arguments. Rust almost none. Why do that? Don't you understand Rust?

  • @vaylx2253
    @vaylx2253 3 роки тому +1

    Great talk, terrible music.

  • @amos660
    @amos660 3 роки тому +1

    she was my favorite till she said she uses vim. :) vim is the devil!

  • @tomwilliam7299
    @tomwilliam7299 2 роки тому

    C++ did not solve C problems.
    Rust did not solve C++ or C problems.
    Go did not solve C++ or C or Rust problems.
    We really need new language that solve C and C++ problems. if we do, no body will care about Rust or GO 😎😎🥰😎😎

    • @cepuofficial9025
      @cepuofficial9025 2 роки тому

      What is C problems?

    • @TheMrKeksLp
      @TheMrKeksLp 2 роки тому +3

      But Rust legitimately does solve a lot of issues of C and C++ though?

    • @cepuofficial9025
      @cepuofficial9025 2 роки тому +1

      @@TheMrKeksLp agree, rust solve C memory problems, go solve C concurrency problem easily. No lang is perfect but they complement each other

    • @tomwilliam7299
      @tomwilliam7299 2 роки тому

      @@TheMrKeksLp
      The language that solve other language problems should first not decrease the speed or performance firstly. Second, This new language should not produce new problems. So, Rust do the two things.

    • @TheMrKeksLp
      @TheMrKeksLp 2 роки тому +2

      @@tomwilliam7299 You appear to hate Rust without even understanding it
      Since all of Rusts safety (minus bounds checking) is purely static, it's about the same speed as C++. It's optimized by LLVM and doesn't have a runtime or forces any features on you like Swift does with reference counting. There's no garbage collector either.
      And the "problems" Rust creates are mostly things you should be obeying in your current C++ programs too! You probably just don't and have a bunch of UB in your programs...