Ah, "write once, run anywhere." Where have we heard that promise before? It's been fourteen years since Java launched, and we still haven't achieved the the "write once, run anywhere" vision on desktop PCs they way they promised back then.
Or haven't we?
On May 23, 1995, Sun's John Gage and Netscape's Marc Andreessen officially announced Java at the SunWorld conference, and indicated that it was going to be built into Netscape Navigator. The early enthusiasm about Java and its inclusion into the browser was just one of many reasons that people started to see the browser's potential to make the operating system irrelevant. Microsoft and Bill Gates certainly weren't ignorant of that possibility, and launched an all-out assault to ensure not only that developers continued to make software for Windows, but that if browser-based apps were to ever emerge, they would emerge into a fractured browser market, or better, a Microsoft-dominated browser market.
14 years later, Java never made its splash in the desktop PC world, and client-side Java apps are not common, but Java emerged as a major force in server-side enterprise software, a market that also suffered from platform fragmentation. And despite Microsoft's best efforts, Bill Gates' worst nightmare has largely come true. A major portion of consumer-oriented application development has shifted to the web.
This is where Rhodes comes in. The first step that Rhomobile, the developer of the Rhodes framework, took was to implement Ruby on all the major mobile platforms. Some people think of them as "The mobile Ruby company." Then they created a Model View Controller framework for their mobile Ruby implementations. Rhomobile's CEO described it to me as, "Ruby on rails is to web development what we are to mobile device development."
The bold move that Rhomobile made, and history will probably best judge whether it's folly or genius, is to use HTML for user interface development. Thus, instead of having to develop the UI in Objective C, C++, Java, or .NET for each device, you do it once in HTML and deploy on all the devices. Rhomobile claims that thanks to their framework, "You don't even have to know much about Ruby. HTML was chosen because of people's familiarity with it."
Despite the Ruby/HTML approach, these aren't browser-based apps. They're locally executing, device-optimized native mobile applications with support for geolocation (GPS), PIM contacts and camera.
Rhomobile makes some pretty bold claims about how this approach speeds up the development process, even if you ultimately only want to launch on one device. The consensus among their developers is that using Rhodes to develop a mobile app takes about 1/5 the time of building it natively using the device's standard tools. Wikipedia had an Objective C-based iPhone app, and when they found out about Rhodes, they re-wrote it using Rhodes with an HTML-based interface and only used 1/5 of the code.
Rhodes is dual-licensed under the GPL and a commercial license. Developers who open-source their apps may use the GPL version of the framework and pay no fees. Commercial developers may license the commercial version of Rhodes and negotiate either a revenue share or per-seat fee with Rhomobile.
Rhomobile's latest project is RhoHub, a hosted development environment intended to make it easier to launch a web-enabled mobile app.
More information about Rhodes is available at Rhomobile's web site. If you'd like to try out an app built with Rhodes, they have a page listing several of their more high-profile ones, several of which are free of charge.