Which Web? How to choose an RIA technology

Rich Internet Applications are fast becoming the preferred way to deliver functionality to users’ desktops. But which of the competing RIA technologies is the best choice?

Click here to download a copy of the "Which Web?" whitepaper in PDF format (1,021kB). 
The text of the whitepaper is reproduced below.

Close up photo of Paul Caplin
Paul Caplin,
founder of Caplin Systems

In Platform Wars,  a recent Caplin white paper, we looked at the epic battle that is currently raging among the software giants to replace Microsoft Windows as the world’s dominant application delivery platform. The universality of the Web and the growth of cloud computing have combined to undermine Windows’ dominance, creating a clear opportunity for newer Web-based platforms to rival or eclipse it.

The Rich Internet Application (RIA) technologies on which these new platforms are based can, if used correctly, bring big benefits in terms of ease of deployment, universal access, content integration, and – increasingly – functionality. It’s no wonder that so many application developers are switching to them.

But which RIA technology is best for business applications? Which one offers the best functionality, the fastest development times, and the most cost-effective route to market? And which is the safest long-term bet?

Your choice of RIA will depend on what you’re doing and over what timescale, on who your intended users are, and, crucially, your expectation of what will happen in the future. This paper aims to provide as much clarity as possible about the merits and drawbacks of each technology, identifying the key questions you will need to answer to reach a conclusion about what is best for you.

The contenders

There are just three horses in this race: native Web applications, Adobe Flash/Flex, and Microsoft Silverlight. Other would-be entrants such as Curl and JavaFX are a long way behind, and appear unlikely ever to catch up.

Web applications are Web pages that behave like applications, thanks to near-universal browser standards such as HTML, CSS, XML and JavaScript. In the early days, Web applications were referred to as Dynamic HTML or DHTML and were fairly limited in capability. With the arrival of more powerful browsers and asynchronous messaging, the technology was renamed “Ajax,” and gained hugely in scope and power. Now, with the emergence of the game-changing new HTML5 standard, Web applications are increasingly powerful and complete.

Flash is a browser plug-in, originally developed in the 1990s by Macromedia to add graphical animation and multimedia content to Web pages. In 2004 the company released Flex, a toolkit for building RIAs on the Flash platform. Macromedia was acquired by Adobe in 2005, and Adobe has aggressively pursued the Flex project since then. Adobe has recently announced that Flex is (confusingly) to be re-branded as Flash. It has achieved considerable success, thanks to the ubiquity of the Flash plug-in and Adobe’s focussed marketing.

Silverlight is the latest in a series of moves by Microsoft to project its power into the RIA space. It is a plug-in-based toolkit conceived as a more-or-less direct response to Flash/Flex, with a very similar technical approach. It benefits from the powerful Microsoft development environment, but as yet has only limited browser penetration.

What’s the difference?

It is essential first to make the distinction between native Web applications and plug-in-based applications.

Native Web applications run in the browser itself, are based on a set of open standards, and have a vast development community behind them. They can seamlessly include other Web content, and embed plug-in content such as Flex or Silverlight.

Further, browser manufacturers are competing energetically to provide the best possible Web application functionality and performance. Even Microsoft appears now to have acknowledged the need to keep up in this area, with its forthcoming IE9 browser reportedly closing the gap with its competitors.
In contrast, the plug-ins are proprietary browser add-ons that were created to address various technical weaknesses from which Web applications have historically suffered. These weaknesses can be divided into three areas: developer productivity, performance and functionality.

Web application weaknesses

In addition to these technical issues, there are two important strategic considerations: ubiquity and longevity. None of these technologies is of any use unless the end-user has them installed on her desktop. No one wants to invest in a technology that is not going to be widely used or supported in the future, and there is a clear risk in adopting a platform that is supported by only one vendor.

Let’s explore these issues.

Productivity

Web application development has traditionally been associated with relatively low developer productivity. This was due partly to a shortage of sophisticated development tools, and partly to the fact that older browsers were quirky and erratic when running Web applications, which made development harder.

The plug-in technologies sought to address this by delivering a single proprietary platform in each case, and providing Flash Builder (in the case of Adobe) and Visual Studio (in the case of Microsoft) as a development environment. Recent versions of Flash Builder have received poor reviews, however2.

Adobe also offers integration with its Creative Suite applications for graphic design. Microsoft counters with its Expression Studio, and by pointing out the relative ubiquity and strength of Microsoft .Net development skills, which can be transferred to Silverlight with some cross training.
Better developer productivity used to be a powerful argument in favour of plug-in based technologies. In the last year or two, however, the standardisation of modern browsers, combined with the advanced toolkits, frameworks and services that are now emerging for Web application development, have dramatically improved Web application development productivity, eroding this proprietary advantage. There is little doubt that the gap will continue to close.

Further, as Adobe faces up to the threat posed to Flash by Web applications using HTML5 (see Platform Wars), it is hedging its bets by repurposing its own development tools for native Web applications3.

Job trends for RIA development skills

Job trends for RIA development skills (SimplyHired.com)

Performance

Performance is a murky area, with none of the three technologies a clear winner. For complex graphical effects, Flash and Silverlight are still ahead of Web applications, with Flash the overall leader. But graphical animation is not what matters for business applications: the ability to render, move and manipulate text is more important. And recent test results have shown modern browsers decisively outperforming Flash on some graphical rendering tasks4.

It is perhaps fair to say that Silverlight usually outperforms Flex; that Web applications running in Microsoft IE6 perform particularly poorly; and that Web applications running in the newest browsers often exhibit the best performance of all.

But it is a complex comparison, and what matters is that all three technologies can be made to perform well enough for almost all business applications, so that performance is not in practice a deciding factor. At Caplin Systems, for example, we have achieved excellent results with Web applications for professional foreign exchange trading (among the most demanding of all business applications) even when running in older browsers.

Functionality

The different technologies also differ in what they are capable of doing. The plug-ins have historically led native browser capabilities in areas such as animation and graphics, although the emerging HTML5 standard is redressing the balance. At the time of writing there are still many browsers in use that do not support HTML5; but equally, a large proportion of browsers do not yet have the Silverlight plug-in, or the latest Flash plug-in.

It is worth remembering also that features of this kind are much more important for entertainment than they are for business applications, where (despite the recent trend towards animation) they provide, at best, some additional gloss.

Ubiquity

The other major distinguishing factor that separates the competitors is whether they are already present on the user’s desktop. In consumer applications, this may not matter too much as people can generally be persuaded to download and install plug-ins on their home computers. But for business applications it is much more important, as users in large firms are often not permitted to do this.

Browser penetration statistics

Browser penetration statistics (courtesy of StatOwl)

Native Web technology (though not yet HTML5) is by definition present in every browser, and the Flash plug-in is present in nearly every browser. Silverlight currently lags far behind, being supported in only around 50% of all desktop browsersat this point, and much less in large enterprises.

While the penetration of Silverlight will undoubtedly continue to increase, its current limited availability is an important consideration for anyone planning to release an application in the near future.

A major factor in future ubiquity is the exponential growth of mobile computing, which is set to dwarf desktop computing over the next few years. A recent much-discussed Morgan Stanley report is particularly eloquent on this theme5.

Computing growth drivers over time, 1960-2020E

Source: ITU, Mark Lipacis, Morgan Stanley Research

Business people will continue to use desktop computers some of the time, just as they continue to use fixed-line phones. But they will also rely heavily on portable web connectivity, just as they rely on mobile phones and Blackberries now. The Blackberry will inevitably be replaced in the executive’s briefcase by something much more like an iPad. No one knows quite how soon this will happen, but it is hard to imagine, say, a financial trader in 2015 not carrying a device of this kind to keep an eye on the markets and his positions when in meetings or out of the office.

At the same time, Web access in the consumer market is going to shift to portable devices on a massive scale. People don’t use desks much at home – in fact the main reason they buy them is to have something to put their irritatingly bulky and immobile PCs on. Mobile phones have massively outstripped landlines because people want to call other people, not tabletops. Similarly, people want information, entertainment and communication wherever they are, not just at their desks.

The worldwide adoption of the iPhone outstripped the take-up of any previous technology in history (which is why Apple is now the most valuable technology company in the world) – and Android is now growing even faster. There are only two conclusions that can be drawn from this: either (1) the growth of devices such as the iPhone and Android are a blip, a temporary fad that will soon slow down; or (2) it is valid to extrapolate the growth line and predict that desktops will soon be eclipsed.

It seems unlikely that it’s a blip.

The idea that mobile computing is set to rapidly outstrip desktop computing in the market as a whole has big implications for the balance of power in the platform world. If most of the computers in the world are mobile and they don’t support, say, Silverlight, then Silverlight is not a strategically safe technology – even if most of your own end-users are still using desktop machines that support it.

Recently, Apple made it clear that it would never support Flash on the iPhone6. The loser was not Apple but Adobe, as Web designers took note and reduced or eliminated their use of Flash, and people started to seriously question its long term future. Such is the power of the shift to mobile computing.

Microsoft has failed to deliver a convincing handheld offering, and at this point it appears likely that the mobile computing platform of the future is going to be determined in a contest between Apple (iOS) and Google (Android).

Both Apple and Google are enthusiastically committed to HTML5. Neither supports Silverlight, although there are occasional rumours about Silverlight on Android7. Google supports Flash – although apparently with very poor performance8 – while Apple refuses to.

The picture that is emerging is of a near future in which most Web browsing is done on portable devices that may well not support Flash or Silverlight. This raises serious questions about the future of these two technologies.

Longevity

The chart below shows the author’s view of the likely trajectory of the three competing technologies over time, as platforms for business applications.  This picture is of course informal and subjective, but is supported by the evidence outlined in this document and Platform Wars.

Projected success of RIA technologies over time

Projected success of RIA technologies over time

Flash has recently enjoyed a significant advantage over native Web technologies, but this is being rapidly eroded and many expect Flash to decline or even die before long in the face of formidable competition9. Silverlight is still on a growth path, but is about to be severely challenged by HTML5, new browsers and fast-evolving Web development tools.

Meanwhile the immense momentum and huge developer community behind native Web technology virtually guarantee its continued rapid growth and evolution. These are precisely the same forces that propelled Linux, Java, HTML and HTTP to success.

Web applications use truly open standards, are not reliant on a single vendor, and enjoy massive industry support. They are likely to be around and widely supported for the foreseeable future. In due course, they will match everything that plug-ins offer, at which point they will be the natural choice for most applications. That is the long-term answer.

But, as can be seen from the graph, we’re at an awkward moment. The relative strength of the three technologies is very similar, and the plug-in technologies offer some definite productivity and functionality advantages.

Bottom line

We’re now in a position to summarise the pros and cons of the three solutions. We will ignore performance as a differentiating factor, since this is very hard to judge in general and in any case has been proven to be adequate for almost all business applications across all three technologies.

Pros and cons of each of the RIA technologies

Pros and cons of each of the RIA technologies

It can be seen that:

  • The risks associated with Web applications are moderate and short term
  • There is a major short-term problem in the low ubiquity of Silverlight
  • There is a major longer-term risk in the uncertain future of Flash
  • The absence of support for either Flash or Silverlight on Apple mobile platforms, and the lack of support for Silverlight on Android, threatens their future ubiquity

So we are in an awkward predicament. In the short term, Web applications tend to offer lower productivity and functionality than Flash or Silverlight. Flash enjoys high ubiquity and offers good functionality and productivity, but faces a questionable future. Silverlight is not yet very widely supported, and by the time it is present on a majority of desktop machines it is quite likely that Web applications will have caught up or overtaken it.

Is there a way out of this bind?

Web frameworks

There are now several very powerful off-the-shelf Web application frameworks available. Most of these, like ExtJS, Dojo and jQuery are general in scope. A few, like Caplin Trader, are optimized for specialised application areas like financial trading, where the more general frameworks do not perform well.  If you are lucky enough to be working in an application domain for which a suitable Web application framework exists, then your problem may be solved.

By providing a configurable layer on top of Web standards, a Web framework can close the functionality and productivity gap between Web applications and plug-ins, providing the best of both worlds.

The picture then looks like this:

 

Pros and cons of RIA technologies (including web framework)

Your decision has become much easier.

If on the other hand no suitable framework exists for your domain, then you have a choice. You can develop a Web application knowing that it is likely to require somewhat greater effort, but confident that it will have a secure future. You can opt for Flash, which is almost universally supported but has an uncertain future. Or you can choose Silverlight, which is present on only a limited proportion of desktops but which provides a very powerful environment and has a reasonable life expectancy ahead of it.

Conclusion

The good news is that high-quality business applications of high complexity can be built successfully in any of the three technologies discussed in this paper. None of them is likely to be a disaster.

Silverlight has much to offer, and is a popular environment with many developers. However, it does not integrate particularly well with conventional Web content and suffers from a lack of ubiquity that makes it difficult choice at this point for many applications.

Flash currently enjoys very high penetration of desktop browsers, but there is widely considered to be a significant risk that it will wither under a combined assault from HTML5 and Silverlight and may go the way of the once-popular Java applets. This raises serious questions about Flash as a strategic choice.

Both Flash and Silverlight are threatened in the longer term by resistance from Apple (and possibly Google, in the case of Silverlight) in the exploding mobile computing space.

Web applications have historically lagged in terms of functionality and developer productivity, but this gap is rapidly closing thanks to the emergence of HTML5 and powerful Web application frameworks. The existence of a suitable framework can make Web applications an attractive choice, provided the framework suits your domain and meets your needs. If such a framework is available, a Web application can be a compelling option.

Finally, much will depend on the skills available to your organization. Firms with a strong Microsoft culture and little in the way of Web skills may find Silverlight an irresistible choice, despite the lack of penetration, and may choose to rely on being able to persuade users to download the plug-in. But if you have good Web development expertise available, a Web application is an increasingly attractive option.

References

2: Reviews of Adobe Flash Builder:
http://daniel.cohen.net/blog/2010/04/flash-builder-fail-flex-run-time-resources-374

http://www.selikoff.net/2010/04/01/review-of-flexflash-builder-4-defective-by-design
3: Adobe to roll out HTML5 development tools:
http://ajaxian.com/archives/html5-tools-from-adobe-html5-pack-available-and-a-future-sneak-peak
4: Flash vs. HTML5 rendering speeds:
http://www.pathf.com/blogs/2010/07/html5-flex-drawing-curves
5: Morgan Stanley paper on mobile computing:
http://www.scribd.com/doc/24128777/The-Mobile-Internet-Report-Key-Themes
6: Steve Jobs explains why Apple will not support Flash on the iPhone:
http://www.apple.com/hotnews/thoughts-on-flash
7: Prospects for Silverlight on Android and iPhone:
http://www.talkandroid.com/305-microsoft-silverlight-android
http://www.zdnet.com/blog/microsoft/could-silverlight-be-microsofts-next-app-for-android/5477
8: Flash runs poorly on Android:
http://gizmodo.com/5546439/speed-tests-show-flash-101-slowing-down-android-22-significantly
9: Views on the future of Flash:
http://www.technightowl.com/2010/03/now-its-inevitable-flash-is-dying
http://www.infoq.com/news/2010/02/future-of-flash