A major difference between Go 1 and Go 2 is who is going to influence the design and how decisions are made. Go 1 was a small team effort with modest outside influence; Go 2 will be much more community-driven. After almost 10 years of exposure, we have learned a lot about the language and libraries that we didn’t know in the beginning, and that was only possible through feedback from the Go community.
The Go team s revealing some things about the future of the programming language.
Go is a good language for small projects or new devs. Beyond these, it is just painful to use. I hope with with Go 2, the language would actually gain some advanced features (generics for one) and not be held back by Rob Pike and others.
While one might argue there is stuff like Rust for those seeking cutting edge features. Tooling is a very important part of a language ecosystem for it to thrive. F# for example, may seem dead in the water to some, but the tooling is unrivaled due to the available options (from MS, as well as JetBrains).
Generics are a huge problem. absolute value, min, max are super annoying. I despise that go has special (gimmicky) syntax for threading when it would be far more appropriate to have an api just like everything else. Threading isn’t that special, certainly not special enough to force me to have to rifle through special syntax all the time just to do simple stuff. I find closures very annoying and anti readable as well. A couple of simple places where c++ does it better.
A shame I run into people who think go can replace c++. That way is madness and trying to squeeze performance ends up needing to work around lots of stuff in the language, INCLUDING the garbage collection thing, and end up having to track memory and resource usage anyways.
Edited 2018-12-01 20:23 UTC
My company is now in the process of removing all go code. We tried adopting it and found some interesting improvements over other languages, but the attitudes within the core of the community are simply untenable, and the improvements were minor at best. One prominent developer, bradfitz, has an especially toxic approach and will continue to hold this language back until he either changes his ways or leaves the project. Even then, it is impossible to draw any kind of line between its community and google as a corporation.
Too bad, so sad. Long live rust and python.
What does Python have to do with anything? We are talking modern C++ replacements here. Rust is indeed comparable, as is Swift, .NET CoreRT and Julia, to name the most promising off the top of my head.