SilverLight, Flash, and SVG
Recently Microsoft announced Silverlight, and it has created a lot of buzz. What is Silverlight? Many of you may have known Silverlight by its former code name, WPF/E.
And WPF/E was what?
In short, Silverlight is a "mini" version of WPF which will also include a mini .NET implementation (allowing C#, VB, Ruby, Python, etc), that is cross browser and cross platform. Silverlight supports Internet Explorer (duh!), Firefox, Safari. I have also seen references to Opera. And remember I said cross platform? Well normally cross platform to Microsoft means that it runs on XP, Vista, and 2003, but in this case Silverlight also runs on Mac OSX! While there is no current commitment to Linux currently, there is certainly talk of Linux support in the future as well.
Isn't this just a .NET Flash?
In many ways it is similar to Flash, and it is obvious that once Silverlight 1.1 (1.0 has no CLR support, 1.1 will) is released, Silverlight and Flash will go head to head.
Flash has a current advantage that is is released, and is on over 90% of end user's computers. However since the Silverlight install is small (1.0 about 1 MB, 1.1 about 4 MB) and it is from Microsoft, I expect that when it is released users will install it without much hesitation. In addition developers using Silverlight, Microsoft will quickly begin using Silverlight on their sites. All of these factors will allow Silverlight will reach the critical mass of end user install base very quickly.
Flash also has a current advantage of existing content. However Silverlight has a serious advantage in that it uses the same XAML that WPF does, has Visual Studio as its development environment, and allows developers to use C# (or VB.NET, or Ruby, or Python, etc). Since Silverlight supports C# and XAML, developers can share and reuse existing code.
Silverlight is backed by powerful professional software development languages and a powerful development environment. Professional developers seek and prefer professional development tools. Until recently the IDE's for Flash generally did not even approach the power of Visual Studio. The latest Flex uses Eclipse which puts it closer. However for the millions of developers already using Visual Studio, they will of course prefer a single IDE.
Isn't this just a .NET Java?
No. Java applets can run in the browser, but you need the full Java JVM installed. Java is more comparable to the full .NET framework, which can also run in the browser in a manner similar to Java applets.
Why didn't Microsoft just expand on SVG?
SVG is a great option for vector graphics. In fact, that is where it takes its name. SVG = Scalable Vector Graphics, although 1.2 draft contains audio and video support as well. Silverlight supports high definition (HD) video. Does SVG 1.2? (I don't know).
In fact even Java is doing the same. One of Java's responses to XAML is F3, and it does not use SVG either. Their answer as to why is very similar to mine above, and there are also SVG to F3 conversion tools.
I have not yet seen a feature by feature comparison, but there are things in Silverlight that are not in SVG. It has been mentioned that even CLR could be grafted on top of SVG. But let us say Microsoft did that - then they would be attacked for hijacking SVG and adding proprietary extensions and creating a "non standard" SVG viewer. But more to the point - as a developer I would not want them to make Silverlight around SVG. SVG viewers already exist, and what attracts me to Silverlight is not that it can do what SVG can, but that it uses the same format I am already using on the desktop: XAML,
Microsoft the Loser
Either way Microsoft would be in trouble. Extend SVG and they would be labeled SVG hijackers. Don't use SVG and they are in trouble for not using it. Don't think so? Look back at the days of HTML 3. Both Microsoft and Netscape added their own extensions. Not only did this create a mess, but Microsoft was commonly accused of hijacking HTML.
There is one huge difference. By the time this occurred, HTML had without a doubt arrived and in use. Adopting HTML instead of Microsoft making their own hypertext markup made perfect sense. SVG certainly has a following, but it has not even approached the success that HTML 3.0 had achieved. The situation reminds me of the OpenDoc versus OfficeOpen XML format that Microsoft Office 2007 uses. OpenDoc users content Microsoft should have used OpenDoc. But in what way does it make sense for a commercial company of Microsoft's position to adopt an existing standard that does not have wide scale industry adoption? OpenDoc users contend that it would have that widespread adoption, if only Microsoft would have adopted it. But it is not in Microsoft interest to do so. For such standards to be embraced by anyone they must achieve a reasonable level of market penetration on their own, or present some other overriding feature to attract other adopters.
It is a lose-lose situation for Microsoft. By using XAML they retain control to innovate and expand at will. Its obvious others do not like Microsoft and investing in SVG could actually cause parties who control SVG to block Microsoft proposals for political reasons.
The SVG Red Herring
SVG has its following, and certainly has some advantages over Flash. A big one being that SVG does not need to be compiled and thus is easier to generate. Silverlight has this advantage over Flash also, although Silverlight content can be compiled as well. But the dirty secret in the SVG world seems to be that there are many more people using Flash for vector graphics than SVG. I think SVG is great. It is always great to have more than one option, and I believe one option should always be an "open" standard.
It seems some SVG users are upset more that Microsoft did not adopt SVG and give it the boost they have all been waiting for. Essentially they can now blame Microsoft for SVG's existing "failure to launch", and use Silverlight as a scapegoat.
Have no doubts, Flash is Silverlight's real target, not SVG.
- Silverlight.net - The official Silverlight site.
- Mix '07 - See Silverlight demos and more from Mix '07 in Las Vegas. Many of the big Silverlight announcements were made here.
Use my contact form to contact me directly.