Microsoft recently announced the beta of Silverlight, their obvious stab at taking market-share from the Adobe Flash Platform. As a die hard Flash developer, I was very interested to see just what Silverlight could do, so I decided to download the beta and try out some of the examples on their Gallery page. Below is a brief run-down of my thoughts on each one.
Tattoo Studio
This is basically a simple doodle program. You can switch colors, and, umm doodle. Flash developers got bored of this kind of thing right after MX was released 5 years ago
Tile Text
You can tile text. Really. that’s it? This was common place for Flash before the turn of the millennium. However, is fun to write nasty things about Silverlight with it.
Grand Piano
A piano with 7 (or so) keys, each plays a different note. Again, an application that has been done and redone in Flash for years. What struck me here though, was the lack of animation. Each key press is basically two frames. For a demo that is supposed to highlight that capabilities of this new “animation” platform, it’s pretty of sloppy.
Clock
An animated clock in real-time. Need I say more. See every description about every other demo above.
Sprawl
A neat little “capture as much ground as possible” game. One thing that struck me is the sound. It uses the same piano tones as Grand Piano. Was this the Silverlight team using the same resources, or is there a sound synthesizer in Silverlight? (after looking at the docs, the answer is “no”)
Page Turn
Turn the pages of a book, annotate them with a similar drawing tool as Tattoo Studio. Not a bad demo, but again, nothing we haven’t seen in Flash for the past 5 or 6 years.
Silverlight Pad
This is essentially a demo of demos, showing the XAML code used to produce the Silverlight applications. Interesting, but it brings-up a lot of questions of performance and the software development process for Silverlight applications. Professional Flash programmers routinely use the full object oriented features of Actionscript to create maintainable, and reusable code. Will XAML + Javascript development give us the same benefits?
Video
Playing video is supposed to be Silverlight’s “killer app”. Each video took over 2 minutes to start playing after I initially tried to load them. Does Silverlight use an efficient file-streaming methodology like Flash video? If it does, I can’t see it.
Development
As well as the limited demos on the site, Microsoft has a tool named Expression Blend 2 for designers to help build Silverlight apps. Sounds like the Flash IDE right? Wrong. You also need a version of Visual Studio, and need to download and install the .Net Framework 3.0. If this tool is supposed to be “cross platform”, why is .Net Framework 3.0 necessary? From what I’ve heard, 3.0 adds the Microsoft Workflow Foundation to .NET. What does that have to do with Silverlight?
The interface for Expression Blend is a mix of Flash 8 and Visual Studio. Starting a project is very easy, but after that it all gets pretty muddled. If you thought Flash was non-intuitive when you started with it, then you will despise Silverlight. There are too many different types of objects all represented on the screen at once: canvas, triggers, objects, files, resources, properties etc. Timelines are supported, but with Flash AS3 moving AWAY from timelines, this seems like a feature that was added to try to appease the Flash crowd, without really having any really understanding of Flash development or where the tool is headed.
3D
The one feature that seems like it could give Adobe Flash a bit of trouble is the native support in Silverlight for 3D. Silverlight supports loading .obj 3D models, and give the designer/programmer the tools to manipulate them. While Flash does have Papervision 3D, it’s still not officially supported by Adobe. This could be Silverlight’s best feature.
Correction: Apparently the 3D Support in Microsoft Expression does not extend to Sliverlight.
Final Thoughts
Silverlight is an interesting technology with some nice features (i.e. HD video support). However, the current slate of demos available for it are honestly, a bit embarrassing for anyone who knows anything about the capabilities of Flash. As well,, it is very much a “Microsoft 1.0” product. Multiple downloads are required to get it to work, multiple tools are required to make full us of it, and its execution is a poor re-working of an already established product type. Also, there’s the problem of yet another plug-in that users have to download and install. While Flash is moving towards a ubiquitous, developer friendly, open, and extremely efficient application platform, Silverlight seems like a few steps backwards and about 5 years too late. However, there is always the 3D support. My own personal opinion is that most people will shit-can all the features of Silverlight that are slower and less efficient than what they can already do in Flash, and focus on the 3D support. Any work I do with Silverlight (if any) will be focused in that area, and only until Flash achieves full support for 3D on its own. If Adobe drags it feet however, there could be trouble… But please Adobe, add 3D support to Flash…