Not just playing... I've actually got a real live (small) application, using Gtk and serialport, running on my workstation and talking (over RS485 and a sloppy length of twisted pair) to the contraption on my lab bench, in the next room. I can use it to send commands and receive and decode status, and this has enabled me to find & fix some bugs in the target firmware before the client has the final hardware and test fixture ready. (I also had to fix a couple of bugs in the hardware, but that's normal.)
I'm highly impressed with Ruby, and it looks like it'll be my scripting language of choice for the next few years. Learning time aside, the actual coding for this little app was almost trivial... and that's starting from never having completed any sort of GUI application before. (The remains of a dozen half-written GUI apps, in a variety of languages from a variety of eras, lie strewn across my disk drives & backup tapes.)
I'm somewhat less impressed with the GUI toolkits. I'd already mentioned that Tk, while easy to use, rapidly comes up deficient, notably in the area of supporting PNG images. Gtk started out as the widget set for the GIMP, then got expanded beyond recognition as the widget set for Gnome, and it got rather, er, organic in the process - definitely an evolved thing rather than a designed one, and accordingly untidy. That leaves Fox/FXruby; it looks promising at first glance, but I just spent a while experimenting, and it gave me a headache - partly that the documentation isn't nicely structured, and partly that it doesn't have the nice object-oriented feel of Gtk. (Oh, there's also Qt, but that comes with license worries.)
So, it looks like I'll be focusing on learning the intricacies of Gtk, in its Ruby-GNOME2 manifestation, and probably wrapping my own metawidget layer around it (which works nicely for the things I've tried so far). Next up... writing text onto images; getting a handle on Happy TreeView Friends; and passing images to & from a real graphics library, such as GD.
Yes, Gtk's drawing and compositing capabilities are limited... and I want to define steam-gauge widgets, which require rotating the indicator image(s) before compositing with the background and bezel images. I think Fox can do that, but I don't really feel like learning Fox just now.
(What am I up to? Isn't it obvious? I'm using Ruby as sort of a poor man's LabView, and I just can't resist the temptation to include steampunkish features!)
Update: Grumblegrumblegrumble! Some essential documentation for Ruby-GNOME2 seems to be nonexistent. Like, the entire section on GnomeCanvas, for example. And the pesky Gdk::WindowAttr thing that's required to create a Gdk::Window, which appears to be a prerequisite for doing anything with Drawables. The mapping from the C API is not immediately obvious, so the documentation is kinda important.
Oh, well. There's some example code, and I can always dive into the source code for the library....