I was surprised by the announcement that Silverlight is being ported to Intel’s Moblin Linux, which I’ve already reported both here and on The Register. It feels like a u-turn from Microsoft, which had previously stated that while it would build Silverlight for both Windows and Mac, Linux support was to be done by Novell. This is from the 2007 press release:
Microsoft will work with Novell Inc. to deliver Silverlight support for Linux, called Moonlight, and based on the project started on mono-project.com … Microsoft is committed to ensuring that organizations have the best tools and resources to begin building Silverlight-based solutions with the broadest possible reach. The decision to work with Novell to offer Silverlight support for the Linux platform is in direct response to customer feedback, and both companies are optimistic about the impact this extended partnership will have in the industry.
Now, given that Microsoft has long expressed an intention to bring Silverlight to mobile devices, and that many mobile devices run some variety of Linux, you can argue that the Moblin announcement is merely in line with that strategy. This is what Brian Goldfarb told me – that the Intel deal is in the “mobile device” category, and therefore distinct from the work with Mono.
That said, if you look at the specs for something like Dell’s Mini 10v with Moblin – 1.6Ghz Atom CPU, 160GB hard drive, 1GB RAM, 10.1" 1024×600 display – it really has more in common with a traditional laptop than with, say, a mobile phone. Further, I’m getting the impression that this will be a full Silverlight 3.0 implementation, not a cut-down version like Flash Lite, complete with the Silverlight version of the .NET Framework.
If Microsoft had announced this kind of deal in the early days of Silverlight, it would have have been encouraging for open source advocates. Even though this Silverlight for Moblin is not an open source project, it extends support for a key Microsoft technology to Linux users. Silverlight developers may well prefer that the same code will be running on Moblin as on Windows or Mac, subject to whatever has to be done to make the port work.
Unfortunately at this point the announcement is having an opposite effect, casting doubt on Microsoft’s ability to work with open source partners. The impression is that Mono was a useful means of ticking the Linux box for Silverlight’s launch – though the version which includes .NET is still not complete – but that when it really wants to support a Linux OS, Microsoft is quick to find another route.
It is stating the obvious to say that the open source community is wary of Microsoft. Everything the company does is eyed with suspicion. Microsoft’s official support for Moonlight, along with great work from people like John Lam who works on IronRuby, was beginning to soften some of that hostility. Miguel de Icaza, leader of the Mono project, has been a great bridgebuilder between Microsoft and the open source community – so much so, that Richard Stallman recently called him “basically a traitor to the free software community”. Stallman has done his cause no credit with this remark. “I think we officially hit a new low here”, says OS news.
A terrible moment then for Microsoft to snub Moonlight by doing its own thing with Intel for Silverlight on Linux. What was even more striking is that the company seemingly had no idea of the impact of its announcement, and that it might be a sensitive matter, and apparently did nothing to prepare the Mono team in advance for the obvious questions that would be asked.
What is more important – that Silverlight works smoothly on Moblin, or Microsoft’s relationship with the open source community?
It was always a big Q – why Microsoft supporting Moonlight implementation by unit-tests and not by opening source code of Silverlight and asking Novell to help make it multiplatform. What are the reasons to hide sources of Silverlight after all? Any engineering secrets? From whom? Adobe and Sun?
We all knew that porting Silverlight sources to Linux can’t be big deal since it was multiplatform from the start. And it’s always better to have same code base on different platforms with just minor differences for OS specific implementations of small parts.
Microsoft is so large inside and different teams have different rights and goals. And I don’t think that people from Silverlight team now happy about situation with Moonlight. But after all – what has changed? Silverlight still closed source. Moonlight not. Moonlight can give WPF/E for Mono.
Imagine that some day Microsoft decides to open source .NET with license giving a rights to use that code on non MS OS. Isn’t it great to have .NET open-source, to have it multiplatform? But what about Mono team in that case? All those years spent on experience only? Will they have enough courage to move from Mono to single code base of open source .NET and help making it better?
Silverlight was declared to work on different platforms from the start. So it was just a question of time when it will start working on Linux.
@Max unless Microsoft were to publish the Silverlight code under an acceptable open source license it would be no use to Mono/Moonlight. The test suite is more useful as it tests the compatibility of the open source implementation.
Tim
Isn’t it pity that there are 2 independent teams spending their valuable forces and knowledge to do exactly the same thing w/o any possible and reasonable competition after all?
.NET is one of the Windows advantages, Silverlight is not. Having Linux version of Silverlight is good for MS. May be having “not that good” version on Linux was main idea. But now it looks like having good near-mobile version became more important.
I’m trying to say that Moonlight idea of independent Silverlight implementation worse (but the only possible way available) than current port of Silverlight to Moblin. I believe there should be single code base for Silverlight and .NET. But Microsoft is not yet ready for that (even with Silverlight). And that’s a great achievement of Mono team that they are really helping MS move in that space. And previous step of moving to OSS was giving unit-tests, next one might be open sourcing Silverlight (I mean full code, not only controls, and libraries). Would you call such step relationship breaking, because it makes Moonlight development unreasonable?
In case open source license liberal enough that you can port Silverlight to Linux or make performance improvements, but doesn’t gives you rights to make such things commercial – is that enough? What is the reason for Mono? To give .NET to Linux/Mac users or to sell static compilation licenses?