3 ms·
I feel a bit differently about it. Learning Rust is a longer process, but after it's done, it can do everything better than Go (faster, safer, less code). It ca
by kubb 5y ago
I feel a bit differently about it. Learning Rust is a longer process, but after it's done, it can do everything better than Go (faster, safer, less code). It can also do things that Go cannot.
People choose Go because they are incapable of making that initial investment. Maybe they know too little and can't wrap their head around the necessary concepts (a CS curricilum should teach one everything that's necessary though), or they know too much and they don't want to learn new things anymore.
I see these programmers as vunerable and confused, and easy to take advantage of. They need something they can feel comfortable and proficient in, and Go provides that. Unfortunately Go is also tied to one corporation and its internal politics.
And so the quality of life od these poor souls is being sacrificed because of someone's strongheaded opinions within their organization. The tragedy is that the Go community is prone to take the words of the Go team as the words of God. And they adapt their mindset to match. So they take on the arguments of the Go developers, and start using them, not realizing that in reality they're arguing against themselves, their comfort and productivity.
Generics, algebraic data types, type inference for lambdas, namespaces, immutability, non-nil pointers, tuples, better error handling, all of these things would improve Go user's lives, even if they don't realize it themselves. But it would be a hassle for Google to add them.
- cube2222 5y agoYou're being absurdly condescending. Maybe those people aren't lost, but you're just not seeing something they do, or are used to completely different use cases? I've used and understood most if not all of the languages you might have in mind as being "superior" to Go, Rust wasn't very difficult other than the initial 2 weeks warmup. I've used it for a few months on a side project. It's fun. And yet I choose to use Go in my day to day 95% of the time. Go is an insanely practical language. It's also a very productive one, mostly thanks to the ecosystem and people being very practically-oriented instead of bikeshedding on every little detail. Depending on your area of work, it has an extensive ecosystem of libraries too. And most of all, it's got the best asynchronicity model I've so far had the pleasure to work with. You can see more about this in my recent comment[0]. Yes, it lacks some features, but it's getting there. And wether I agree with the final form of those features or not, I'm happy they're not being rushed. And yes, like all tools, for some use cases it is a terrible choice. [0]: https://news.ycombinator.com/item?id=27545031 https://news.ycombinator.com/item?id=27545031
- kubb 5y agoYou just didn't get what I was getting at. Go as a language is fine, and it's OK to like it and to use it. The problem is that it can't get better, and the obvious issues can't get fixed because any improvements to the language are mired in Google's infighting process. There were internal voices pointing out a need for generics 10 _years_ ago. Instead, their PR messaging is convincing people that actually they don't need generics, instead of admitting that the language is incomplete.
- ferdowsi 5y agoThe messaging always was "we haven't come up with a good solution for generics." this is in the faq. https://golang.org/doc/faq#generics https://golang.org/doc/faq#generics
- pjmlp 5y agoMy biggest issue with Go is mostly generics really, everything else I can live with it. Rust's killer domain are kernels, device drivers, high integrity computing, GPGPU, basically domains where having any sort of GC is a hard sale, even if already proven otherwise, or just considered too risky due to timing constraints. Language features alone don't sell products.