Hacker News new | ask | show | jobs
by knughit 3746 days ago
To understand Go, you need to stop thinking in terms of black marks and start thinking in terms of tradeoffs across a whole language.
1 comments

Very much this. Go was designed as a whole forest; focusing in on each feature in isolation is, near-literally, missing the forest for the trees.
This is valid, just not for Go. There isn't some big underlying coherence guiding the design; it's more a bunch of one-offs.

For example, you get a nice operator for appending to a string, but not a slice. A zero-valued slice is empty, a zero-valued map is nil.

This isn't to say that Go is bad, it's just that its tradeoffs aren't in service of any big unifying vision. When range can only iterate over a slice, map, string, or channel, there's no forest. It's just four trees.

The tradeoffs absolutely are in service of a big, unifying vision. That is, software development in the large. There are plenty of talks by Andrew, Rob, etc. that describe this calculus in detail. Whether or not they're convincing to you personally is, I guess, another matter.
I suppose that might be true, but it feels more like Go missed the known universe while focusing only on the forest.
I'm not sure how you can seriously say that given the designers and the internal use at Google. But perhaps the universe excludes Google, they're too far ahead anyway.
It might be that the designers chose to focus on specific problems they found at Google, universe be damned. Maybe Go is just a good Google language.
So, universe does not include Google? Burn karma burn. =)
That's not what I meant. My reply to you needs the context of the parent comment.

To "miss the known universe" was the explicit purpose of the designers. It was supposed to be simple (whether their definition is good or not is debatable). The number of users is irrelevant.