Reading through the daily Techmeme headlines, there was a story that would make any Windows’ developers’ hearts stop: “Microsoft Hosts Demo of Silverlight on Linux”
Beat. Beat. Beat. Beeeeep. Beeeeep. Beeeeep. <click>. Beeeeep. <wait>. Beeeeep. <read>. Beat. <relax>. Beat. Beat.
OK, so maybe that’s a bit of an over-exaggeration, but not by much. Microsoft demoing Silverlight on Linux? What has the world come to?! But the subtitle on the PC World article cleared things up: Microsoft France invited the Mono team to demo their own version of Silverlight that runs on Linux. Now that makes more sense.
We’ve commented on Microsoft’s atrocious, constant, and never-ending denial that there is an operating system called Linux that exists and has a real userbase which .NET Developers would like to code “cross-platform” software for time and time again, but alas, it seemed no one would listen; so you can imagine our surprise at those headlines.
Mono is the GPL’d EMCA implementation of the .NET Framework for Linux. Moonlight is the new Silverlight-compatible runtime for the *nix world. Miguel de Icaza, head developer of the Mono Project was invited to demo Moonlight over at Microsoft France during a presentation. This is a surprising twist on Microsoft’s normal “ignore the Linux world” attitude when it comes to developers, “cross-platform,” and frameworks alike.
But the whole point is, almost no one gives Mono the credit it deserves. While we’re the first to point out its shortcomings and even complete failure at being a “drop-in” replacement for the .NET Library in its current condition, its developers deserve a lot more recognition for their work. Miguel and his team are addressing a particularly “turmoiled” sector of the computer market – Windows developers coding for Linux. Microsoft pretends these people don’t exist, and the rest of the Linux world frowns down and mutters things like “use Java instead,” “forget about Microsoft and .NET,” and “Why waste your time on a closed-source framework?” (forgetting, of course, that Java has only recently become open-source itself).
The Mono Project has done a hell of a job with the limited resources it has, the constant need for developers, the sheer size of the .NET Framework, the lack of cooperation on both sides of the Windows-Linux fence, and the fact that a large portion of the .NET Framework is just managed wrappers for Windows-only code.
Sure, the Mono Project isn’t anything you would actually consider to be a “Linux version” of the .NET Framework thanks to the rather-conspicuous yet well-hidden fact that it doesn’t have a compatible UI Library (well, not yet anyway) and that, in reality, it’s a port of the CLR and C#, not of the .NET Framework itself; but nevertheless, Mono is pretty amazing.
So why can’t companies like PC World and their ilk write proper well-attributed titles like “Mono Creates, Demoes Silverlight for Linux” rather than “Microsoft Hosts Demon of Silverlight on Linux?” Why is it so hard for these people that do Microsoft’s dirty work ((seeing as Microsoft feels having a OS X and Windows implementation of anything suffices to consider it “cross platform” – whether it be Internet Explorer, .NET, MSN Messenger, or now, Silverlight)) to get the recognition the deserve? Because acknowledgement is what powers the free software world. Microsoft isn’t paying the Mono Project to create these libraries and to put these years of work into making the .NET Framework something that is truly cross-platform, it’s the fact that they’re making a difference, fulfilling a need, and getting the proper credit that does.
But on a more positive note: Moonlight really is a ”drop-in” Silverlight replacement for Linux!
Silverlight (and now, Moonlight as well) uses XAML to create the UI and make all those pretty little ponies dance around that computer screen. Silverlight and Moonlight’s jobs are to take that XAML code and render it on the screen. Unlike the .NET Framework on Windows where you use certain APIs to design the form, in Silverlight/Moonlight, everything is WPF and now, fully portable to Linux.
Well, to be fair, Moonlight isn’t ready yet. It’s really close, but not yet there. But what matters is, it does have a working C++ XAML parser, and the main UI interface/library will be truly cross-platform compatible with Windows.
Congratulations Mono Team, you really deserve it!