"Microsoft today released to the web Silverlight 1.0, a cross-browser, cross-platform plug-in for delivering richer user experiences on the Web. In addition, Microsoft will work with Novell to deliver Silverlight support for Linux, called Moonlight, and based on the project started on mono-project.com."

I'm not a big fan of Microsoft. I often rail on them for being anti-competitive, manipulative, and flat-out bad for society. Even when they do good things, it's often just manipulation.

The jury is still out on .NET, and Silverlight has yet to really stand trial. They could flop. They could enslave the human race. Probably somewhere in between. But ignoring them won't make them go away, and a free software implementation would only limit Microsoft's control over the development ecosystem.

The worst thing that Microsoft can do with Silverlight is wait for it to catch on and then add exclusive functionality. I seriously doubt that Microsoft would break compatibility with older applications. In this case, developers wouldn't be able to take advantage of the new features without Microsoft's runtime and tools, but applications using the open portions of the spec would continue to run on Microsoft and non-Microsoft runtimes.

Following a third-party specification is like using BSD-licensed software. If it's open, then you are free to use it in modified or unmodified form, but it's quite possible that someone will create closed modifications. That doesn't directly impact your implementation, but it can make it less attractive in comparison.

The fact of the matter is that there isn't really a reciprocal license for software specifications. In general, there's nothing preventing anyone from using embrace-and-extend tactics at the specification level. For all we know, Apple will be the first to create undocumented extensions for Silverlight. Novell's implementation will likely include (documented) features that won't work on Windows without support from Microsoft.

It's important to consider the following hypothetical: if Microsoft does something so ridiculous with its Silverlight implementation that cross-platform compatibility becomes absolutely impossible, is Moonlight still useful within the free software ecosystem? I'd argue that even if Silverlight diverges hopelessly from Moonlight, the latter would still be a valuable development framework for the free software community.

At the end of the day, Microsoft can take their specification away from us, and they can take their development support away from us, but they can't take our code away from us. Free software is free software. Any code written for Mono or Moonlight will continue to run, and we will continue to develop and support these projects within our community.

I'll take a free software implementation of a third-party specification over any kind of proprietary blob. We may not control the specification (not that the community really controls any specification), but we control our own destiny. We don't rely on gifts from the gods.

Microsoft has come up with comparable technologies in the past. XMLHttpRequest was a Microsoft invention that gained popularity through free software projects such as Ruby on Rails. It's likely that innovation from the free software community will help shape the way developers use Silverlight. We can help protect our interest in a common specification by driving the technical agenda.

For example, it's likely that KDE4's Plasma framework will eventually include Moonlight support. This opens up all sorts of possibilities, including slick interfaces for everything from phones to entertainment centers. Moonlight is one of those technologies with the potential to bring the "Wow" and compel users to switch away from the evil empire.

Dealing with Microsoft standards isn't always pleasant, but it's usually necessary. Without DOC support in OpenOffice, Desktop Linux would be a dream instead of a revolution in slow motion. The same could be said for Samba. How many years did it take to achieve NTFS write support? The biggest barrier to Linux on the corporate desktop is Exchange support.

It's one thing to ignore Microsoft's desktop agenda and hope that users will be satisfied with the applications available for the free software platforms. But the web is a different story. Users won't tolerate a platform that can't access certain websites. Many more users can live without Photoshop than can live without Flash.

Ignoring Silverlight would be a huge mistake. At least we have open specifications and development support at the moment. We might as well get in on the ground level so that we don't have to play catch-up later if and when Silverlight achieves widespread adoption. The downside of supporting Silverlight is Microsoft runs away with the standard. The peril of not supporting Silverlight is Microsoft runs away with the web.

There is nothing good about mono

You don't have to use it, and you don't have to like it, but we have to have it in our back pocket. Otherwise we're setting ourselves up to be alienated by the evolution of the web, and there's nothing good about that.