Ruby Tuesday #10 Part 1 : Studying Form
The next task I had set myself in my Ruby learning journey was to write a GUI for the Twitter client I have created. A quick squiz around the internet reveals a number of potential frameworks. In no particular order, here’s some I found:
FXRuby – "a library for developing powerful and sophisticated cross-platform graphical user interfaces." I was toying with the idea of writing a weak and crude GUI, but this may still be the right choice.
Konundrum - "Very complete bindings to both the KDE API and the Qt APIs." Very complete is clearly a good thing – none of your bog standard completeness here. Now, what’s Qt? It’s a "cross-platform application framework for desktop and embedded development" according to its authors, Trolltech, with "an intuitive API and a rich C++ class library."
Ruby/Tk – there seems to be Ruby bindings for the Tk toolkit. Tk is a "Tcl extension, written in C, designed to give the user a relatively high level interface to his or her windowing environment." Tcl, in turn, is a "a powerfully simple, open source-licensed programming language." Hmm. Does all this sound a little obtuse and slightly recursive to you, too?
Ruby-GNOME2 - "a set of Ruby language bindings for the GNOME 2.0 development environment." GNOME "offers an easy to understand desktop for your GNU/Linux or UNIX computer." And lots of CAPITALS. *nix only is a dealbreaker for me – although the documentation includes mention of Ruby/Gtk2, which uses Gtk+, which runs on Windows. Could be clearer, but if you’re a fan of the esoteric this could be a good choice.
Shoes – "a very informal graphics and windowing toolkit." Here’s a helpful poster thingy about it.
Of course, with IronRuby I could also use Silverlight. I haven’t covered IronRuby yet, so I’ll leave Silverlight for another Ruby Tuesday. For those of you who can’t wait, I’d suggest a little peek here.
Is all this choice a good thing? Or does it distract me from building a GUI by leading me to have to find out some more about each framework / toolkit? As good a concept as choice is, I’m not sure what the choice here really is. I can choose between a bunch of frameworks that do more or less the same thing. So unless anyone has a better idea, I’m going to plump for Shoes on the basis that it has the best, albeit extremely silly, name.