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?
""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."