The Go programming language was created by Rob Pike, Ken Thompson, and Robert Griesemer. Pike (@rob_pike) recently told me that Go was born while they were waiting a long while for some code to compile — too long.
C++ and Java have long been the go-to languages for big server or system programs, but they were created almost 30 and 20 years ago, respectively. They don’t address very well the issues programmers see today like use of concurrency and incorporating big data and they’re not optimal for the current programming environment.
One main reason that Go will succeed is how it deals with concurrency. It outpaces Java and C++ as well as Python, Ruby, and all the other scripting languages. It simply provides a better model, with Java a close second, that is able to work within the computing environment into which it was born.
During a recent interview, Pike elaborated on the need for Go and where it fits in today’s programming landscape. Highlights from our discussion include:
- Pike noted that compiled languages like C++ and Java are not aging well. [Discussed at the 1:25 mark].
- Go 1, the language’s first stable release, hit the computing world on March 28, 2012. Until that release, companies and programmers hesitated to incorporate the programming language into their projects because the language was in flux. The Go 1 stable release was essential for the language to begin its climb to the level of the entrenched and trusted C++ and Java. But, now with the specs and APIs locked down and an active community surrounding it, Go is set to grow exponentially.
However, maybe not overnight. A recent look at tags on Stack Overflow shows that Java has 295,411 tags, C++ 146,793 and Go far behind with 1,144. But don’t let that fool you, the language brings something programmers need in large projects and can’t ignore for much longer: compilation speed. Taking a second to compile rather minutes or hours, Pike discussed Go’s compilation speed at the 3:05 mark.
- A language needs to have swift runtime performance, solid tools, ease of use and compilation speed. Go really goes. And the key to compilation speed is dependency management. Pike expanded upon this: Go’s dependency model makes all the difference. [Discussed at the 3:38 mark]
You can view the entire interview in the following video.
Want to find out more about Go? Check out the official site.