Sep. 3rd, 2007 01:26 pm
A return to geeking
Somehow or other I seem to have got myself back into the frame of mind where I'm happy to be sitting in front of a PC in the evening generally playing around with code. This is good. This is how things ought to be. Even better, I've been teaching myself a whole new language. I've stayed away from Ruby in the past because, frankly, I had a fairly reasonable working knowledge of a scripting language I liked, which enabled me to deploy applications on pretty much any major platform without too much hassle. Tcl is a great little interpreted language, and Tk is a pretty reasonable gui toolkit, and Tclkit, which allows Tcl/Tk apps to be packaged up in a neat little executable, makes development and deployment really simple.
That's all great, but Tcl isn't exactly mainstream. It doesn't have bucketloads of enthusiastic developers behind it, and there's little internal pressure to give it a profile any higher than it's got now. So, at long last, I decided I'd have a look at this Ruby thing. You know what? It's not half bad. It has its quirks, but then so does everything else. Anyone who tells you their favourite programming language is utterly sensible and doesn't have any hidden weirdness is a liar. It seems to work quite nicely with a number of gui toolkits, not least of which is Tk, so the learning curve from Tcl/Tk to Ruby/Tk isn't as steep as I'd thought it might be (I am also playing around with Gtk though, that's quite nice). There's also a way to achieve a similar result to Tclkit, which makes the whole thing extremely attractive. My main concern with developing in a Linux environment, with interpreted languages, is that there are likely to be problems with portability, after all, how many end users will have Ruby installed? Ok, maybe there's a few in the Linux world, but Windows users? Not likely.
So, I'm playing with Ruby and generally enjoying it. I'm going to do some small applications just to test things out, but it looks like a very useful language. I'll be looking at Rails shortly too, and exploring what Ruby means in a web setting. Could be fun.