Over the past two decades, most companies have embraced the World Wide Web as a standard platform for delivering applications to consumers, partners, customers, and even internal end users. The web offers companies easier deployments, a standard browser interface that requires minimal training, and access anywhere in the world at anytime and on any device. The downside of web applications is the limitations of HTML and the ability to deliver rich content that compares to desktop applications. Enter RIA (rich internet applications) which gives web applications the richness of desktop applications with all the benefits of web. Adobe has been the leader in the space for years. Flex was first released in 2004. They have dominated the market place against various competitors, both commercial and open source. In 2007, Microsoft introduced their Silverlight product. Silverlight is the first real threat to Adobe’s Flex. The rest of this document will focus on the pros and cons of these technologies, possible outcomes, and what the impact of this RIA race will mean to vendors, companies, and consumers.
History of Flex and Silverlight
To provide a fair comparison of these two products, it is important to become familiar with the history of the Adobe Flex and Microsoft Silverlight products. Without understanding the different releases and product roadmaps, it becomes extremely challenging to perform an apples to apples comparison.
Flex version 1.0 was first released in March of 2004. Flex requires Macromedia’s Flash runtime which is a virtual machine that runs on any operating system. In 2006, Adobe released three Beta versions of Flex 2.0 before delivering the final 2.0 version in June of the same year. The new version was based on Eclipse, an open source development platform that is popular among most Java development environments. Coinciding with this release was a new release of ActionScript 3. ActionScript is the core development language of the popular Flash Player. In 2007, Adobe released three Beta versions of Flex 3.0 with the final production 3.0 release delivered on February 25, 2008. The most significant change in this release was to make the Flex SDK an open source product. Now developers were free to contribute to the SDK which was well received by the developer community. In addition to major enhancements including integration with Adobe’s Creative Suites products, Adobe also released the first version of their own runtime called Adobe Air (formerly called Apollo). The next version (4.0) is scheduled for release in 2009. We can expect a Beta release late this year. The features have not yet been announced but one can assume that they will be addressing some of the areas that Silverlight has an advantage, including better integration with .Net.
Silverlight is a web browser plug-in that marks the first Microsoft product that is truly cross platform and cross browser compatible. The first release of Silverlight was delivered in April 2007. The focus in this release was more geared towards multimedia and lacked many features that Flex 2.0 and the 3.0 Beta version had at that time. Silverlight 1.0 depends on XAML as the underlying development language. XAML is an extendable XML language that was created by Microsoft and used extensively with the Windows .Net 3.0 framework. The next version of Silverlight, version 2.0 is targeted for late summer/early fall of 2008. The first Beta version was released in March of this year. The big news for 2.0 is the integration with Visual Studio. Now developers can use development languages that they are familiar with like C# and Visual Basic. Another much needed feature is the addition of robust debugging functionality and full set of controls for developers.
It is important to understand the major feature sets of each release. There is heavy debate on which product is best. Many Adobe fans compare Flex 3.0 to Silverlight 1.0. There is no comparison. Silverlight 1.0 was focused on getting a product out in the market place while the development team focused on creating a more robust version (now named 2.0). The Microsoft supporters, however, talk about the features in 2.0 that do not exist yet. This is not a fair comparison either since Flex also has a very promising feature set in their future release. For the remainder of this document, I will focus on Flex 3.0 versus Silverlight 2.0.
Strengths and weaknesses of Flex
Adobe Flex has a huge advantage over Microsoft Silverlight in product maturity, developer community following, and production deployments. The biggest advantage, however, is that the Flash runtime is installed on well over 90% of all PCs and laptops across the world (see Figure 1).
The Flash runtime also works on a variety of platforms (Windows, Mac, Linux, Solaris, HP-UX, Pocket PC, OS/2, and several others). Flash is viewable in over 85% of all browsers. Since Flex runs on the Flash Player, it is truly a cross platform, cross browser product with world wide acceptance. There is also a strong developer community and the Flex products are mature since they have been through three major release cycles. Another advantage that Flex has is that many major vendors are using Flex to deliver rich content. Microstrategy leverages Flex to deliver robust, drillable result sets and even Flash based emails to end users. Google (Google Maps), Yahoo (Messenger), IBM, SAP, E-Trade, and Business Objects are just a few of the major vendors and service providers who rely on Flex to deliver rich user experiences to their customers.
Another big benefit of Flex is that the SDK is now open source. This creates several benefits. First, testing of Flex now has thousands more eyes that can find bugs and submit them back into the community. Going open source also allows the Flex community to help drive the products direction and feature sets. Making Flex open source is also a good way to combat Microsoft, who is the nemesis of most open source advocates.
One of the biggest complaints I have heard about Flex is the learning curve required for developers. Flex uses ActionScript 3 which is a proprietary language that is required for running on the Flash Player. This is yet another language that developers must learn and is not as intuitive as Java and C#. This can lead to high costs for hiring companies and must be considered when calculating the total cost of ownership.
Strengths and weaknesses of Silverlight
Microsoft is putting together a great product to compete with Flex. In my opinion, they are still a couple of years away from matching Flex in features and community strength. However, Microsoft’s marketing capabilities coupled with their ability to target developers can help Microsoft make major gains in market share in the near future. Silverlight 2.0 allows developers to code in C# and VB which greatly reduces the learning curve. This can be a major selling point to companies that are planning to invest in RIA technologies in the future. Many companies already rely heavily on Microsoft technologies and may see Silverlight as a natural extension to their existing development stack. Microsoft also has an incredible amount of cash available to them to steer this product in whatever direction they see fit. They have already partnered with Major League Baseball and the Olympics which has created a tremendous amount of positive marketing and brand recognition.
The weaknesses of Silverlight are plenty, but when put into perspective of how long they have been in the RIA space (first release in April 2007) they have made tremendous strides in this area. First of all, Microsoft is the new kid on the block and does not have the track record of stability, performance, and maturity of the well established Flex product line. The biggest challenge Microsoft faces is trying to get the Silverlight plug-in installed on at least 80% of the PCs and laptops in the market place. If you look at Figure 1 above, you will see that the top Microsoft product installed on PCs is Windows Media Player which is slightly over 80%. This product has been out for several years so it would be unrealistic to expect the Silverlight plug-in to reach critical mass any time soon.
Silverlight currently only runs on Windows and the Mac, although an open source project called Moonlight is underway to allow it to run on Linux. Back in May of this year, Roger Magoulas from O’Reilly shared this chart (Figure 2).
This chart shows that book sales of Flash are selling 6-7 times higher then Silverlight. In March of this year, Eric Lai of Computerworld wrote an article comparing job postings for Flash versus Silverlight on the major job boards. His study showed that Flash skills were in demand about 41 times higher than Silverlight. Both the study on books and jobs are not extremely scientific by any means, but what they do show is that Silverlight has a long way to go to become mainstream.
Another problem Microsoft is facing is consumer trust. Many consumers have heard all of Microsoft’s promises of cross platform capabilities before only to see them not deliver on their promise. Microsoft’s cash cow for years has been their operating system. Many consumers simply can’t trust any message from Microsoft which goes against their core strategy of tying customers to their platform. Security is another issue. Microsoft does not have the greatest reputation for secure software. How many corporations are willing to roll out another Microsoft product to all of their desktops? Some may argue that Flash is no more secure, but it is already on almost every machine out there.
There are four possible outcomes that I see. The first is that Flex will continue to dominate the market place due to the maturity of their existing products, the widespread use and acceptance of Flash, and the large investments made by major software vendors in Flex technology. Microsoft will steal some market share but in the end it will be another failed attempt to conquer the web. I feel that this is the most likely scenario. Microsoft is already losing market share in the browser war and the operating system war, although they still have a tremendous lead over their competitors. Google is becoming a dominant force on the web and open source technologies are dominating the Web 2.0 world. In every aspect of computing, Microsoft is dealing with stronger competition then they have ever seen before. RIA will be even more challenging because they are not the leader in this space.
The second most likely option that I see is that Silverlight matches Flex’s market share. The big advantage that Microsoft has is the development environment and the fact that Flex currently does not integrate with .Net backends (although they are working on it). Microsoft already has a huge developer community and many of these people can easily be persuaded to adopt Silverlight as their RIA of choice. For companies that produce consumer facing content or control the end user client machines, the Silverlight plug-in issue is not that big of a deal. Many consumers are willing to download Silverlight plug-in just as well as they will download Flash, QuickTime, and others. It is the companies that deliver applications to other enterprises that will have the challenge. As a chief architect for a medium size company, one of our criteria for selecting vendor tools is that the tool is zero-footprint or requires no installation of software on client PCs. Many other IT shops will have the same constraint because of the B2B nature of their applications. If you have no control over the client’s desktop, forcing clients to push software out on their network can be a huge show stopper.
A third possible outcome is Silverlight will fail to gain any significant market share. I find this highly unlikely. Microsoft has a ton of money and smart people behind this product. Their product vision appears to be very solid on the surface and their initial product offering is impressive for the short amount of time that they have been in the RIA space. They should easily capitalize on the numerous loyal Microsoft shops that are already in place today and I expect them to strike several more big partnerships similar to the MLB deal. I think that over the next 2-3 years Silverlight will capture about 20-30% of the market share but no more.
A fourth possible outcome is that more competition will flood the market and other products will also compete heavily for market share. JavaFx and open source project Open Laszlo are already competing, but I believe this will be a two horse race between Flex and Silverlight.
What is the impact?
This fierce competition means different things to different constituents. First let’s look at the impact to the vendors. Software vendors must keep a close eye on this RIA race. Those supporting Flex today need to make a decision whether or not they want to add support for Silverlight as well. Supporting both obviously increases the cost of developing and supporting their products. Since Flash is everywhere, they need to consider how strategic it will be to support Silverlight. Some vendors are already making the jump but others will wait and see how widely accepted Silverlight is before they assign resources to making their products support Silverlight.
Non-software companies also have a big decision to make. For companies already using Flex, there must be some compelling reasons to switch. For those evaluating RIA for the first time, they have a tough decision to make. Do they play it safe and go with the proven product in Flex, or do they buy into the marketing hype and go with the promises of Silverlight. Silverlight does have a compelling TCO by enabling developers to leverage Visual Studio as opposed to having to learn ActionScript 3.
The consumer is the least impacted. For consumers it is simply a matter of downloading the plug-in or not. The people that won’t download the plug-in are typically anti Microsoft anyway. So Microsoft will continue to target popular providers of rich content for partnerships to get more installs of the Silverlight plug-in throughout the world.
I expect Silverlight to gain market share over the next two to three years but still see Flex prevailing as the industry leader in the long run. The best news is that the competition will force both products to be more innovative. Both products will aggressively address their weaknesses and combat any new features that their competitor offers. This is great news for vendors, companies, and consumers. We should expect to see huge advancements of features and functionality from both of these products over the next few years. We should also expect to see improvements in speed, security, ease of use as both Flex and Silverlight battle for the RIA throne.