I was recently asked what I thought the next big thing in languages was going to be. After thinking about it long and hard I strongly believe it’s going to be Google’s Go. When I read and code in Go I have flashbacks to when I first started writing Java 1.0.2. The same percentage of people were using this language and that (C, C++, VB)… yes, the API wars were in full swing too. OS/2 was almost completely gone, HP had acquired the Dec Alpha and that was on the decline.
When Java 1.0.2 was released it was a practical system programming language. It ran on Sun and Intel hardware (maybe a few others). It had a clean and robust API set that also worked across platforms. It removed many of the tedious activities like memory management and it implemented OO in a clean way.
Now 15 years later Java’s SDK has tripled or quadrupled in size, maybe more. The number of APIs are growing daily. Frankly Java and it’s offspring have become the COBOL of our time.
Go, in my opinion, is in the same place that Java was. The difference now, however, is that “we” are trying to solve slightly different problems for which Go has some solutions. But first, Go looks like gava once did. It’s lean, cross platform, has plenty of APIs with enough to get reasonable system work done. Now that have added quality concurrency, which Java did not have in the beginning and arguably still doesn’t, and they added IPC in the way of channels, which java still lacks. Add native compiled output, monolithic/static code linking, and integrated package management; and you have a very nice platform. Then there is my intuition.
I recently write a Go version of a program meant to merge multiple presorted files. The go version was a little longer and a little more verbose. But not that much. Anyway, it’s certainly a language worth watching.