The primary goal of this project was (and is) to provide a complete interface to FOX from Ruby. Ruby programs should be able to access FOX classes transparently; this includes deriving new Ruby classes from FOX classes and overriding their virtual functions. This goal has been met pretty well at this point although there are undoubtedly a number of bugs waiting to be discovered.
A secondary goal of the project is to promote Ruby and FOX, two great open-source projects that both deserve wider recognition. After discovering Ruby and monitoring the comp.lang.ruby newsgroup postings for only a few weeks, it became apparent that users were dissatisfied with the existing GUI options for Ruby. As with Python, Tk is the de facto standard because of its maturity and availability on a number of platforms (including the Macintosh). But Tk is also showing its age in many ways and it has failed to keep pace with some of the "younger" cross-platform GUI toolkits like FOX, wxWindows, FLTK, Qt and GTK+. Of the latter five, only Qt and GTK+ appeared (at the time) to have usable Ruby interfaces and there are some problems associated with these as well; for Qt, it's the restrictive license for the Windows platform version, and for GTK+ it's a Windows version that often lags far behind the standard Linux/Unix version. There is clearly a need for a modern, open-source, cross-platform GUI for Ruby, and FOX fills that need.
Since its first public release in January 2001, FXRuby has become one of the most popular GUI options for Ruby:
In a Ruby Garden poll held in July 2001, FXRuby edged out Ruby/GTK as the most-preferred GUI writing toolkit for Ruby.
In August 2001, FXRuby was added to the Pragmatic Programmers' Windows installer for Ruby.
In October 2001, Lyle gave a presentation on "Developing GUIs with FOX and Ruby" at the first annual Ruby Conference in Tampa, Florida.
Although the lack of documentation has been a sore spot for some time, several upcoming Ruby books (such as the Ruby Developer's Guide from Syngress Publishing, Inc.) will feature FXRuby as a Ruby GUI development option.
Most recently, work has focused on keeping FXRuby up-to-date with the still evolving FOX library while looking for new ways to make Ruby GUI development fun. For example, FXRuby is under consideration for use as a GUI front-end to the fledgling FreeRIDE project. If you have suggestions about where you'd like to see things go, feel free to drop me an e-mail.