RIA War Is Brewing

Click here to see screenshotsThere's a war brewing on the Web today--a war to decide how Web applications and content will be developed and how users will consume the content of the future Web. But this isn't the latest round in the browser wars. No, the war I'm talking about

Click here to see screenshots

There's a war brewing on the Web today--a war to decide how Web applications and content will be developed and how users will consume the content of the future Web. But this isn't the latest round in the browser wars. No, the war I'm talking about is over the RIA (rich Internet application), a type of Web application that can run independently of browsers, can run on any operating system and, in many ways, works like a traditional desktop application. Of course, RIAs aren't new. They can be traced back to earlier efforts such as Macromedia's Shockwave, Java applets and the ubiquitous Flash format. But recent developments--including the growth of powerful Web development technologies such as AJAX (Asynchronous JavaScript and XML) and improved standards support in the latest Web browsers--have boosted RIAs' potential reach and capabilities. By far, the biggest and most mature player in the RIA arena is Adobe Systems. When Adobe acquired Macromedia more than two years ago, it also acquired a legacy that went from Shockwave to Flash to Flex. This long legacy of RIA experience has culminated in the recent release of AIR (Adobe Integrated Runtime), a next-generation RIA platform that makes it possible to build browser-independent Web applications that have many of the features of desktop applications, including offline capabilities. However, while Adobe is currently the biggest and most experienced RIA player, it faces serious challenges on multiple fronts. For Adobe, probably the most formidable competitor is Microsoft. With its new Silverlight technology, Microsoft is making an initial push into RIAs. While Silverlight is still new and immature compared with Adobe's offerings, Microsoft has to be taken seriously any time it makes a big push into a market. On the other end of the spectrum is Mozilla, whose Prism RIA platform uses the Firefox browser's core technology to make it possible to easily build RIAs out of Web applications. There are also many smaller RIA vendors that have nearly as much experience as Adobe and have specialized in meeting specific RIA needs for businesses. A good example of this type of vendor is Curl, a company that has focused on building RIA platforms for businesses. But, while RIAs have been around for more than 10 years, the technology has progressed slowly. We are only now reaching a stage where RIAs are finally beginning to deliver on their long-held promises of easily developed and deployed cross-platform applications. Let's call it RIA 1.0. To evaluate the state of RIA technology, eWEEK Labs has been testing Adobe's AIR, Curl's namesake platform, Microsoft's Silverlight and Mozilla's Prism. Each product has unique strengths and weaknesses. And, while I was impressed with all the products, they illustrate a key problem: Without a standard for RIAs, things will remain fragmented until one platform dominates or everyone agrees on a standard. RIAs bring another dimension to Web applications that could cause problems for some developers, especially those from predominantly Web authoring backgrounds: As desktop and generally powerful applications, RIAs bring increased security concerns and potential problems to the table. This is especially true if the RIA platform being used has the ability to interact with native operating system processes. Because of these issues, RIA developers should pay special attention to potential security problems and make it clear to RIA vendors that strong built-in security is a must.

Adobe AIR AIR 1.0, which was released in March, is in many ways emblematic of all RIAs in that it is both mature and immature at the same time. Built on a bedrock of longstanding RIA systems such as Flash, AIR is the furthest along of all the RIA platforms I've seen in terms of features and capabilities (especially offline support) and in development options. But AIR is also clearly a brand-new product, and has all the growing pains and limitations of a typical 1.0 product. The only time most users will think much about AIR will be when they decide to download and install the run-time needed to run AIR applications. The AIR run-time is currently available for Windows and Macintosh systems, and a beta that offers Linux support was also recently released. Once users have installed the run-time, they can download the many sample applications that Adobe has made available, plus run any AIR applications created by other developers. Of course, the users most interested in AIR will be developers. And, for developers, AIR offers both good and bad news. On the plus side, there are multiple ways that an AIR application can be created. The most direct way is through Adobe's $249 Flex Builder 3 development application. Flex and AIR have much in common, and it is possible to create an AIR application from scratch using Flex Builder. Using Flex Builder, I could launch projects as AIR applications, and Flex Builder would handle the creation and packaging of those applications. It was also easy to take any existing Flex application and convert it into an AIR project. In addition, Adobe provides extensions and plug-ins for Dreamweaver and Flash that, while not really for full-fledged AIR application development, did make it simple to take Web and Flash applications and convert them into AIR applications. An SDK (software development kit) is available for AIR, and developers who are uncomfortable with traditional Adobe tools may find this the best option. AIR applications can also be built using traditional HTML and AJAX development techniques. However, those choosing the HTML and AJAX path should realize that it is not completely devoid of Flash influence. Developers will need to have some familiarity with Flash objects and with the ActionScript language used in Flash applications. AIR's developmental flexibility is a plus in many ways, but it can also cause confusion for those learning the system--especially if they're trying to learn from the source code of other applications. Since there is no one way to create an AIR application, developers may find that the application from which they are learning was created in a method they aren't using themselves. (For example, someone using mainly Flex Builder may find it difficult to learn from an HTML-based application.) Again, one other important thing for developers to keep in mind, especially those coming from a mainly Web perspective, is the added security concerns associated with creating a desktop application. To a large extent, AIR applications use a sandbox model that limits how much they interact with the operating system. But these are still desktop applications, and they will touch the system in ways that Web applications never do. Developers should pay attention to what system resources they are accessing and what data they are connecting to. In the documentation, Adobe has done a good job of breaking down the special security concerns that come with developing desktop applications with AIR. In general, we found AIR to be the most capable and feature-rich of the RIA platforms we tested, but it is still not all it could be. In addition, while much of its base is open, there are still proprietary elements to AIR, and those interested in a fully open Web will probably be leery of creating important applications on an RIA platform that is closely tied to a vendor. All the AIR tools and resources can be found at www.adobe.com/air.

Curl While some RIA technologies are focused on flashy graphics and advertising, longtime RIA player Curl has a more specific focus--helping businesses and developers actually get work done through RIAs. Unlike the other systems I looked at, Curl is a complete and finished product, and it shows in Curl's capabilities and feature set. Using Curl, I was able to easily build and deploy business-focused RIAs that integrated well with business data systems and applications. The latest version of Curl, 6.0, which shipped late in 2007, has added beta support for running Curl applications on Mac OS X. (Curl already supports Windows and Linux.) The Curl organization also released several open-source projects for building Curl applications and integrating them with Web services. The basic Curl tools are free, and the professional tools for business use and deployment start at $12,000. The main tool for creating Curl applications is the Curl IDE (integrated development environment), and I found it a very good, straightforward tool for creating RIAs. Anyone who has ever used standard business-application and form-building tools will instantly feel at home in the Curl IDE. Indeed, I was able to quickly build simple applications using this tool. Curl applications tend to work well in business and enterprise situations, as they have excellent data-handling capabilities and good information presentation features. In addition, while Curl isn't as focused on animation and graphics as some other RIA platforms are, it does do a good job when it comes to data analysis and reporting graphics. Since Curl has been around for 10 years, it has a well-established base of users and support, and I was able to quickly find information and help in the developer areas of the Curl Web site. All the Curl tools and information can be found at www.curl.com.

Microsoft Silverlight When Microsoft released Silverlight 1.0 in 2007, it was hard not to be impressed with the nearly unprecedented (for Microsoft, anyway) cross-platform capabilities of the new RIA system. Right from the get-go, Silverlight worked on multiple Web browsers, including Firefox and Safari, and ran on both Windows and Mac OS X. In addition, an open-source project is working on bringing Silverlight to Linux systems. However, while Silverlight's browser and operating system support is impressive, as an RIA platform, its scope is much more modest. In tests, Silverlight proved to be a fairly basic and even old-school approach to building and using RIAs. In fact, Silverlight can't be considered a direct competitor to more advanced RIA platforms such as AIR. If anything, Silverlight is more of a direct competitor to Flash. Silverlight is designed to run within browsers and has mainly been focused on Web-based animations and interactivity, long the forte of Flash. And if starting a next-generation RIA platform is a tough task, it could prove tougher, even for Microsoft, to beat an entrenched market leader such as Flash. Since its launch last year, the Silverlight run-time's market penetration has been pretty slow. In fact, the only hope that Microsoft might have to truly challenge Flash is to succeed in its attempt to acquire Yahoo, whose many services and sites could increase Silverlight's reach. However, while Silverlight may be old-school in its approach to RIAs, it does have its own strengths and unique capabilities. And since it is designed to be friendly to the Microsoft developer community, Silverlight could become a popular choice for these developers when it comes time to build RIAs for their businesses. In addition, with the March release of the Silverlight 2.0 beta, the Microsoft RIA platform is moving beyond its initial focus on animation and interactivity. With the new release, more data awareness has been added to the Silverlight framework, making it possible to build more business-friendly applications. As with AIR, developers can take multiple approaches to building Silverlight applications. For power developers comfortable in traditional Microsoft environments, the best option will be the tools add-on for Visual Studio 2008. Developers looking for something more in the realm of Flash tools and who are more interested in animation and interactivity will want to test out Microsoft's Expression Blend 2.5. Using this tool, I was able to fairly quickly build simple Silverlight animations and videos. An SDK is also available, and the Silverlight.net site has a wealth of materials and community forums to help novice Silverlight developers get up and running with the platform. Future plans for Silverlight include support for offline applications. Right now, however, Silverlight is an interesting but fairly basic version of Flash that doesn't match up to more advanced RIA systems such as AIR. More information about Silverlight can be found at www.microsoft.com/silverlight/.

Mozilla Prism While most RIA platforms try their best to be familiar to Web developers, enough new coding and scripting processes have been added that the learning curve has increased, even for experienced developers. This has been necessary because Web applications have traditionally lacked the ability to create interactive user interfaces similar to those found in classic desktop applications. This has changed in recent years due to the growth of AJAX and similar Web development systems, and it's now possible to build RIA-like Web applications that run in all modern browsers without the need of special run-times or plug-ins. This means that if one could run a modern AJAX-based Web application outside of a Web browser, it would essentially be an RIA. This is the focus of the open-source Prism project from Mozilla, the creator of the Firefox Web browser. Prism is a simple but powerful program that makes it possible to take any existing Web application and turn it into a stand-alone application. And even better, you can do this in seconds. After downloading Prism, I was easily able to point it at any Web application I was using--from Google's Gmail to Zoho to Salesforce.com--and convert it to a desktop application that would run outside of a standard browser window. I found this especially useful for very rich Web applications, as it removed all the unnecessary browser controls and allowed me to focus on the application itself. Of course, Prism isn't actually removing the browser from the equation. In fact, Prism is essentially a stripped-down version of the Firefox 3 browser. But this simple approach to RIA development and use may prove to be one of the most attractive for many developers. The biggest benefit is that there is no need to learn any new development techniques. Simply develop your Web application as you would for a browser, and then deliver it through Prism. None of the applications I tested have offline support, but since Prism is based on Firefox 3.0, it should be possible to create applications that use Firefox's offline capabilities. In addition, with its simple interface, Prism is the only RIA platform I've tested that will be immediately usable by Web users without any development skills. Keep in mind that Prism is still under the Mozilla Labs umbrella, meaning it is in many ways considered experimental. But that hasn't stopped Prism from being used by some high-profile applications, including the recently released desktop client for the Zimbra mail platform. Prism runs on Windows, Mac OS X and Linux. Users interested in testing it out can get it at http://labs.mozilla.com/2007/10/prism/.