Flash vs Silverlight

Many times have I been asked the question, "Should I use Silverlight or Flash?".

Now, I don't want to start off some fanboy discussion or write an article that appears to be biased. I'm a web developer, and I choose the tools best to solve a problem. Having said that, before the question of "Silverlight or Flash?", you should really ask:

HTML or plugin?

  • Does your web app require a large amount of interactivity?
  • What types of media does your app use? (Images, video, sound, animation)
  • Does your media need to be protected?

Flash and Silverlight provide a great way to program rich applications with complicated interactivity. If your web application has simple interactivity, such as filling out forms or clicking buttons to make hidden things appear, you can do that easily with JavaScript. I can sense some cringes at that suggestion. Yes, HTML, CSS and JavaScript are prone to have cross-browser cross-platform incompatibilities, but a good html person with JQuery and browsershots.org should be able to handle it. That's cheaper than paying a search engine consultant to figure out why your all-flash website doesn't get any traffic.
Plugins like Flash and Silverlight have never been regarded highly by search engines, so any time you have text in these plugins, you can pretty much assume that spiders won't read it.
Ok, let's say you have media to display. Images? Well, HTML can do that. Photo galleries? Well, now we're getting into a gray area... HTML and JavaScript can do image galleries, but images aren't indexed well by spiders anyway, so this might be a good situation for flash. I would recommend however, to only have the gallery part be flash/silverlight, and have the rest of the page be plain HTML. Even if this sacrifices "coolness", it will make your site searchable and therefore profitable. For video, sound, and animation, there is no argument about it, you will need a plugin for this if you want it on the web.

Do you hate Flash? Have your Flash projects failed in a heap of burning wreckage?
Flash gets a bad rap for a few legitimate reasons. It's used heavily in advertisements, it's used in many situations it shouldn't be, and designers try to play the role of developers.
Flash ads - Yeah, they're annoying, all ads are. Download a hosts file that blocks them. Download this ad-block hosts file, then place the contents in your c:\windows\system32\drivers\etc\hosts file. Now stop complaining.
Using flash incorrectly - Yes. Flash is used in a lot of situations it shouldn't be. I'm sorry if you've been annoyed by trying to navigate a site by using some moving, dancing, 3d menu. Silverlight will also be misused plenty given some time, don't worry.
Designers != developers - Most of my business is done fixing the disasters created when companies hire a flash designer to do a developer's work. I understand the dilemma; you have a project that needs to be done in flash, but you have no developers that know flash. But your designer does? STOP! Give the flash project to your developer that doesn't know flash. Java, C#, and JavaScript are all much closer to knowing how to code a flash application than a designer that can make stunning animations and effects and simple timeline scripting.

Flash or Silverlight?

The biggest factor is and always will be ubiquity. With the exception of situations where you have a very controlled and limited audience, you will always want to choose the platform that will be the most seamless to your users.
At the time of this article, Flash is at 99% and Silverlight is at 26% penetration.
Silverlight: http://www.statowl.com/silverlight.php
Flash: http://www.adobe.com/products/player_census/flashplayer/version_penetration.html

So as it stands right now, there is no competition, end of article, Flash wins.

But what if in hypothetical-land Microsoft made Silverlight a mandatory plugin and mass adoption happened overnight? Ok, well then you'll need more reasons.
Adobe has had a monopoly on designers for 15 years. Microsoft would be foolish to try to sway people from industry standards like Photoshop and Illustrator. So having a smooth flow between designers and developers is crucial and Microsoft will never do this as well as Adobe does. Silverlight does have a couple points in its favor. It is new so the plugin doesn't have to support several back-versions. More developers like C# over ActionScript, however, I believe part of this argument is outdated. When Silverlight came out developers were excited because they hated ActionScript 2 and developing within the Flash IDE. Now there is ActionScript 3 and Flex Builder with Eclipse, which in my opinion can contend even with Visual Studio.

Everybody should read this article... I liked the paragraph: Designers != developers ... it would be cool to translate this article to spanish.

Saludos - Hails