Sunday, October 19, 2008

Lunch n' Learn - Shoes

Two weeks ago I did a Lunch-n-Learn at work on the simple Ruby GUI toolkit, Shoes. Here is a quick overview of what I talked about ....

In working on a side project of mine I came to the realization that I needed a GUI frontend to my app in order to keep moving forward. I had been working in Ruby and found that there is not a standardized GUI toolkit. There are >10 toolkits around that boast a variety of features and pros/cons but none that was universally accepted. My criteria were that whatever I chose, it needed to be multi-platform and easy to work with for simple things. Enter Shoes.

Shoes is the creation of why the lucky stiff, or _why as he is known. If you have never seen/heard/read anything of _why's, I very much suggest you do. Just Google him. Between his talks, his blogs, his books (one on Shoes and another on learning Ruby), and anything else you will learn a deep appreciation for what is obviously a very passionate and sometimes strange being. :-)

Shoes is designed to be simple and small. The main website at Shoooes.net demonstrates a simple GUI with a single buttons as:

Shoes.app { button "PUSH!" }
Most of the constructs have origins in how the web works and/or how modern browsers display elements so nothing is too complicated. You can easily display images, draw 2d shapes on the canvas, add buttons/text/text boxes/progress bars/etc, link to the web or to other windows, and show any of several built in dialog boxes. Much of Shoes features come from its integration with native components ... there are seperate Windows/OS X/Linux GTK installs.

While the framework isn't yet production ready by my accounts, it is rapidly evolving through _why's efforts and a surpisingly dedicated mailing-list. Would I write a complicated IDE in it? No. Would I consider it if I needed a simple user interface or data visualization for a small program? Yes.

If you considering checking it out, look at the main website first, peruse the help area which has gotten drastically better in the last couple months, and check out some of the user submited demo apps at the ShoeBox. Finally, check out _why's online (and print) PDF book on Shoes - Nobody Knows Shoes. If you have never tried drugs, or would like to relive the experience, flip through its pages. Along with good information on using Shoes are some crazy graphics and entertaining side-bantor.

If your interested in my LnL presentation or my thoughts on Shoes drop me a comment. The main code portion of my presentation (done in Shoes of course) can be found here. Please no comments on code style or my Ruby abilities ... I am still learning and put it together to show people what Shoes could do, not to prove myself. ;-)

No comments: