3 ms·
Go's hidden feature is that there are no personal dialects of Go, not even in the whitespace, because everyone uses "go fmt". As such, you look at it, you see
by JulianMorrison 7y ago
Go's hidden feature is that there are no personal dialects of Go, not even in the whitespace, because everyone uses "go fmt".
As such, you look at it, you see what it's doing, not how clever the programmer was. And you can feel free to dive in and edit.
- skohan 7y agoI haven't written a ton of go, but my read on the language is that it's built for large teams with lots of turnover. It makes it really easy to write boring, readable code and it makes it really hard to write code which is too clever by half. If I am choosing a language for a personal project, or for a small team of developers I'm really confident in, I'm probably going to choose something which is more fun to write. But if I had to recommend a tool for a large shop where long-term maintainability regardless of the team makeup is more important than programmer happiness, Go seems like a great option.
- JulianMorrison 7y agoAnd yet Go programmers are often happy. I think the reason is: Go code has a low level of abstraction-construction and a high level of explicitly writing the algorithm. You can see through the language, which is "boring" and does not distract your attention, to what it is trying to achieve, which is interesting.
- skohan 7y agoI can totally understand the appeal of Go, and I can understand why a lot of people probably really like working in it. I also really prefer boring code so that's not a knock! It's just that in some cases I do like to work with a bit more expressive and low-level tools than Go has on offer, so it's not my first choice. But that's 100% personal preference.
- ummonk 7y agoYes, I agree with this, but need to caveat it. Go is a fun language to write code in (it has the simplicity and directness of C, which is also a fun language to write code in, while avoiding the warts of C). Like C, it isn’t a fun language to rapidly develop features in, because it is very boilerplatey due to limited abstraction. Incidentally, for this reason I’ve always enjoyed coding in C because in domains where I’ve used it (most embedded code) the required feature set is quite limited, so C’s slow pace of development isn’t a problem. On the other hand when working with Go server code at a startup, I was deeply frustrated because I just wanted a much more abstract language to rapidly write features in.
- clownpenis_fart 7y agowhat's that saying about ignorance and bliss again
- sangnoir 7y ago> I'm probably going to choose something which is more fun to write. Fun-to-write code isn't always that great to read; and your code will probably be read more times than it was written. I get it - I wrote Perl applications in a previous lifetime and I had fun doing it (Perl's text manipulation is unparalleled): until it was time to grok something a teammate wrote. I appreciate that Go is 'boring'
- lunarrestaurant 7y agoUntil about six months ago, the only programming I'd done was a little qbasic in my teens - over 20 years ago. What I love most about Go is that I can read someone else's code somewhere, then write my own code based on that, and then months later come back to my own code and actually understand it even without comments. Maybe in time I'll get advanced enough where I'll miss features in other languages that other people argue about. But for the moment I'm having fun making useful programs in Go.
- woadwarrior01 7y agoI write golang at my dayjob and rust by the night. Rust has the same with rustfmt. Run "cargo fmt" on your working directory and you're done. NB: When I was writing C++, we had clang-format setup to do the same for the C++ code. This advantage is in no way unique to go.