Google Go 1.3: Better than C?
With zippier performance, better tooling, and additional support for diverse environments, Chocolate Factory language gives C a run for its money.
First launched in 2009, Google’s home-brew language ‘Go’ was backed by early adopters as the language to supplant Java in popularity. It was developed to be a modern language for low-level programming, and takes a good degree of inspiration from the C family. The Go-syntax is similar to C, though enriched by elements of the Pascal / Modula / Oberon family as well as from Newsqueak and Limbo (concurrency).
According to Google, it incorporates the advantages of an interpreted high level language with the efficiency and safety of a statically typed, compiled language. Memory management comes courtesy of a Java style garbage collector, and there’s a Type-safety swirled in to protect against variables chaos. Go also has support for multi-core programming, closures, reflection and classless object orientation with interfaces and mixins.
This week’s release of Go 1.3 may go some way to helping the Chocolate Factory language further its reach, offering faster performance, improved tooling, and support for additional environments. Rather than focusing on fancy new language features, Google has put the emphasis on optimization over implementation. It’s also very nearly fully compatible with older versions of the language, with the release notes stating that “almost everything will continue to compile and run without change when moved to 1.3.”
For example, a revision to the compiler tool should mean faster builds. Additionally, the the instruction selection phases, which was previously included in the linked, has now been set into the compiler, which could help accelerate incremental builds for large projects.
Go’s garbage collector now works with a greater deal of precision, in particular when it comes to stacking analysis. And finally, the memory model has also been refined to help users achieve better synchronization results. DragonFly BSD, Solaris, Plan 9 and Google’s Native Client Architecture (NaCl) are now supported (though on an “experimental” basis) as new environments.
Though it’s footprint is fairly miniscule compared to Java and other rising JVM stars, Go is steadily gaining followers, who are likely moving away from other alternative languages. As RedMonk latest Language Popularity Rankings show, it’s certainly gaining traction in StackOverflow and GitHub. Currently sitting at number 21 on the analysts’ rankings, it’s predicted Google’s pet project could break into RedMonk’s top twenty within the next six months.