Find Me Online

HTML5 Powered with CSS3 / Styling, and Semantics

Go, Go, Go! (or don’t)

Google did something rather weird last week. Well Ok, it did 2 weird things, the first of which I’ll cover here while the other (SPDY) will have its own post soon. Last week, Google decided to release a new programming language to the world : Go.

Now, unlike frameworks or libraries, a major new programming language is not something we see everyday. The last one of note for me was perhaps C# by Microsoft at the beginning of the decade. Before that, Java is a relatively recent language (1995), the same year Ruby first appeared although for many of us Web developers, Ruby wasn’t of much use until recently with the release of Rails.

Go Programming LanguageUnlike Microsoft with C#, Google has released Go with very few libraries to go along with it. The concepts behind the language are not bad: as with anything, being able to start from scratch is often beneficial. The problem with it right now is the lack of libraries or bindings to any popular systems. Using Go to code a Windows or Mac OS X application could be nice, but Google made no bindings to the Win32, .Net, Cocoa or Qt libraries. Worst still for Windows users, the language is not even working there yet.

As is often the case with Google, the core of Go is nice, but it lacks a little bit of polish. When Microsoft released C#, it also released Visual C# to go along with it and made the entire .NET framework work with it. With Go, google did something that’s both right and very wrong: it released a GCC-based compiler and linker. It makes a long of sense because you have a lot of programmers on both Linux and OS X that are familiar with the compiler and know how to create Makefiles, but at the same time, your brand shiny new language, that aims to define a modern, efficient programming language for today’s threaded, multi-processor world is stuck with a toolset designed 20 years ago.

I don’t think Go is bad and I’m glad Google is trying something new but I wish the company had waited a bit and had polished up its stuff before releasing it. Unlike a consumer-facing app like Chrome, releasing it early doesn’t give Google a whole lot of advantages. As it is, if you’re on OS X or Linux, give it a shot. You’ll probably do like I did and create a few little demo app, think it’s neat and forget about it for now until it matures a bit.

Still, with the included packages (libraries), Go is a great language to create command-line utilities and “scripts” (although Go is a compiled language).