The Rich Internet Application (RIA) landscape is richer than ever before. The technologies that are available today have reached maturity, and there are many examples of quality enterprise applications built on each technology. Knowing the strengths and weaknesses of each platform can help determine which technology makes the most sense for your organization’s project. This decision has become increasingly complicated due to the mobile space. Businesses no longer have to simply determine a direction for their browser based application, but they also have to consider how this decision affects their mobile strategy across multiple platforms. With newly added mobile support as well as enterprise tooling and server connectivity, the Flash Platform proves to be a compelling choice for enterprises.
Technical Architect, Universal Mind
The Rich Internet Application (RIA) landscape is amazingly expansive and the solutions that power them have matured. In addition, enterprise applications have expanded from simple charts and data grids. Since enterprises embark on a journey every day to determine which platform meets their needs, it makes sense to analyze the four main players and determine which makes the most sense as a true enterprise RIA platform.
Before an analysis of platforms can be made, it is important to stop and consider what factors truly matter in the enterprise. Large enterprise organizations are vastly different from startups, agencies, and small businesses. Their concerns include:
- Testability – Do tools exist to help the developers and Quality Assurance teams perform unit, functional, and integration tests on the platform?
- Staffability – Are there enough developers in the marketplace to fill the needs for current and future products on the platform?
- Support - Is there an organization behind the platform (and its related tools) that can provide support at an enterprise level?
- Integration – Does the platform easily integrate with the organization’s existing backend architecture?
- Cost – What is the total cost of ownership (TCO) for the platform?
- Reach – Is this solution available where my customers need it?
Platform Landscape Analysis
After an understanding of the needs of the enterprise are in place, we can begin to analyze the RIA platforms available today. In this analysis, four main contenders emerge: Adobe’s Flash Platform (Flash and Flex), Microsoft Silverlight, HTML5/CSS3, and traditional Ajax applications. These four solutions power most of the RIA’s in existence today.
Flash Platform (Flash/Flex)
The Flash Platform encompasses multiple development tools and runtimes. Content can be developed with Adobe Flash Professional or with Adobe Flash Builder. Once the content is created, it can be viewed with the Adobe Flash Player in the browser or deployed as a desktop application with Adobe AIR. There are also many options for deploying Flash content to mobile devices (which will be covered in more detail later in this article). The Flash Platform boasts many popular RIA’s including Hulu, SlideRocket, Aviary, and Creately.
One of the main benefits of using the Flash Platform is its reach. The Flash Player is currently installed on most every computer in the world. According to the Adobe Flash Player Penetration statistics, 99% of computers in mature markets have Flash Player 10 or newer. In addition, with Flash Builder 4.5 the tooling for Flex developers has been greatly improved. Productivity enhancements and mobile capabilities have put this tool on par with most any development environment. In addition, the number of Flash Platform developers continues to grow.
The Flash Platform recently silenced many critics with a video of a new build of the SDK which supports the deployment of Flex-based applications to iOS devices with near-native performance. In this post, Christophe Coenraets, an Adobe Evangelist, demonstrates a Flex-based application that was deployed onto an iPad, iPod Touch, and an Android-based Samsung Galaxy Tab. This application also utilized Adobe’s LiveCycle Collaboration Service. This illustrates another strength of the Flash Platform on mobile devices. Developers can leverage existing libraries and services to build their applications on.
| ||Android Browser||Android Apps||iOS Browser||iOS Apps||Playbook Browser||Playbook Apps||WP 7 Browser||WP 7 Apps|
Figure 1 - Mobile Compatability
While the Flash Platform has much of the mobile space covered, there are two main gaps for the Flash Platform as seen in Figure 1. First, there is a total lack of Flash support for the browser on iOS. Second, there is no support for either the browser or applications on Windows Phone 7.
The strengths of the Flash Platform are growing, but there were some difficulties – primarily perception issues -- last year. In April of 2010 Steve Jobs posted his Thoughts on Flash which sent shockwaves through the enterprise Flash Platform development community. At this point, many developers began spewing ‘Flash is dead’ rhetoric, and many in the industry began to join the bandwagon. This led to many organizations looking to HTML5 for future solutions. In addition, many developers have highlighted some advanced functionality like threading which is noticeably absent from the Flash Player. It should be pointed out however that these are not inherently technical shortcomings but perception issues, many of them fueled by Apple’s unwillingness to provide native Flash support on its mobile devices.
Microsoft’s Silverlight is another plug-in based solution (similar to the Flash Player) which is based on a subset of the .NET framework. Silverlight applications can be viewed in the browser on Mac and PC desktops which have installed the Silverlight plug-in. Silverlight also has the power to install these browser applications as sandboxed desktop applications. While Silverlight has many of the features of the Flash Player, it has found a bit of a sweet spot with media applications. Silverlight currently powers the online Netflix player and the streaming of many live events broadcast online.
For organizations that are already invested in the .NET platform, Silverlight is a natural choice. Silverlight is a subset of Windows Presentation Foundation (WPF), so many developers who have built desktop applications with WPF will feel right at home in Silverlight. In addition, since version 2 Silverlight has included a version of the .NET framework which implements the Common Language Runtime (CLR). This allows developers to write their Silverlight applications in whichever .NET language they are most comfortable in addition to XAML, the declarative markup used to define the user interface. Moreover, developers can work with Microsoft’s mature toolset including Visual Studio and the Expression Suite of applications which includes integrated testing tools.
Silverlight has matured since its inception, and it now offers most of the features found in the Flash Player. One feature that supersedes the Flash Player is its raw AV pipeline which allows developers to utilize their own custom codecs with Silverlight. This has led to Silverlight being the player of choice for companies like Netflix.
The biggest threat for Silverlight at this point is Microsoft. At Microsoft’s 2010 Professional Developer Conference (PDC) Bob Muglia, the President over the Server and Tools business, indicated that Microsoft’s focus with Silverlight had shifted, and that it would primarily be used for Windows Phone 7 development. Most people walked away from those comments with the thought that Microsoft was placing much more focus on HTML5 for browser based solutions and that Silverlight for the web was fading. Many of these concerns were rekindled when Microsoft failed to highlight Silverlight in the opening keynote of Mix 2011 and chose instead to focus on IE10 and HTML5.
From a mobile perspective, Silverlight is very limited as shown in Figure 1. Silverlight did receive a huge boost when Microsoft announced that it would be the platform for developing Windows Phone 7 applications. However, that is where the mobile support for Silverlight ends. In addition, there isn’t even full support for Silverlight in the Windows 7 browser at this time.
Traditional Ajax (jQuery)
In many ways, traditional Ajax applications triggered the RIA revolution. In the early days, Microsoft’s online version of Outlook – which was essentially an RIA built with Ajax -- was revolutionary and evolutionary. This solution circumvented the page-refresh model that users had come to expect. This technique began its life as DHTML, but it eventually became commonly known as Ajax. Applications like Gmail, Google Docs, and Apple’s Me.com are traditional Ajax applications.
Additionally, traditional Ajax applications can be a pain for developers. ‘Hacks’ are required in many cases to get an application appearing consistently across multiple browsers.
HTML5 and CSS3 are the products of the web standards process which is working to define a set of functionality that will be uniform across all of the browsers in the upcoming years. HTML5 provides a lot of functionality that was previously only possible with plug-in solutions such as video/audio playback, local storage, drag and drop functionality, and geolocation. CSS3 is the standard for the next generation of CSS which includes functionality like animations, advanced layout support, and new types of selectors. In a similar way to HTML5, CSS3 can be broken down into modules of functionality that can be made available to a browser before the entire specification is complete. HTML5/CSS3 powers RIA’s like LucidChart, SketchPad, and the .
Figure 2 - HTML5 Desktop vs. Mobile
The main Achilles heel of HTML5/CSS3 has to do with feature availability in a user’s browser. Many of the features documented by the HTML5 standard are simply not implemented yet in most desktop browsers. Where they are implemented, they are not yet implemented consistently. Truthfully, for a feature to be consistently implemented Apple, Google, Microsoft, and Mozilla all have to agree. This has led to many arguments including a heated debate over video codecs which still has no firm resolution.
For the enterprise there are other concerns as well. While the number of skilled HTML5/CSS3 developers is growing, most developers are still unfamiliar with the platform. Some traditional testing tools aren’t yet capable of testing applications that take advantage of new HTML5 capabilities like Canvas. Finally, organizations have to deal with the slow roll out of the newer HTML5 features while the web standards process and vendor browser implementations run their course.
While each enterprise and each project has its own needs, it is important for any enterprise to understand the implications of selecting an RIA platform. Understanding the needs of the project and the available platform options is absolutely essential especially with all of the recent misinformation.
After examining the strengths and weaknesses of each platform as well as the needs of the enterprise, one solution seems to rise above the others. Let’s analyze the highlights:
- Silverlight has very limited reach in the mobile space. While it may have the best tooling of any of the platforms, its questionable future makes it a risk for the enterprise, especially since the life of an enterprise application is much longer than other applications.
- Ajax applications produce a plethora of problems when it comes to cross-browser compatibility and testing.
- HTML5 will certainly become a huge fixture in the future. At this point, it can’t be a serious contender for a desktop browser application due to the inconsistent browser implementations. If the desktop browsers catch up with the mobile browsers, it will be hard for any platform to compete against HTML5.
- The Flash Platform becomes the best choice for the enterprise due to its reach across both the desktop and mobile space. In addition, there are a wide array of services, servers, and libraries that integrate well with most existing enterprise architectures.
 The Netflix iOS application doesn’t use HTML5 video support. Instead, they use their own custom playback/DRM solution.
 This data was retrieved from SiteCatalyst Net Averages which is now owned by Adobe.