Why we need Go

Rob Pike on how Go fits into today's computing environment

Go programming languageThe 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.

Related:

Related

Sign up for the O'Reilly Programming Newsletter to get weekly insight from industry insiders.
topic: Programming
  • JavaCook

    Rob is brilliant, but has long been willing to provide a slanted view of how good Go is vs how bad Java is. Don’t get swept away by his hype; let the language and its usage numbers speak for themselves.

    It was also pretty funny when you said Java didn’t address concurrency in para #1, and that its concurrency support was second only to Go’s in para #2…

  • http://twitter.com/celideo Stuart

    Faster compilation will surely attract the trial and error coding crowd. Brilliant.

  • Allan

    Good video but I don’t understand why there is a tiny video inside a massive static ‘slide’. Reminds me of an Powerpoint presentation. What a waste of 720p HD quality setting.

  • Kutay Zorlu

    c++ is best, on text saying about 20-30 yearss ago, but c++ everytime developing by developers. You cant say 20-30 years ago.