Google’s ready, set, Go!
The burst of nostalgia over the golden age of compiler languages and competition can hide the remarkable longevity of the C language and its derivatives, and how used we have become to the march of the operating system. It’s a bit like those periods of prehistory in the Old Testament where all that seemed to go on was a lot of begetting without any real progress being made.
So it’s nice to see some big moves at last, by some under-appreciated early pioneers: it wasn’t all just Bill Gates and Linus Torvalds before 2000, you know. Go designers Robert Griesemer, Rob Pike and Ken Thompson aren’t fresh college graduates with no experience. Quite the reverse, in fact. Dig into their history and you’ll come away with the impression that these three men alone were responsible for almost all the evolution in languages for writing OSes, anywhere on the planet.
I’m simultaneously cheered up by this and disheartened. On the one hand, I want the clever and experienced guys at the helm. On the other hand, I don’t want to find that they’re stuck in some cognitive dead ends, trying to atone for decades of mistakes visible only in hindsight. Sometimes a clean slate is a much better idea.
Don’t imagine that Go is intended solely to make Google’s life easier as caretaker of the planet’s data centres. Of course, the various articles you can immerse yourself in talk a lot about multicore and distributed file systems and the like, but if you have a bit of previous with developing in compiled languages then a lot of what you’ll be reading about Go sounds like relatively unambitious housekeeping updates. I’ve already seen quite enough about how Go is inherently proof against the things that used to bedevil projects written in C++, which can present gaping security holes simply through naive misuse of language features and coding practices.
I should say that I don’t agree with that verdict: I think those summaries are aimed at clickbaiting harassed project developers, rather than accurately describing what’s inside a proper 21st century computer language.
Making commercial use of Go has taken quite a while, with the start date of the language itself dating back to 2009. It’s not been at the forefront of education experiments with getting kids into coding, or at the forefront of the minds of supercomputer operators, but that may not necessarily reflect a limited usage model or deployment solely within Google’s cloud estate: and this is exactly what ownCloud demonstrates.