Review Silverlight's future looks bright, which is just as well.
The initial release of Microsoft media player for the browser lacked many of the features Flash had offered for years. Version 1.0 was really little more than a dressed up beta and, while the current release is an improvement, it still lacks many advanced capabilities that have seen Flash set the standard.
Silverlight 3.0, released as a beta recently, promises to put Microsoft's player on a nearly level playing field with Adobe's Flash framework. Silverlight 3.0 brings a staggering amount of improvements to the table with new APIs, audio codecs and features for video such as Smooth Streaming, H264 and AAC, and hardware-based graphics acceleration.
But how easy is it to develop in Silverlight? And how much has Microsoft closed the feature gap with Adobe's Flash platform? I've been taking the Silverlight 3.0 beta for a spin.
The test track was a photo gallery I built using Microsoft's IronPython that contained 40 photos pulled off of Flickr and served up using a local Ning server. I picked this project because the basic mechanics of a slideshow such as loading images from XML and cross fading them are something I've done a plenty of times using Flash over the years, so this made comparisons relatively easy.
From the development IDE to the massive load of new APIs, Silverlight 3.0 is designed to make developers' lives easier, and that's an important part of Microsoft's strategy because many web developers remain wary of Silverlight's primary development environment - the Microsoft family of .NET languages.
Give us the tools
Using the .NET framework means Silverlight 3.0 offers more robust programming tools than Flash developers have access to. Visual Studio 2008, the primary IDE for Silverlight, blows Adobe's Flash IDE out of the water. Of course most Flash developers have long since moved to outside tools like Eclipse and there are also Eclipse plug-ins for working with Silverlight.
The biggest flaw in the Flash IDE is that it basically encourages bad code, you can bury code in a literally infinite number of places - external files, movie clips, timeline frames, frames within movie clips. It gets ugly very fast. Visual Studio 2008 integrates nicely with Subversion and other version-control systems so your code is organized in a logical way from the beginning, making it easier to update, maintain and share with other developers.
There is no frame-based animation, so it works more the way programmers are accustomed to working - with a collection of files compiled into a finished app.
The other thing you get with Silverlight is access to "real" programming languages. Sure Adobe's ActionScript is capable of creating some powerful apps, but Flash and even the Flex framework lack the sophistication and maturity you'll find in the .NET framework. Silverlight also offers a much wider range of development tools - Silverlight apps can be built with anything from C to Ruby.