Google's new programming language, called Go, took the application development world by storm when the search giant released it Nov. 10. The ambitious technology's pedigree features programming experts from the Unix world, including Ken Thompson, who teamed with Dennis Ritchie to create Unix. Created as a systems programming language to help speed up development of systems inside Google, Go is now viewed as a general-purpose language for Web development, mobile development, addressing parallelism and a lot more.
Google's
new programming language, called Go, took the application development world
by storm when the search giant released it Nov. 10.
The ambitious technology comes with a pedigree featuring programming experts
from the Unix world, including Ken Thompson, who teamed with Dennis Ritchie to
create Unix. Created as a systems programming language to help speed up development
of systems inside Google, Go is now viewed as a general-purpose language for Web
development, mobile development, addressing parallelism and a lot more.
Ironically,
Google launched Go just a week before Microsoft's Professional
Developers Conference, which typically dominates the software development
landscape while it is running. This time there might be a little Go buzz at the
event.
Go is an experimental language that is still in the process of being tweaked
and maturing, but it holds huge potential.
The
Google Go team blogged about Go, saying, "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."
Moreover, having released Go as an open-source effort, Google is opening up
the ongoing development of the language to the community at large. Will it be
the next big thing? Could it supplant Java? Rob Pike, one of the three founders
of the Go project, spoke with eWEEK about the overall effort. Here are 12
things to know about Go.
1. Where did the idea for Go come from?
Pike, Thompson and Robert Griesemer of Java HotSpot virtual machine and V8
JavaScript engine fame, decided to make a go of developing a new language out
of frustration with the pace of building software. Said Pike:
"In Google we have very large
software systems and we spent so long literally waiting for compilations, even
though we have distributed compilation and parallelism in all of these tools to
help, it can take a very long time to build a program. Even incremental builds
can be slow. And we looked at this and realized many of the reasons for that
are just fundamental in working in languages like C and C++, and we needed a
different approach. We also decided the tools that everybody used were also
slow. So we wanted to start from scratch to write the kind of programs we need
to write here at Google in a way that the tools could be really efficient and
the build cycles could be very short."
2. Go is a multipurpose language
Pike said Go is appropriate for a broad spectrum of uses, including Web programming,
mobile programming and systems programming. "We based it on our ideas of
what we think systems programming should be like," he said.
Then a Google engineer told the team he wanted to do a port to ARM
processors for the Go language because he wanted to do some work in robotics.
With the ARM support, "We can now run
Go code in Android phones, which is a pretty exciting possibility," Pike
said. "Of course, ARMs also run inside a lot of the other phones out
there, so maybe it's a mobile language."
He added, "I think people, once they absorb it a little bit more, will
see the advantage of having a modern language in some ways that actually runs
really fast. And it's an interesting candidate to think of as an alternative
for JavaScript in the browser.
"Although getting Go supported inside browsers is going to be a seriously
challenging undertaking ... but it is an interesting thing to think about
because it has a lot of the advantages of JavaScript as a lightweight, fun
language to play with. But it's enormously more efficient. So some of the big,
heavy, client-oriented applications out there like Google Wave would be much
zippier if they were written in Go, but of course they can't be written in Go
because it doesn't run in a browser yet. But I'd like to see some stuff in that
direction, too, although how that's going to happen I don't know."