How does Silverlight stack up against Flash 10?
which is lighter? (CPU consumption, loading times, performance)
which has richer capabilities (APIs, libraries)
faster for developing?
what about media handling (audio/video streaming) ?
do I need special server/client software to use them?
which is lighter ? ( CPU consumption , loading times , speed of executing things etc .. )
- They are comparable. Bubblemark has a comparison that tries to benchmark them but I would take it with a grain of salt. Fact is, you can get decent performance with either. If you start staring too hard at micro-benchmarks you're gonna lose the point of using such high-level frameworks.
which has richer capabilities ( API-s , libraries etc.. )
- This will depend on what it is you are trying to do. Silverlight has the .Net libs (not sure of the exact subset) which is probably nice. But ActionScript and Flash have been around for ages and have a huge community complete with almost any library you want. I think you would be hard pressed to find something one can do that the other cannot. I like ActionScript alright but I think I'd prefer C# as a development language.
faster for developing ?
- Hate to keep saying "it depends" but that is the truth. If you know .Net and C# already you may be familiar with the Microsoft toolkit. Flash 10 can be programmed using Flash CS4 or Flex Builder (which is an IDE) so it depends if you are coming from an engineering or graphical design perspective on which you would use. I think MS would win the development tools battle but Adobe would win the integration with graphics tools battle. I don't mind Flex Builder and it hasn't let me down, but when I was developing using VS (C++) I was really pleased with the experience.
what about media handling ( audio/video streaming ) ?
- youtube is Flash. Same with almost any other mainstream Audio/Video streaming site on the web (with few exceptions). That said, some of the new Silverlight demos show incredible video capability and control.
do i need special server/client software to use them ?
- To deliver content through the browser, both require a plug-in. Flash is by far more ubiquitous at the moment. If you are going for sheer number of current installs then Flash is the best choice. Adobe also has Air which allows you to publish Flash content as a cross-platform desktop application. This does require the user has the Air runtime installed on their computer, but it would allow you to then create apps that run on Windows, OS X and Linux.
One thing I touched on which is really important is community size. The Flash community is much older and much larger. This is important because it is easier to find people who have done things similar to what you are trying to do. The number of tutorials, example code, blogs, forums, open-source 3rd party libraries, etc. makes it easy to learn ActionScript.
For me the decision comes down to a few questions for yourself:
- Do you already know C#/.Net and Microsoft development tool-chains?
- How important is the size of the current installed user base to your decision?
- Are you interested in developing cross-platform desktop style applications as well as browser plug-in content?
- Would you rather be a pioneer in a young platform or take the benefits of experience available in an older platform?
3.By most accounts I've heard, C#/XAML is a more developer-friendly environment than actionscript. It had better be - it was built years later.
4.Silverlight has adaptive bitrate video. I believe for Flash you need the Autobahn Flash extension to get that. That's just one feature though, other people undoubtedly know of others where one wins over the other.