The Flash player has features that Silverlight lacks, including a 3D API, real-time bitmap effects, advanced text rendering, and an extended sound API. When you combine this with Adobe's high market penetration - Adobe claims 800 million devices - you might think there is little hope for Silverlight.
The tables turn as soon as you open Visual Studio 2008. The IDE is excellent, and although Silverlight itself is new, it has the feel of a mature environment. C# and Visual Basic programmers will be productive with Silverlight immediately. Runtime performance is good as well - Microsoft's long experience with .NET seems to have paid off. Silverlight also has the benefit of XAML, an XML language designed for both graphical user interface (GUI) layout and declarative programming.
Even if Silverlight's graphical capabilities are inferior to Flash, they are good enough for the majority of applications: assembling a GUI is easy and it has impressive video support. There is one weak spot. Visual Studio can preview your XAML layout, but has no visual designer. You are meant to switch to Expression Blend for this. While this works up to a point, it would help if Visual Studio also supported drag-and-drop design and property editing.
Microsoft held back some goodies for this full release. Version 2.0 can call SSL web services from a non-SSL connection, which the betas did not allow. There are new controls, including PasswordBox, ProgressBar and ComboBox. The Silverlight development tools are now supported in the free Visual Web Developer 2008 Express, and there is also an Eclipse project primarily aimed at Java integration, though it is currently Windows-only.
Silverlight ListBox controls: any control can contain almost any other
Microsoft claims support for Mac, Windows and Linux in Firefox, Safari and Windows in Internet Explorer. This needs qualification. Mac support is limited to Intel Mac, though Microsoft vice president Scott Guthrie told me that PowerPC Mac is under two per cent of active web users now. Linux support is far from ready: it currently does not support video or MP3 playback and has no announced shipping target.
Silverlight works, and while it is unlikely to win many over from Flash, it is the natural choice for .NET developers creating browser-based rich clients. There is one further caveat. Silverlight is not the open web: like Flash, it is proprietary.
I put it to Guthrie that the web lives on open standards. "We do believe the web should be open" he told me, pointing to Silverlight's cross-platform support, and that XAML is released under an open specification, but acknowledging that this is Microsoft's technology.
That said, considering that this was "very early work" just three years ago, Silverlight 2.0 is an impressive achievement. No, it will not kill Flash, but yes, it will be popular.®