Webtop software development: Combining the desktop and the Internet

Author Note: This was originally posted on linux.com in 2008. I am replicating it here for posterity.

Adobe recently created a media buzz with the announcement of a cross-platform Web-enabled runtime environment, code named Apollo. The environment allows developers to create applications that run directly on the desktop while using content from the Web. Adobe has built Apollo to leverage existing technologies such as Flash, Flex, HTML, and AJAX. Apollo is an amazing concept, but it is not a new idea. Sun Microsystems released Java Web Start in 2001, and the Mozilla Foundation invented XUL when it created Firefox. There are also several startups entering the market. All of their products are geared do the same thing: bring Web applications to the desktop.

Adobe Apollo

Apollo is a runtime environment, meaning that it must be installed on the target machine before any Apollo-enabled applications can be executed. The runtime is free to all end users, the same way the Adobe Flash Player and Adobe PDF Reader are. The Apollo software development kit is free as well and does not require an interactive development environment — at this time. Apollo, being an Adobe product, is built to leverage existing Adobe products such as Flash and Flex.

Java Web Start

Sun has been in the business of combining Web and desktop applications for years. Java Web Start (JWS) is an extension of earlier ideas. JWS allows developers to build standard Java applications and distribute them over the Web. JWS allows developers to publish updates that automatically update end users’ applications. With Java and JWS developers can create a true webtop application that works on-line and off-line if they’re willing to work a little and build the functionality from scratch.

XUL/Firefox

XUL is the XML-based interface language that powers all of the Mozilla products. Combined with JavaScript, it allows developers to create rich client applications. XUL applications are also runtime applications that execute on top of the Mozilla framework. These applications are often built as extensions to Firefox, but can be created as standalone applications. In the upcoming Firefox 3, local data storage will be available, as well as a true online/offline infrastructure; currently the online/offline infrastructure is not readily available but can be accomplished by rolling your own solution.

Others

A few other products have recently entered the market. Dekoh is built on Java; it leverages a small internal Web server that allows it to communicate with the Internet and other instances of Dekoh on the local network. It also has a social sharing environment built in. Slingshot is a RoR (Ruby on Rails) based system that can run existing RoR applications without any code changes. Both of these products require a runtime environment to operate. They are also very new and have not been released to the public.

Side-by-Side Comparison

The following table provides a high-level side-by-side comparison of the aforementioned applications.

 ApolloJava Web StartXUL/FirefoxDekohSlingshot
TechnologyFlash, Flex, Ajax, HTMLJavaXUL, JavaScriptJavaRuby on Rails
Runtime CostFreeFreeFreeFreeUnknown
SDK CostFree (Flash and Flex abilities must be purchased)FreeFreeNot Free (looking for Beta users)Free if using Accelerator, otherwise Unknown
Open SourceNoYesYesNoNo
StabilityIn Development6+ years of development4+ years of developmentBetaBeta
Webtop Functionality (Online/Offline state)YesRoll your ownRoll your own until version 3YesYes
Local Data StorageNoYesNo (Version 3 will have support)YesNo
Runtime PlatformsWindows, OS X, LinuxWindows, OS X, Linux, SolarisWindows, OS X, Linux, SolarisWindows, OS X, Linux, SolarisWindows, OS X
Development PlatformWindows, OS XWindows, OS X, Linux, SolarisWindows, OS X, Linux, SolarisWindows, OS X, Linux, SolarisWindows, OS X, Linux

Each product has its place and choosing the correct one depends on the application. If the application calls for a smooth polished interface with eye-catching interaction Apollo would be the best fit because of its ability to embed flash. Some applications call for complete control and robust toolkits, if that is the case the JWS system is by far the leader. Both Dekoh and Slingshot look promising, if the clients remain freely available, but it is too early to tell if they will keep up with the larger companies. Of all the products mentioned the XUL/Firefox combination is the most complete. It supports the most platforms, has a low point of entry (both technically and monetarily), can be integrated into existing products (via SOAP and XML), and has a very active development community that is constantly breaking new ground.

The Future

In the future there will be more applications like the ones mentioned here. As the Internet and the desktop evolve, developers and users alike are going to look for more powerful tools, and one of the answers is combing the two. Developers, managers, business owners, and users need to pay close attention to what happens in this sector; it could change the way we use software forever.