Adobe Flex vs. Microsoft Silverlight

Software Engineering 173 views

Overview

Flex 3 Flex 4 Silverlight 3 & 4
Based on Flash, ActionScript Flash, ActionScript .NET CLR, DLR, WPF
Language support ActionScript ActionScript C#, F#, IronPython, IronRuby, Visual Basic or any of the 38+ .NET languages
IDE Flex Builder 3, Eclipse plug-in Flex Builder 4, Eclipse plug-in Visual Studio, Expression Blend, Eclipse plug-in
Template-able UI support No Partially (50%) Yes (100%)
Prototyping support No No Yes. SketchFlow
Java interoperability Yes Yes None built-in, 3rd-party required
HTML5 interoperability No No Yes
Homogenous end-to-end support No No Yes
Extensibility model Mosaic Mosaic Managed Extensibility Framework (MEF)

Based on / Language Support

Both Silverlight and Flex require a browser plug-in in order to run. Flex is interpreted as Flash ActionScript and ran within the Flash Player, whereas Silverlight can be compiled or interpreted within the Silverlight plug-in. Compiled C# code is up to 10 times faster than interpreted ActionScript code.

Flash was designed for animations and is animation or movie-centric. ActionScript is based on JavaScript and not seen as a good language for enterprise development, or even floating-point calculations.

Silverlight is based on the mature and stable .NET platform and is an extension of the Window Presentation Framework (WPF) which is 100% template-based. Silverlight also supports a myriad of language choices (C#, Visual Basic, Python, Ruby etc.).

IDE / Prototyping

Adobe released a watered-down version of Eclipse, Flex Builder 3 or Flash Builder 4, as the main IDE. They also provide a plug-in for Eclipse, however it is known for being unstable.

Microsoft has 13 years behind their Visual Studio IDE. It also has considerable 3rd-party add-on support. In addition, Microsoft has a designer-centric IDE, Expression Blend with built-in prototyping support called SketchFlow.

Interoperability

Adobe Flex definitely has an advantage with their Java interoperability support in BlazeDS. Java interoperability on the Microsoft side is possible via an expensive 3rd-party option.

However, Silverlight has better support for HTML5 interoperability via their Gestalt project.

Homogenous end-to-end support

Silverlight is only applicable here as you can use .NET, or other Microsoft technologies, end-to-end for your entire solution. This is compelling if you have existing .NET or Microsoft technologies.

Extensibility

Adobe offers an expensive ($700K - $1.8M) and unproven (no clients) solution for extensibility called Mosaic. Whereas extensibility is built into the .NET platform via the Managed Extensibility Framework (MEF), and is available for free.

Market saturation

Flash Player Silverlight
(All) 10.0 10.1
96.49% 57.55% 35.7% 62.66%

It is well known that the Flash Player has a high overall market penetration of 96.49%. This is in part due to the fact that it has been around since 1997, and that Flash animations became popular for websites.

Silverlight was released in 2007 and has since climbed to 60% market saturation. Microsoft’s market adoption of Silverlight has been helped partially by strategic partnerships. For example, Silverlight’s installed base saw an increase when Microsoft won the contract to provide live streaming of the 2010 Winter Olympics.

Future adoption rates - Flash

The Adobe Flash Player is said to be losing relevance and market share with the advent of newer technologies such as HTML5, CSS3 and mobile formats.

Apple’s CEO Steve Jobs has banned Flash from the iPhone and iPad. He’s publicly criticized Flash as a legacy PC technology, while promoting open standards like HTML5. Recently, the editor of LAPTOP magazine, Avram Piltch, reviewed Adobe’s Flash offering for the Android mobile platform, and had this to say: “I’m sad to admit that Steve Jobs was right.”

Due to the popularity of the iPhone and iPad, a trend has emerged where major websites have replaced their Flash content with HTML5. Sites including:

ABC, Bed Bath & Beyond, CBS, CNET TV, CNN, CNN Money, CW Network, EA, Ellen, ESPN, Essence, EXTRA, Flickr, Fox News, InStyle, LIFE, Major League Baseball, MSNBC, National Geographic, National Hockey League, Netflix, New York Times, Nike, NPR, People, Reuters, Robb Report, Rouxbe Cooking School, Scribd, Spin, Sports Illustrated, TED, The Onion, The Source, The White House, TV Guide, Tyra, Vimeo, Virgin America, Wall Street Journal, and YouTube.

Future adoption rates - Silverlight

Google Trends shows Adobe Flex trending down, Microsoft Silverlight up:

Microsoft’s Silverlight adoption rate is seen as increasing in the future.

Microsoft has recently secured Silverlight deployment on Symbian smart phones. Nokia claims there are over 20 million Symbian smart phone users. Symbian holds 46.9% of the smart phone market. In addition, Microsoft just released their next generation Windows Mobile 7 phone which uses Silverlight as it’s main development platform.

Microsoft owns the most dominate desktop OS with a 99% install base. They could simply put the Silverlight runtime in the Windows Update queue to close the market penetration gap.

Lastly, if you use Google’s Trending service, you can clearly see that Adobe Flex is on an overt downward trend, while Microsoft Silverlight continues to trend upwards.

Flex Strengths

Adobe definitely has the advantage with installed base is a concern. For version less then their new 10.0, they have huge market penetration. However, if you’re targeting Flash Player 10 it drops to 57.55%, and 10.1 is at only 35.7%.

Adobe also supports more desktop platforms than Silverlight. This is only beneficial if you know you have clients on non-standard desktops. Silverlight does support the major desktop platforms: Windows, Mac, and Linux.

Flex is also a better choice if you have existing Flash assets you need to use, or existing Java object.

Flex Weaknesses

Silverlight Strengths

Silverlight Weaknesses

Expect for Silverlight's lack of Java support, most of it’s weaknesses are negligible in a corporate or enterprise setting. Lack of Java interoperability can be compensated for via the use of web services.

Recent InfoWorld article

InfoWorld review: Microsoft Silverlight 4 vs. Adobe Flash 10.1