| You should ponder why Erlang or Haskell achieved a fraction of Go's adoption despite being on the market 20+ years longer. Some people see languages as a bag of features (immutability! generic programming! laziness! operator overloading! algebraic types! hindley-miller type inference! pattern matching! exceptions! manual memory management!). See http://yager.io/programming/go.html for an example of that line of thinking. Those people won't get Go. Designing a language is not about cramming every feature you can think of. It's about making good trade offs. A trade off is: you get something but you also loose something. I use Go because it made the biggest number of good trade offs. Or to put it differently: I program in Go because when writing code, it irritates me less than other languages. If you want a longer explanation of that: http://commandcenter.blogspot.com/2012/06/less-is-exponentia... |
This line of thinking serves more to call in to question the engineering and management cultures we have than it does to reflect poorly on Haskell and Erlang, and if it's true that Go's essential strength compared to them is that it is well-fitted to these cultures, that's not particularly flattering, however locally practical it may be.