New Native Languages, May 08, 2012 D, Go, Vala, and Rust: A new generation of native languages.
Go is the native language emerging from Google. It's written by a small team headed by Ken Thompson and Rob Pike of UNIX fame. The language has strong support for concurrency and uses a concept called "channels," which involves synchronized message passing (rather different than actors). Among the other notable features is mandatory garbage collection, which is unusual for native languages. (While obviously not mandatory, you can add garbage collection to C and C++ using the Boehm GC library.) Despite GC, performance figures on the Alioth benchmarks show Go to to run about one-third the speed C/C++. (However, I'm not sure that those benchmarks make much use of garbage collection, so I'm not convinced they accurately represent its performance.) Go only just reached version 1.0 status, and so should be viewed as still experimental. To wit, it only recently supported Windows as a principal platform. However, Google has signaled its commitment to the language — using it both internally and supporting it on the Google App Engine. We'll be covering Go in upcoming articles on Dr. Dobb's.