Google has introduced a new programming language, known as Go, that is aimed at being fast, productive and fun for developers to use.
Google officials described Go as an "experimental language" that attempts to combine the development speed of working in a dynamic language like Python with the performance and safety of a compiled language like C or C++.
Moreover, in a blog post by the Google Go team, team members Robert Griesemer, Rob Pike, Ken Thompson, Ian Taylor, Russ Cox, Jini Kim and Adam Langley said: "In our experiments with Go to date, typical builds feel instantaneous; even large binaries compile in just a few seconds. And the compiled code runs close to the speed of C. Go is designed to let you move fast."
Meanwhile, an FAQ on the Go language on the language's Website addressed who should use the language. "We hope adventurous users will give it a try and see if they enjoy it," the FAQ said. "Not every programmer will, but we hope enough will find satisfaction in the approach it offers to justify further development."
Indeed, in that FAQ, Google admits that Go is not being used internally at Google, at least not for production systems. "The Go project was conceived to make it easier to write the kind of servers and other software Google uses internally, but the implementation isn't quite mature enough yet for large-scale production use," the FAQ said. "While we continue development we are also doing experiments with the language as a candidate server environment. It's getting there."
The Google Go team also said in its blog post:
""Typical builds feel instantaneous; even large binaries compile in just a few seconds. And the compiled code runs close to the speed of C. Go lets you move fast."Go is a great language for systems programming with support for multi-processing, a fresh and lightweight take on object-oriented design, plus some cool features like true closures and reflection.""
Among the trends behind the origin of Go are:
Computers are much quicker but software development is not faster.
Dependency management is a big part of software development today, but the "header files" of languages in the C tradition are antithetical to clean dependency analysis-and fast compilation.
Some fundamental concepts such as garbage collection and parallel computation are not well-supported by popular systems languages.
The emergence of multicore computers has generated worry and confusion.
"We believe it's worth trying again with a new language, a concurrent, garbage-collected language with fast compilation," Google said on its FAQ about Go.
Go follows on the heels of a Java-like programming language Google introduced in September, known as Noop.