Monday, 25 January 2010

Flash vs. Silverlight

Well I guess I have to be honest. I have been using Flash since the first release and have watched the product mature. I have been using Silverlight for about a year now, with my use picking up in the past few months.

How do they compare, sadly for Microsoft they don't. Silverlight, even using Expressions, requires a great deal of coding skills to get anything to work, and very quickly even a fairly simple animation or interface becomes a confused mass of XAML. The clean interface with Flash allows developers to manage vast amounts more complexity.

Just to stage a single repeating animation in Silverlight is a mind dulling piece of complexity. You keep asking yourself why they did it this way? Going from Flash, where you get an easy story board tool the drives the site and the ability to make scenes, you will find Expression confusing.

Probably a key indicator is how I learned. I learned Flash mostly by just playing around with it. Sure I got some books but really 90% of what I learned about Flash was because the interface was so obvious. And it was fun to play with and you could get results easy. And this was back in 1999 when it was not obvious what the tool was trying to do.

Silverlight Expressions on the other hand requires I keep the manual at my side constantly. This is with a full knowledge of what the final output will be.

Perhaps the worst part for me so far has been getting the animations to actually work. In Flash animations just start if you want them too, its like getting pregant if your Roman Catholic. So far in Expressions I have had to make changes to the XAML code setting a storyboard start object. This is not only confusing it then breaks the Expressions interface and makes it impossible for me to add to the existing storyboard without making the changes by hand to the XAML code. There may be an easier way to do this but I have not read that far in the manual.

Compound this with the fact that everyone has the flash plugin installed, Flash can run against Java and PHP back-ends, and Flash can be used by designers as well as programmers and Silverlight can only be used by developers; well lets say if you have existing Flash projects going keep them Flash.

I would imagine that at present SilverLight should be limited to the following:

1. Full Microsoft implementations
2. Simple user interfaces
3. Intranets and other controlled platforms.

All other situations should stick with Flash.


  1. Your comparision is flawed becasue because Silverlight and Flash aren't even the same class of product!

    Silverlight is essentially the web platform implementation of the .Net Windows Presentation Foundation (WPF). In otherwords, its what programmers use to build Windows Applications such as Microsoft Office. Silverlight is simply a sub-set of with WPF to run on the web. If your building simple website anmiations and navigation bars, you're probably using the wrong product (Flash is better suited for this). If you wanted to build a 3D interactive interface, Silverlight is what you'd want to use.

  2. Forgot to mention, as a Sharepoint consultant check out Sharepoint 2010...the built in office tools are all done in Silverlight :)

  3. I agree with Bob. The stuff from msft is mind numbing. One cannot even design a fine rotator with silverlight, i.e., encoder 4. Same stuff, different day. Flash is okay, but neither have a really groovy visual interface to work as a designer. Cheers, M2

  4. I believe MS has brought a new front for web development, you see, we can now customize many controls to a greater depth, we must also see that Silverlight is a new PRODUCT, but it has come a long way very quickly, in this sense comparing it with what we say animation oriented flash is wrong topic to choose. Flash is for animation and some games only, but Silverlight is development. The scenarios are totally different.

  5. A short article and some evidence on the direction of dynamic web applications.