June 8, I opened the doors of IT University for an extra FSCONS event arranged by FSCONS and GTUG. Andrew Gerrand from Google was here in Gothenburg to talk us through the language Go.
I liked Andrew’s talk btw. Clear. Easy to understand. He seemed to be interested in the questions asked. During the talk theere was a discussion on IDEs and according to Andrew there’s no need for an IDE when writing Go (which is the case (IMHO) when you’re programming for example Java). That sounded promising. Anyhow, let’s talk about Go. I am usually skeptical to new things (a clear sign of a geezer) and to some extent I’ll stay that way regarding Go. At least for a while more. Without any deeper knowledge I present my reflections on the language (as if anyone cares):
When it comes to memory management I feel pretty ok. As a developer it’s easier to let some one else do memory allocation for you (i.e not alloc and free), but at the same time when doing C/C++ I am in control and I can predict a bit better when things happen.
[In a previous version of this blog post I by mistake used the word concurrency to mean the distribution mechanism in Erlang. This is such a big mistake I’ve decided to rewrite history and edit my blog post – 2010-06-11]
Looking at “cross machine distribution mechanism” (think Erlang) I miss it. I asked Andrew about this and he said that there is none, but I interpreted him as if the door is not closed, but until then we will have to rely on a library (think pthreads in C). However, if concurrency comes with a virtual machine or run time system (or what ever you want to call it) I am not sure I think it’s worth it. At least not when it comes to the kind of programs I normally write.
I asked Andrew about shared libraries and there is no such thing in Go. I surely understand why, but it would be neat to have. This could be done I guess with the C bindings mechanism in Go.
Enough of my complaints and ramblings. What do I think?…. what is my gut feeling. I am not a big fan of leaning on arguments such as “my inner feel says”, but that’s more or less what I will do.
Why Go?: It’s free software. It seems to be a language with which I can quickly get my things done.
Why not Go?: Not that many targets supported, no shared libs, non concurrency (why not use C instead of Go then?)
I guess I will give it a try…. and that’s not something I say that often. Perhaps write some Xnee bindings for Go.
Makes me wonder, should we invite some one to talk about Go at “the real” FSCONS 2010?