5 ms·
I had a similar thought; TFA: > Can I just say “Rust developers spend less time debating about who is responsible when issues arise, and they spend less time f
by pphysch 5y ago
I had a similar thought; TFA:
> Can I just say “Rust developers spend less time debating about who is responsible when issues arise, and they spend less time figuring out how to get a performant solution into shape”?
The author sneaks in the assertion that issue attribution is the primary cost of issue resolution. I don't think this is true at all. What about actually writing & testing the patch?
If Rust has a technical approach to solving issues, then Go has a social approach. The latter is so darn simple that an intermediate Gopher can grok a codebase and contribute patches relatively quickly. Go is easy to hack; it's C with garbage collection and concurrency primitives (and an excellent ecosystem). That's why it was made!
I think Rust's primary value proposition is expressiveness. People enjoy writing Rust, because they can represent complex ideas with few LOC. Safety is a distant second. It's a language for enthusiasts, not products.
If you want language where safety is truly #1, well, Ada is going on half a century of usage in safety-critical systems including aerospace.
- zozbot234 5y agoNo, Go is "simple" but big Go codebases are not going to be simple. It will actually be simpler to get onboard on a larger Rust codebase, because Rust offers a higher variety of tools to define modularity boundaries.
- pphysch 5y agoGo has interfaces and namespaced packages. Not everyone uses them effectively. Codebases can always be overcomplicated by careless abstractions, even in the simplest language. > Rust offers a higher variety of tools to define modularity boundaries. "Higher variety" is among the last things I want when trying to understand a big new codebase.
- ParetoOptimal 5y ago> No, Go is "simple" but big Go codebases are not going to be simple. Can you expand on this? I actually lean towards the same belief but wants to hear your reasons. Can any gophers suggest one or more exemplars of simple big codebases for us to test our beliefs on?
- Ar-Curunir 5y ago> I think Rust's primary value proposition is expressiveness. People enjoy writing Rust, because they can represent complex ideas with few LOC. Safety is a distant second. It's a language for enthusiasts, not products. What nonsense. Companies across the board are adopting Rust not because it has some hype behind it, but because it solves real problems, like memory safety and performance.
- pphysch 5y agoGo and Rust are from the same generation of programming languages. Yet one is building mass-adopted software like Kubernetes and Hashistack and Prometheus/OpenMetrics, while the other is pretty firmly in hype & thinkpiece phase. I can't imagine a serious blog post in 2022 questioning the purpose of Go because it is evident in the large amount of enterprise software being written in it.
- zozbot234 5y ago> Go and Rust are from the same generation of programming languages. Go 1.0 was released in 2012 and the language has barely gained any highly impactful features since then (generics aside, which are quite new still). Rust 1.0 was not out before 2015 and the 2018 edition already introduced huge changes, with more in the pipeline even today. It hardly seems sensible to describe them as being in the "same generation".
- pphysch 5y agoFortran: 1957 C: 1972 Go first (real) commit = 2008 Rust first (real) commit = 2010 Versioning schemes are incomparable. The two langs are from the same generation, period. To suggest otherwise requires mental gymnastics.
- friedman23 5y agoGo is a language for people that think being able to learn a programming language in a couple of hours makes it good. C-like syntax is not an inherently good thing, it's just familiar. Thus Go is good for people who don't like to learn and/or find learning difficult. Simple constructs such as sum types do not exist in Go. How do you express that a value is either type A or type B in Golang? Go, in its infinite simplicity, does not allow for that, instead it allows you to express that a value can be type A or type B, type A and type B, or neither! Simple right! And then errors! Go takes the simple approach with regards to incorrect code in that it just does not care if your code handles all possible error states or not! Simple, just don't give a shit! If your career is in software and your decision making process for a programming language is "what can I learn in an hour?" then your decision making abilities are questionable.
- pphysch 5y agoYou can represent sum types with type assertions on interfaces. Frankly, outside of subjective error handling preferences, I don't see much value in sum types. They encourage building towers of type abstractions and obscure what is happening on the wire.
- friedman23 5y ago> obscure what is happening on the wire They obscure nothing, sum types in rust have 0 overhead. You cannot in go faith argue that Go gives a more accurate representation of what occurs "on the wire" than Rust.
- pphysch 5y ago
- taylodl 5y ago> If your career is in software and your decision making process for a programming language is "what can I learn in an hour?" then your decision making abilities are questionable. I posit Rust has a poor return on investment. If you're going to spend time learning a new language then make it a language that completely changes how you think about programming: something like Clojure, Scheme or Haskell. Even if you never create a single system using these languages you will be a better programmer for having learned them. I'm not so sure the same can be said for Rust.