> Feels like a scripting language, but you get static typing and the performance of a compiled language.
Exactly. I'm a longtime enthusiastic Python programmer and reluctant C++ programmer, and for me Go is the first language that could realistically replace both Python and C++ for my programming.
For me the killer features of Go are:
- Go code is almost as compact as Python but--especially for numeric code--much, much faster.
- You never have to wait for the compiler! Everything I've written compiles and links in a fraction of a second.
Note too that, apart from the C runtime and low-level OS interfacing stuff, the entire Go standard library is written in Go itself. Contrast this w/ "scripting"/dynamic languages like Python or Ruby where much of the standard library has to be written in C for performance.
Go isn't the only language that matches those requirements though. I took a long hard look at Go for very similar reasons and ended up deciding on Scala.
It feels like a scripting language, incredible performance, extremely compact code when you need it to be, actors.
>Easy CSP-style concurrency: goodbye races and deadlocks w/ threaded code.
I actually disagree with this, CSP style, actors, message passing, you still have potential race conditions and deadlocks. What you gain is a nice separation between what is shared and what isn't. Just don't think Go's concurrency is the many-core silver bullet anymore than locks or Tx Memory is...
Exactly. I'm a longtime enthusiastic Python programmer and reluctant C++ programmer, and for me Go is the first language that could realistically replace both Python and C++ for my programming.
For me the killer features of Go are:
- Go code is almost as compact as Python but--especially for numeric code--much, much faster.
- You never have to wait for the compiler! Everything I've written compiles and links in a fraction of a second.
- Easy CSP-style concurrency: goodbye races and deadlocks w/ threaded code.
Note too that, apart from the C runtime and low-level OS interfacing stuff, the entire Go standard library is written in Go itself. Contrast this w/ "scripting"/dynamic languages like Python or Ruby where much of the standard library has to be written in C for performance.
(FWIW I have published some open source Go code on Github at http://github.com/jbarham and the beginnings of an AWS library at http://code.google.com/p/goaws/.)