The Go Programming Language

The Go Programming Language.

I’m glad to see this; there has been too little innovation on the system programming language front. I do like C, though I’ve become more conscious of its faults since I learned it (*mumble*) years ago.

I’m a little disappointed that Google didn’t throw its weight behind the other major contender in this category, The D Programming Language. They have to have considered it; I wonder if their decision not to use it involved technical considerations, licensing considerations, or a little of both.

The write-up on TechCrunch is light on technical details, and the comments are hilariously clueless: paranoiacs spluttering that Google is taking over the world, people who’ve never written a line of code in their lives declaring it an instant failure, and Johnny One-Note programmers insisting that this will never take the place of PHP, or C#, or JavaScript, or whatever their One True Language is, shrieking with terror at the thought of learning something new.

For myself, I like what I’ve read so far about Go. It looks not much more complex than C (and waaaay less complex than C++), with a more modern, more streamlined feel. I like the idea of trying to head off the formatting wars by including a canonical pretty-printer in the core tool set (though I wish they had standardized on spaces instead of tabs for indentation). Requiring braces around blocks is good: it heads off a common error in C/C++ coding, and there shouldn’t be any ‘friction’ in changing a one-line block into a multi-line block. I liked structural equivalence of types when I first encountered it in Modula-3, and the Go concept of interfaces is nicely reminiscent of that. I don’t miss the whole object oriented feature list (encapsulation, polymorphism, inheritance, and dynamic binding), so long as modularity and information hiding are supported. And garbage collection is a huge win, so long as it can be done efficiently and without causing the program to stutter.

All in all, very interesting, and a worthy challenger to D as a 21st-century systems programming language.

Comments are closed.