Melding the best features of modern languages like Python with the speed and reliability of C and C++

Nov 11, 2009 08:14 GMT  ·  By
Go blends the best features of modern languages like Python with the speed and reliability of C and C++
   Go blends the best features of modern languages like Python with the speed and reliability of C and C++

There's nothing Google wouldn't want to have a crack at. Its engineers are working on anything from operating systems, two of them in fact, to power-saving widgets so the only surprise in the fact that they've now built a new programing language is that it took them so long to do it. Called Go, the new language is a blend of modern languages and good old-fashioned principles from C and C++. It doesn't necessarily intend on taking over the world, of course Google always says that, but its creators believe that it has its place in the development world.

“Here at Google, we believe programming should be fast, productive, and most importantly, fun. That's why we're excited to open source an experimental new language called Go. Go combines the development speed of working in a dynamic language like Python with the performance and safety of a compiled language like C or C++. 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,” Google's Go team wrote.

And it's a team with a great pedigree which includes two of UNIX's creators. The Go language takes its cues from several popular languages but it's skewed towards C in many respects. It has several overarching goals, one of them is to take advantage of the muticore processors that power most of today's computers, allowing the programs to run multiple tasks in parallel. Of course this also works well for multicore, multi-processor machines like the servers that Google deploys in the hundreds of thousands.

The other main focus is on speed, both of the compiler but also of the programs themselves. It's not quite where it wants to be yet, most programs run about 20 to 30 percent slower than similar ones written in C or C++ but the compiler is already blazingly fast, so fast that it could almost be used as an interpreter language. For now, it's available for 32- and 64-bit x86 machines but also for ARM processors. The latter is important as it is the most widely-used architecture for mobile devices.

Go is still labeled as an experimental language, but it already has a solid foundation of libraries built by its creators with most of the usual things already available along with some modern features like garbage collection. It's being build primarily as a low-level language for server software, but it is very flexible in this area and it can even be used for web programing. In fact, the Golang.org website set up for the language is set up using Go. And its creators believe that it is “at least an order of magnitude” faster than JavaScript already. However, it is still in its early days so Google is open sourcing the project to give it a chance to gain some real traction.