5 ms·
I’m still learning Rust, but I’m developing a deeper appreciation for Go. I’ve already learned Go. As far as I can tell, I’m a Go expert. Rust has a pretty lar
by klodolph 7y ago
I’m still learning Rust, but I’m developing a deeper appreciation for Go. I’ve already learned Go. As far as I can tell, I’m a Go expert.
Rust has a pretty large surface area. There’s a ton of places where you can get overwhelmed by choices. For example, when you’re working with slices, you might find yourself thinking about the pros and cons of different approaches using indexes, convenience functions, pattern matching, or iterators.
It’s a big toolbox, and sometimes I wish I had a smaller toolbox, even if it means giving up the choice of which tools to keep.
So, I’ll still be learning Rust for a while, too.
- chewxy 7y agoThere has to be a learning strategy for kitchen sink languages though.
- Polylactic_acid 7y agoYou could just pick the first option that looks good enough and be done with it so you avoid having to understand them all.
- 01100011 7y agoThey're not really the same thing, IMO. Sure, Go is pitched as a systems language, but when Google themselves are rewriting OS components written in Go with Rust, you know something is up. Go seems like Python++... a more reliable and performant high level language. The GC nature makes it inappropriate, IMO, for low-level systems work. Sure, write apps in it. Fine. But I can't see writing drivers in Go.
- klodolph 7y agoI’m not writing drivers or OS components. Services and command-line tools. Go has a bunch of stuff in standard library to make that easier. My experience is that these tools are a bit rougher to write in Rust, due to the additional decisions (which third-party libraries) I have to make wrt command line parsing, HTTP, etc. Rust’s ecosystem reminds me a bit of NPM or Haskell in that way. Go reminds me of Python in that the decisions are easier or have lower impact.
- clktmr 7y agoPretty much what I am thinking. When I use Rust, at the end of the day I will have spent more time with the language instead of my actual task, and I don't see this changing given the rate Rust is still changing. It feels like you have to be a "programming language afficionado" to use Rust properly. Whereas in Go, there is always only one reasonable way to do a specific task. You almost forget about the language and just get stuff done.
- metalliqaz 7y agoThat's why I was drawn to Python, and I still haven't found a good reason to switch to Go in my use cases.
- mlindner 7y agoIf you don't care about performance, there's no reason to switch. Python is easy but it's very slow.
- throwaway894345 7y agoPython is only easy to write. Managing environments, dependencies, deployment, tooling, etc are all abysmal and Go gets very high marks in all of these areas (including ease-of-writing).
- pansa2 7y ago> If you don't care about performance Or parallelism, or compiled binaries.
- cft 7y agoHere is a very practical example. We chose Rust for the current project because our Python program took more than 1TB of RAM. Rust program carefully manually laying out memory takes 75G. Other choices in this case are C/C++, but after you get a hang of Rust, it's actually easier because you don't spend days inspecting core dumps in gdb: once it compiles it actually works.