Hacker News new | ask | show | jobs
by zik 2641 days ago
I don't think the "lot of narratives" you're talking about actually exist. I've never heard anyone from the Go camp say that they want to make the language "small even if it's inconvenient". From a language design point of view I think they're trying to make it small to maximise convenience. Yes, it's a different philosophy to "kitchen sink" languages but that doesn't make it wrong. In fact it's considered a gold standard of language design. Wikipedia says:

> Orthogonality in a programming language means that a relatively small set of primitive constructs can be combined in a relatively small number of ways to build the control and data structures of the language[2]. It is associated with simplicity; the more orthogonal the design, the fewer exceptions. This makes it easier to learn, read and write programs in a programming language. The meaning of an orthogonal feature is independent of context; the key parameters are symmetry and consistency (for example, a pointer is an orthogonal concept).

Go modules are a fairly new feature which addresses past criticisms of Go dependency management so I don't think that's a valid criticism any more.

1 comments

I don't disagree that making the language small is a great goal and makes the language better. I just think that such a language will not appeal to everyone who enjoyed a large language full of syntactic sugar like Ruby. In fact I very much agree with Go's design goals and see lots of problems with Rust's design choices, at least when considering it for "mondain" work like web dev. However, I cannot get myself excited about Go at all, while I am very excited about Rust. I think it's that Rust, especially coming from Ruby, has interesting new concepts that lead to many rewarding learnings where you change how you reason about some things. When I read about Go, there are no surprises, everything immediately makes sense. All of this is good. It's also boring (in a good way). If I somehow got forced to use one of these languages for a new startup, I'd go with Go. If I had to pick one for playing around with on the weekend, I'd definitely go with Rust.
Mundane... Not mondain