There is little doubt that Rich Internet Applications (RIA) are becoming the norm. AJAX has helped us understand that, when it comes to building Web applications, there are no excuses left for providing end-users with inefficient and outdated UI conventions.
Rich Internet Applications can be defined as Web applications that provide the same level of interactivity and responsiveness as desktop applications. RIAs are not only changing the way consumer applications on the Web are being delivered (Google Maps, Salesforce.com, and so forth), but also the way enterprises build internal applications. There is (of course) a healthy amount of hype surrounding RIA, but this is supported by measurable business benefits for both consumer and business users.
I won’t embark on yet another tedious RIA comparison that just rehashes what other people have already said so well, but what we still don’t know is where all this is going. The RIA marketspace is still fragmented with different standards jockeying for position.
That being said, what does the big RIA picture look like, and what can we expect to happen over the coming years in Web development to complement or supersede Ajax? How will the next generation of graphical user interface technologies shape up and what role will they play in Web development?
Ajax
The use of XMLHttp with DHTML and JavaScript empowers the developer to provide a surprising amount of desktop-like interactivity. One of the main criticisms of this approach is that developing Ajax for multiple platforms is actually quite complex, potentially creating runaway costs of ownership over time. Some of this is overblown because this situation will only improve as a plethora of cross-platform Ajax APIs reach maturity in the open source such as Dojo and commercial arenas (Tibco, EBA, BackBase, and so on).
“The big advantage of Ajax right now is that it’s based on open standards, it’s free, and it works in a cross-browser and cross-platform environment. Actually, there’s a lot under the hood of the browser that Ajax developers are just starting to tap into.”
…says Dave Johnson, CTO of eBusiness Applications. But, even the biggest Ajax proponents seem to recognize that Ajax (as it’s currently defined) can only evolve so far before we hit a wall , or it starts looking like something else altogether (see the XUL, XAML, SVG, and Flash sections that follow). (Christian Cantrell), Product Manager for Developer Relations at Adobe, believes that Ajax is just the beginning of a software renaissance:
“We’re now undergoing a renaissance period where Web developers feel that it’s better to provide a better experience for most people than a mediocre experience for everyone. And, the good news is that the adoption of Ajax is helping to drive better Ajax support in browsers, although unfortunately, I think we’ll still be struggling with cross-browser and -platform issues for some time to come.”
It seems right now that Ajax is the default answer to RIA, but shouldn’t we be looking beyond what we’ve got now, to what technologies might open up new doors for Web applications?
XUL
The XML User Interface Language (XUL) is a markup language from the Mozilla foundation, and the user interface definition for the Firefox browser. It can be used to develop rich Web applications when sitting on top of XMLHttp for server communication. (Kurt Cagle), author of over 15 books and SVG Open 2006 conference chairman thinks that while it’s an incredibly powerful framework, XUL has a ways to go before becoming a serious contender for Web RIA:
“Is XUL market-ready now? No, though it’s not far. It needs a better toolkit for production, needs a real IDE, MUCH better documentation, and a decent body of literature. There’s some move to make this happen—there are a couple of (XUL-oriented Eclipse plugins comes to mind) that provide a basic framework, but it would help if it was blessed and incorporated into the formal Mozilla framework.”
XUL also fundamentally lacks Internet Explorer support, seriously limiting its applicability for public Web applications. The story for XUL certainly doesn’t end here, though, and with the Mozilla foundation rolling forward with the Gecko engine, XUL is only going to increase in capability and scope.
SVG
Scalable Vector Graphics (SVG) is a text-based graphics language that describes images with vector shapes, text, and embedded raster images. It can be integrated with XML datasources or SMIL (Synchronized Multimedia Integration Language). It has good interoperability with CSS and JavaScript, has uptake with some popular vendors like Adobe, and is a W3C standard.
“SVG […] lends itself well to generated interfaces, either through bindings or via transformations. This makes it easier for computer systems to generate JIT interfaces, and outside of the Windows world there’s some pretty impressive efforts to get SVG into the core services layer, and I suspect strongly that this effort will pay off huge in a couple of years because it essentially makes it much easier for data presentation to autoconfigure itself.”
..says Cagle. It looks like more than a few firms are developing SVG 1.2 implementations for embedded systems, and it has enjoyed some adoption in the public sector, says Cagle:
“…a lot of governmental agencies have moved from pilot projects into full-blown adoption of SVG as a preferred format for both illustration and applications, something I always find a telling indicator of the adoption rate and perceived applicability of a technology.”
As for browser support, both Firefox and Opera have limited native SVG support already, with plans to improve their implementations. Work has also started to bring support to (Safari). However, outside of a special plugin from Adobe, a lack of native support in IE makes it a difficult choice for public applications—and Microsoft appears to have no plans to change this for IE 7. It seems as though the standard is increasing in relevance, but not the same way that the Ajax toolset is. There is compelling evidence that over the next couple years we may see a lot more SVG development done at the Enterprise level for internal systems, or possibly even on mobile platforms, but perhaps not on the mainstream Web.
XAML
The next generation markup language from Microsoft is named XAML (Extensible Application Markup Language), and is part of WinFX Avalon (Microsoft’s new UI technology). XAML will be supported in future versions of Internet Explorer and is available now with the help of special plugins. This is partly Microsoft’s response to other XML-based technologies such as XUL and FLEX, but is really a natural progression of the convergence of RAD tools and the Web browser as a platform for software.
XAML, not surprisingly, will also be platform dependent, with planned support for Windows Vista, 2000, and Server 2003 only. However, the (“Windows Presentation Foundation Everywhere”), or WPFE for short , might paint a very different picture. The WPFE will involve a subset of XAML relying on JavaScript, and strive to be platform independent—providing a painless route from a XAML application, to a generic Web application featuring rich interactivity.
Even without WPFE, the innate benefit of being a natural bridge between mainstream desktop development and Web development can mean big cost savings for firms writing applications that straddle both environments.
“Currently, an enterprise is using two different UI object models to develop Windows and Web applications. With WinFX, an enterprise would be able to use one UI object model to develop for all applications, from Windows to Web to Smart devices.”
… says Gary Fuhr, VP Development at XAML vendor (Mobiform). Assuming that WPFE will fall short of expectations, to what degree individuals will choose XAML for Web development will depend on the amount of control they have over their users’ client platforms. Dissimilar though they may be, we will likely see a great deal of migration of Ajax-powered applications to XAML over the next couple years. Expect to hear a lot more about XAML.
Flash/Flex
Adobe (formerly Macromedia) wants the world to start thinking of the Flash technology stack as a legitimate set of tools for application development—and they may finally have something with that. Flex 2.0, Adobe’s upcoming Flash/Eclipse development platform, is altering the perception that Flash is just for animations and game development. Flex uses a combination of MXML (an XML-based markup language similar to HTML) to define layout, and ECMAScript-based ActionScript for scripting. Platform dependence? In the near future, Flex will be deployable to .NET in addition to JRun, Websphere, BEA Weblogic, or Apache Tomcat. Christian Cantrell, Product Manager for Developer Relations at Adobe had this to say about Flex 2.0:
“Developers will get things like ActionScript 3.0 (a fully ECMA-compliant, object-oriented language), E4X, regular expressions, binary sockets, additional Web service support, robust framework and component model, and an Eclipsed-based IDE for application development.
“End users will get things like a much faster runtime, high-quality video codec, and simple and seamless installation process.”
Flash is interesting from the point of view of the Web, because it happens to have an extremely high degree of market penetration (about 95% of the browsing public, according to http://blogs.zdnet.com/ITFacts/?p=6005), even in the enterprise. Why aren’t we all building with Flex now? Price is one reason, but according to Cantrell, Flex 2 will be server-decoupled, allowing anybody to start building full-fledged Flex applications for under $1,000.
Like Avalon, Flex is more of an end-to-end solution and less complementary to HTML-based applications than Ajax, XUL, or SVG are. It’s easier for people to incrementally adopt a new presentation layer on top of HTML than make the leap.
Still, all the ingredients are here for success, and we’re already beginning to see some high-profile use of the technology online (at Simon Willison’s Weblog). Flex provides a compelling next-step in Web RIA, but whether developers will leap or creep in that direction will depend on what happens in the Ajax world over the next little while.
Conclusion
The trick with developing for the Web is that so much of what we can do depends on what the end-user has running on their machine (what browser, plugins, and the like they have loaded). This is particularly true when it comes to RIA, because to do anything truly desktop-like, we have to leave the confines of boring (but safe) HTML, and go into realms of technology that lack the same generic platform independence. This could be problematic, particularly if you are a big ASP like Salesforce.com, or even just building for a diverse internal audience of corporate users—but big things are on the horizon, and it’s beginning to look like the future of Web RIA could be decided in a battle between Adobe and Microsoft. Until that happens, there’s a lot of room left on the Ajax playing field for innovation and developers are still discovering great new ways to deliver Web applications using this new approach. We can count on a long and interesting transition to the next generation of RIA.
About the Author
Alexei White is a Product Manager for eBusiness Applications (EBA) (http://www.ebusiness-apps.com), a Web development firm based in Vancouver, British Columbia, that designs and implements Ajax-based components for enterprises. He can be reached for comment at awhite@ebusinessapps.com. He also operates AjaxInfo.com, a Web portal for Ajax resources, news, and tutorials that can be found at http://www.ajaxinfo.com.