| There are several features that can be considered neat on their own. Most of those features are probably derived from other languages, but together they form a very powerful language that simply takes away the pain that I feel using other modern languages, such as C++, Python, Java and NodeJS. Here are a few on top of my head: 1) CSP concepts embedded deeply into the language (goroutines/channels/select) making concurrency easy to do correctly 2) Standard Library and Go toolchain providing everything that most languages use third party libraries for (formatting, testing, benchmarking, fuzzing, HTTP, crypto, etc...) 3) Compilation into a static binary that can just be copied from machine to machine without any dependencies whatsoever (even C struggles with that on Linux, due to glibc NSS fiasco) 4) Cross-compilation by changing two environment variables 5) Minimalistic distribution system - just write `import "github.com/person/repository"` - no need for packaging, pom.xml, requirements.txt, package.json, etc. 6) Interface-based modularity (structural typing), making code reuse much easier than the usual OOP-style abstract-class based modularity (nominal typing) 7) Extremely fast compilation, which makes read-modify-run development loop as fast as with interpreted languages |
2) .NET, Java, Smalltalk, Common Lisp
3) Any compiled language until the mid-1990's.
4) Amsterdam Compilers Toolkit, 1980
5) Until the repo changes, forbids distribution of binary libraries
6) Standard ML, Caml Light, OCaml, Haskell,...
7) Turbo Pascal on CP/M, MS-DOS computers running at 7 MHz, with 640KB.