Hacker News new | ask | show | jobs
by pansa2 2141 days ago
> There are no changes to the language.

Are there other mainstream languages that are as conservative as Go when it comes to adding new features?

I don't love Go as a language, but coming from C++ and Python, both of which have non-stop accumulation of features (and complexity), Go's philosophy is a breath of fresh air.

5 comments

Possibly Scheme or Racket? S-expression, functional languages don't seem to accumulate language features at an incredible rate (but I don't use them frequently so someone might correctly contradict me).

I too like Go's restraint. It really doesn't want to give you a tool to make a one-liner that is easy to conceal a bug. For example, Go's increment (eg, i++) is a statement, not an expression. You can't do list[++i] or anything.

There are parts of Go that I'm less a fan of, but they keep a nice eye toward making sure that the code is understandable and reviewable.

The Go 1.x compatibility promise is one of Go's best features.
Yes.

Though, I wonder how much more the language could be improved if it weren't tied down to the bad decisions of the past. Those must all continue in perpetuity while the compatibility promise is kept.

Not in perpetuity. Go 2 does not promise to be backward compatible.
The current Go 2 drafts do.
Relevant bit from Brad's 2016 talk on this topic:

https://www.youtube.com/watch?v=4Dr8FXs9aJM&t=169

I can't help but laugh each time I see it.

Elixir.

They even announced that the language is now final.

Not sure if it counts as "mainstream", but Clojure has been stable for years and years. The core data structure manipulation functions are there and they simply work.

The last really big change was transducers, and even those were nicely retrofitted onto the core functions without any breaking changes.