I want off Mr. Golang's Wild Ride (2020)
fasterthanli.me
I want off Mr. Golang's Wild Ride (2020)
1–10 of 38 posts
Re: I want off Mr. Golang's Wild Ride (2020)
#2It is a well written and in-depth look at the rot inside the Golang ecosystem. Make sure to read to the end and notice that the rot started at the core contributors level.
Golang's tagline, from their [repository][0], is "Go is an open source programming language that makes it easy to build simple, reliable, and efficient software."
Reading this post by Amos should make it clear to you that Golang has succeeded ONLY in the "simple" part of the claim; unless written with extreme care, programs written in Golang are neither reliable, nor efficient.
Amos presents some examples of why I have disliked Golang since the beginning. After having used Golang for a few years seriously, I disliked it enough to start a fork of the language named [GoFY][1]. I named the language as such because, since the beginning when I saw some of initial presentations by Rob Pike specifically, and some others' presentations and blog posts generally, they had an air of ego when dismissing others' opinions and concerns, and appeared to say "these are our decisions, that is how it is, and if you don't like it, Go F* Yourself". So the project name was a GoFY to them back, from me.
I'm sure it looks a great language from afar, and for newcomers. But as a seasoned developer who has seen a few other languages in thier lifetime, you will quickly begin to see the problems with the language and the ecosystem around it. The astute among you may notice that in my [post yesterday][] I did not claim to be an expert in Golang; it's hard to be an expert in something that's fragile, flaky and full of special cases. For the same reason I never took up using MySQL; I have heard enough stories of its flakiness and special cases that it never looked like a solid technology to me. I openly and whole-heartedly recommend learning and using [Postgres][] to anyone who would listen.
[post yesterday]: https://gurjeet.singh.im/blog/persistence-perseverance [Postgres]: https://www.postgresql.org
Fortunately I did not invest any more time in it other than to document a few times in section ["GoFY Desired Differences"][differences] as to what I would like to see different in the GoFY language, which in turn would make it better than Golang, at least for long-time systems developers like myself. I am glad I didn't burn any oil on it because creating a new language, even a fork, is neither easy nor quick.
[0]: https://github.com/golang/go [1]: https://github.com/gurjeet/gofy/tree/gofy [differences]: https://github.com/gurjeet/gofy/tree/gofy#gofy-desired-diffe...
Re: I want off Mr. Golang's Wild Ride (2020)
#3Re: I want off Mr. Golang's Wild Ride (2020)
#4https://hn.algolia.com/?query=I%20Want%20Off%20Mr.%20Golang%...
Re: I want off Mr. Golang's Wild Ride (2020)
#5Go’s simplicity scared me a lot from the outset - there is no free or easy solution in software. Everything is a trade off. As such, I think Go is an excellent tool for prototyping dumb solutions for relatively simple problems. Or at least, for modelling solutions around simple parts of problems while ignoring complexity until later. On our team we see anything important as something we finish fast with Go/Python, then we do it right with Rust when we fully understand it.
As a tool for getting things done quickly with that pretence, I’d argue that Go is an awesome tool. I would be afraid of building something large and expected to live a long time with it, though. Anyone who has worked with software for a while should be wary of any solution that claims to be simple.
Anyway, I really enjoyed this but wanted to point out what I like about Go.
Re: I want off Mr. Golang's Wild Ride (2020)
#6Taken in this light, Go makes a ton of sense. No undefined behavior! Well-defined zero values! Duck typing! Automatic memory management with minimal overhead! Easy-to-use threading primitives and trivial cross-platform builds! A networked-C programmer's dream.
But we've learned a whole lot about language design in the past 40 years, and combining those things we've learned with a loosening of C's constraints, there are much better fundamental design decisions that can be made for a greenfield language. It just seems like Go's designers weren't really interested in questioning a bunch of the ones they were used to.
Re: I want off Mr. Golang's Wild Ride (2020)
#7The investment to become fluent in Go might literally be an order of magnitude less than becoming fluent in rust.
Rust might be the perfect language in terms of capabilities and safety, but it is far from a simple language.
The function signatures from even some simple methods have become ridiculous. I’ve seen enough examples where it was needed to unpack a value two or three times to get the value you want.
The perfect language probably doesn’t exist, but go is one of the easiest compiled and strongly typed languages to learn. And that in itself is quite an achievement.
Re: I want off Mr. Golang's Wild Ride (2020)
#8It does seem that golang is well suited as a language for backend services running in an Unix environment and I think that’s an Ok trade off for a language to make. It’s okay not to excel on everything.
Re: I want off Mr. Golang's Wild Ride (2020)
#9I don’t think this should surprise anyone. Go is an excellent language for quick prototyping and easy distribution. The investment to become fluent in Go might literally be an order of magnitude less than becoming fluent in rust. Rust might be the perfect language in terms of capabilities and safety, but it is far from a simple language. The function signatures from even some simple methods have become ridiculous. I’…
With rust, I very rarely feel like the code I'm writing might not be correct for a technical reason, whereas with Go, I find myself very often having to think too much about how best to actually do something "safely" or "correctly" because it's inherently possible in a way that rust makes either impossible, or at the very least, warns you profusely.