Desktop App development in Ruby

Bowline — A cross-platform Ruby desktop application MVC framework where views are written in HTML/JavaScript and Webkit is used for rendering.

Shoes — A cross-platform Ruby graphics toolkit.

I had given up on developing desktop applications, mainly because they were running out of fashion. But also because the tools involved were a good deal of pain to use (and I’m no fan of pain.) So when I came across these two cool frameworks/toolkits that allow desktop app development in Ruby, my brain directed my mouth to exhale a “sweeeeeeeet!”

Yes, I enjoy programming in Ruby, more than programming in any other language. Yes, that is in spite of that fact that I’m pretty darn bad at it.

I like Bowline more than I like Shoes, so I’m going to talk only about it (but let me just say that in trying to be extra-cool, Shoes has rendered their website virtually information-less; proof in point: their about page mentions Ruby exactly once, in the last line, and that too just in passing.)

I came across Bowline through this article, which also shows off a simple Twitter app developed using it. Like the article says, “Twitter apps are the new ‘Hello World’!”

Apart from the fact that it uses Ruby as the programming language, the thing I like most about Bowline is that it uses HTML/JS for the view. I have been creating websites at the pace of a Ninja for a few years now and this much I can say: while HTML/JS is less expressive than regular desktop GUI toolkits, it is far easier to express the interface in it. And don’t forget intuitive. Well, at least for me it is.

Bringing MVC architecture to desktop app development is also commendable. Since the time I started developing websites using Rails/Sinatra (which almost force one to use an MVC architecture), I have never looked back. I believe this is the way to develop applications. At least until someone comes up with an even better way. (To be sure, there are several GUI toolkits that also encourage MVC architectures to some extent or other; for example: QT4 and above, Adobe Flex, Java Swing, MFC, Cocoa/AppKit etc.)

All I need now is an idea for a desktop app and I can start exploring Bowline. Sweeeeeeeet!