Adobe Flex vs. Microsoft Silverlight
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% |
- Flash has been around since 1997
- Install base of 96.49% due to popularity of website animations
- Silverlight was released in 2007
- Grew to 60% install base due to strategic partnerships
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
- Flash loosing relevance / market share due to HTML5, CSS3 & mobile formats
- Flash official banned from iPhone & iPad:
- Flash support for mobile platforms is weak:
- Major websites dropped Flash for HTML5 (to support iPhone & iPad):
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.
Flash is closed and proprietary, has major technical drawbacks, and doesn’t support touch based devices.
I’m sad to admit that Steve Jobs was right.
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
- Silverlight adoption rate is increasing
- Mobile platform support is strong
- Support for Symbian (20 million smart phones)
- Used exclusively for new Windows Mobile 7 phones
- Microsoft has 99% desktop install base
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
- High install base for versions < 10.0
- Support for more desktop client platforms
- Using existing Flash assets (swc / swf files)
- Java interoperability (existing Java objects)
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
- SDK is still buggy and fluctuating
- Flash Player unstable on some platforms (Mac OS X)
- Weak mobile platform support
- Flash component life cycle causes problems for Flex
- Synchronous but delayed execution causes problems
- Floating-point math is bad
- Adobe admits problems with event model (based on problematic Watchers)
- Grids lack basic features (footers)
- Flex 4 is unfinished (50% converted to new template model)
- Flex 5 (100% complete template model) not out until 2011-12
- Flex ecosystem is small and immature
- 3rd-party support practically non-existent
- Mosaic is expensive ($700K – $1.8M) and unproven (no clients)
Silverlight Strengths
- Mature .NET platform (huge ecosystem & 3rd-party support)
- 38+ languages available, both static & dynamic (C#, F#, Python, Ruby, VB etc.)
- Strong mobile platform support (Symbian / WP7)
- 100% template based
- Productive IDEs: Visual Studio 2010, Expression Blend 4
- Prototyping support (SketchFlow)
- Windows interoperability via COM (Excel, Word etc.)
- HTML5 interoperability (Project Gestalt)
- Extensibility built-in (MEF)
Silverlight Weaknesses
- Only 60% install base
- Limited desktop client support (Windows, Mac, Linux)
- Supports slightly less video codecs than Flash
- Digital Rights Management (DRM) support slightly less than Flash
- Non-Microsoft interoperability (Java)
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.