Here at OSAlert we believe that in many ways the future of computing is mobile. It’s also a pretty exciting field, since it’s been so dynamic over the past ten years, with platforms rising and falling, and no one vendor ever rising to dominate. But this “wild west” market can be a real source of anxiety for mobile-oriented software developers, who have to gamble on which platform to support, or go to the extra effort of placing multiple bets. Maybe it’s not a huge problem for hobbyists or developers of simplistic apps, but as the devices get more powerful, it’s enabling the development of more powerful apps. If only these developers could develop a sophisticated mobile app that could be deployed on all the major mobile platforms. Now they can. There’s an open mobile framework called Rhodes that allows developers to write an app that will deploy on iPhone, BlackBerry, Windows Mobile, Symbian and Android.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.
Much of today’s web application development is done on the so-called LAMP platform, with PHP, Perl, Python, or Ruby, often as part of a framework, mated to Apache and MySQL on Linux, with HTML and Javascript (and AJAX) for the user interface. Early web apps were awkward at best, but a combination of better UI technologies and years of practice has made it possible to design elegant and useable applications for the web “platform.”
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.
Seems like the whole stack is a product of a startup.
Translation: once the startup loses interest/resources for supporting a particular platform, your application is screwed.
Relevant (old) article on sharecropping:
http://www.tbray.org/ongoing/When/200x/2003/07/12/WebsThePlace
It is open source, which mitigates that possibility somewhat.
From TFA:
So, it’s not really *that* open source (where the development happens by/for the community). This is similar to the scheme used by Qt (in the past) / Mysql (which got them no end of ill will). Now, I don’t know what the exact value proposition of this project is compared to, say, what Qt used to have, but certain discretion is advised if you are expecting a “free lunch”.
I agree that the dual-license approach does have some major drawbacks for the developer compared to a pure open source license. However, it still provides a substantial peace-of-mind boost on the abandonware front. If a dual-license company goes kaput, it’s highly likely that the source code will live on, and you won’t be left completely in the lurch. However, the usefulness of the source code will depend to a large extent on whether that company has successfully cultivated a lively open source community. Just slapping “open source” on your product doesn’t magically turn it into Apache.
Hmmm… in 2009, is the value of GPL licensed software really still being questioned? Qt and MySQL are huge boons to the development community, that I’ve benefitted from on projects many times. But valuable GPL software is all over the industry. If you believe in open source, by all means, open source your app. And then you owe nothing to use that GPL licensed product. Not sure if understand what your issue.
Regarding being a startup, the big open source wins (perhaps with the exception of Apache) are primarily from startups. PHP’s 8 millions developers: a startup. MySQL millions of users: a startup, Qt: a startup. I’m actually continually surprised how infrequently big companies (even ones that are perceived as benevolent) contribute to open source, despite the massive value some of them garner from it.
But any such startup’s backers just have to be prepared to be in it for the long haul (as in as much as ten years). Any intelligent startup’s founders won’t go into the deal without that commitment. I have seen plenty of underfunded, undercommitted startups with proprietary stuff, but I haven’t seen any open source companies recently without backers prepared for the necessary timeframe.
I agree with what was said about the importance of the development community. Rhomobile has a bunch of great devs in the community contributing already and we hope you guys decide to be part of that.
Cheers,
– Adam
GPL licensed libraries (and commercial ones) have always been questioned, I don’t recall that changing recently ;-). I guess the deal is that GPL / commercial is problematic because it’s still a “business” more than “collaboration” of interested parties.
I don’t think there are any GUI libraries that rely on this scheme anymore, for example.
Pre has similar idea, and all stuff are HTML + Javascript. And more, maybe most of app now are running at web. So device user maybe prefer to visit app through web using Browser.