Silverlight advantages over Flash (not another Silverlight vs Flash)
As I have been working with Silverlight over the last year, I came across many Silverlight vs Flash articles. Many of them are outdated and from last year (2007). Even entries from a couple of months ago (before Beta 1 or Beta 2) are essentially irrelevant.
I decided to write a (biased, obviously) post with some of the advantages Silverlight 2 Beta 2 currently has over Flash/Flex. Adobe Flash is much more mature of a product and has been around for over a decade now. A lot of the technology Macromedia/Adobe pioneered has simply been "copied/leveraged" by Microsoft. Even though this is the case, I am strictly going to focus on the aspects that make Silverlight 2 better than Flash.
The development IDE for Silverlight 2 is Visual Studio 2008. Bar none, Microsoft has the best development IDE on the market. Whether you are programming are a C++, C or Java programmer, you will learn to envy Visual Studio 2008. A lot of the items that I will post below can have constructive arguments. However, this is one of the few that is iron clad. There simply is NO comparison between Visual Studio 2008 and Adobe Flex Builder 3.
.NET Framework & Languages (C#, VB.NET and dynamic languages)
Silverlight 2 runs on a subset of the .NET 3.5 Framework. Therefore, it requires a the use of a .NET based language. The two flagship languages in .NET are C# and VB.NET. Flex uses ActionScript. If you are a .NET/Microsoft development department, you already have the majority of the skills necessary to start developing in Silverlight! That is a huge advantage over Adobe's counterpart. Silverlight also supports writing applications in dynamic languages such as Iron Ruby.
Intergration with Enterprise based technologies
- Perception as an RIA business framework
- Perception is everything. When I speak to other developers about Silverlight, they are generally very excited and motivated to learn the technology. Why? It essentially is very similar to Flash, which has been around for several years now. It is all about perception. For example, lets look at the iPhone when it launched last year (2007). Everyone and their mother lined up to get one, even though the phone was lacking major mobile technology that had been around for a couple years prior. Another example is VB.NET vs C#. VB.NET has always been looked as the red headed step child in .NET when compared to C#. C# has the perception of a more mature, professional and advanced language. This is where I think Silverlight has a huge perception/marketing edge. For creating business applications you will probably find it a lot more developers, architects and dev managers rallying around and more comfortable with Silverlight rather than Flex.
- Microsoft has Windows
- Like it or not, Microsoft still controls 85%+ of the desktop market. That percentage is even greater on business workstations. Even though Flash/Flex has a huge market lead now, Microsoft can simply put a monsterous dent in it by releasing Silverlight 2 RTM as a hotfix, part of a Service Pack or part of the next Windows release. Microsoft can simply distribute the Silverlight 2 RIA framework on a level no other company can. Many IT engineers will like Silverlight since it is a Microsoft based technology. It will make it a lot easier to distribute to their employees.
- Mesh right now is Microsoft's offering to sync up data between computers. It uses Silverlight as the UI. Unless you have been sleeping under a rock, you probably have heard Microsoft tried to buy Yahoo multiple times and tried to essentially buy their way into the search/advertising market. This is one area where since 1995 both Web 1.0 and Web 2.0 have both passed Microsoft by. Mesh is going to be Microsoft's big splash into Web 3.0 and the semantic web/cloud computing and allow them to compete with Google, Yahoo, FaceBook. What is great is that Silverlight is the UI for this huge "Internet 2" technology. If Mesh takes off (like a lot of people thing it will), Silverlight is going to be THE technology to know.
That's it? Notice I stayed away from topics like performance, XAML, codecs and all that. You will see many articles pointing one way and some in favor of the competing technology. I just wanted to list the main items that I think give Silverlight a clear edge over Flash/Flex. Not all of these items are current advantages. For example, items like Mesh have the potential to carry Silverlight as a first-class web technology. If you have any other key items to add, please comment below.
Update: I found this comment (from my comment section below) too funny. I wanted to post it up here. It's from James Cadd. I know it's not serious, but it just talks to the point I was trying to make about perception of Flash above: "I've been developing .NET business apps for 8 years now (since beta 1) and have found Silverlight very accessible. Keep in mind I do have WPF experience. But when I want to write some code in SL, not only do I know exactly what classes to look for, but I also bring with me the patterns I've used to develop with that specific set of classes for a long time now. The Flash people, of course, bring plenty of experience making animated images of monkeys swinging on trees ;)"