Microsoft® Silverlight™ is a crossbrowser, cross-platform plug-in for delivering the next generation of .NET based media experiences and rich interactive applications for the Web. Silverlight offers a flexible programming model that supports AJAX, VB, C#, Python, and Ruby, and integrates with existing Web applications. Silverlight supports fast, cost-effective delivery of high-quality video to all major browsers running on the Mac OS or Windows.

So say Microsoft themselves and as we now know, the Moonlight project is in full swing and headed up by the creator of Mono, Miguel de Icaza and funded by efforts from Novell in order to get Silverlight content running safely under linux. Microsoft have even made all their specification, API and internal systems documentation available to de Icaza's Moonlight team.

But what is Silverlight, exactly?

In the beginning, it was known as WPF/E. WPF, for Windows Presentation Foundation is actually a rather nifty piece of kit which defines UI elements via XAML and supports .NET Framework code-behind systems. WPF is, and shall remain a superset of Silverlight containing as it does everything you need to put together a rich, desktop based UI and also fully supporting 3D vector graphics programming. Not that anyone is likely to be writing WPF games for a while - we still need to figure out DirectX 10 and the XNA Framework! - but those will come eventually. The additional "E" stood for "everywhere", indicating the cross-platform nature of the subset.

Silverlight is a limited subset, as implied above. Mostly, it concentrates on UI elements with emphasis on music and video, defined again via XAML and manipulated in one of two ways. Silverlight 1.0 has now been publically released (and it's free, folks) and the XAML-defined objects are manipulated in your browser's DOM by use of inline or linked javascript. Silverlight 1.1, currently still in alpha is actually a bit of a quantum leap since the object manipulation takes place wholly in a .NET Framework CLR hosted within your browser. What does that mean? It means you can write rich, media-heavy and fully functional web distributed apps in C# with inline debugging is what it means. And that really is quite special.

But why have Microsoft decided to do this at all?

Because right now, Adobe's Flash rules the world. Everyone has Flash, youtube relies on it for delivery. And Microsoft would very much like a piece of that action even if they have to give it away for free. And because of the WMV file format, which Silverlight is designed to stream. Because it has competition and it would really be of benefit to MS if it became more ubiquitous.

But why do Microsoft care what format we have our files in?

Because of DRM, baby. If Microsoft can gain a leading position among suppliers of DRM, they are perfectly positioned to move out of the office and start claiming space - via set-top boxes, Media Center machines and Windows Home Server - in the living room with content suppliers happily giving them material to broadcast or pipe to your home.

I'm certain there are implications to this - especially for Apple! - but I am not here to make moral or political judgements. Just the facts, ma'am. These are the facts. And regardless of anything else or any motivations, Silverlight 1.1 is beginning to look like a very impressive and even exciting platform for web development. Expect to hear that name a lot.