Moonlight – what’s the big deal?


Hardly a day goes by that I don’t see an article on Linux Today about Moonlight and what a horrible person Miguel de Icaza is. So I thought I’d go ahead and do some exploration of what’s going on with Moonlight and Silverlight. First of all, what’s Silverlight? Check out the Silverlight article on Wikipedia. Basically, Silverlight is Microsoft’s answer to Adobe’s Flash. MS is pretty peeved they haven’t been able to get people off of PDF and onto their own format. They waited way too long while the rest of us realized that PDF is great if you want to make sure that the document you create is displayed the same way on everyone’s computer regardless of the fonts they have or which version of Office they have installed. (Or if they even have office installed)

Flash has been around since the dial-up days when most people would get mixed feelings when they came upon a flash website. We knew it would take orders of magnitude longer to load than an HTML website, but it would also look really cool. But Microsoft is once again playing catchup. This time, however, they are using their huge bank accounts to make it look like a really good idea to use Silverlight. Many of the Olympics websites were available in Silverlight. Not only does this get Silverlight into the vernacular during a huge event, but it also gets it installed onto tons of people’s computers. These people might have otherwise skipped websites that required them to install yet another plugin.

Having Silverlight used on such a massive event like the Olympics also helps MS help to convince people who switched to Macs that they are on the wrong platform. After all, all they have to do is release a new version of Silverlight and not release it to the Macs on the same day. Bam, people start jonesing for Windows again.

This brings us to Moonlight, Novell, and Miguel de Icaza. Miguel works at Novell. Novell signed the pact with Microsoft that caused them to become radioactive to a certain portion of the free software community. Not only did it seem like an admission of guilt from Novell, but it also creates two classes of Linux users. Novell users, who are protected from MS lawsuits and everyone else. (Not that I believe for a second that MS has a leg to stand on with those lawsuits) So the first sin Miguel has committed (in the public eye) is to be working at Novell.

Second, he helped to create Mono. Mono is an open source implementation of Microsoft’s .net framework and the main C# interpreter in Linux. There are quite a few reasons why people don’t like this. C# is an example of Microsoft’s embrace, extend, extinguish strategy. It’s basically a bootlegged version of Java because they couldn’t get anyone to use their jacked up version of Java. Why they couldn’t just play nice with Sun is beyond me. They have such a need to control. Reminds me of Apple and the iPhone. So C# is a Microsoft creation. However, it is an ECMA standard (and maybe an ISO standard) so C# isn’t patent-encumbered. .Net, on the other hand, is a MS technology which is full of patents. People fear that MS could one day sue Linux distributions for including Mono because it infringes on their patents. Thus, there are some that have taken to uninstalling all traces of Mono from their distributions. Is this a rational fear? I don’t know. I’ve read stuff that says it is and stuff that says it isn’t. I really like Tomboy and Beagle.

So now Miguel and Novell have created Moonlight – an open source version of Silverlight. This is what has lots and lots of people mad and talking about it. Microsoft has been really, really (uncharacteristically) nice when it comes to Moonlight. They have been providing the Novell team with reference specifications, test suites to ensure compatibility, and binary codecs. Previous MS technologies which have been reverse engineered like CIFS and Pre-2007 Office formats have have no help from MS. So should people be worried?

I guess it all comes down to intention. Why is Microsoft being so nice? How can it backfire? Miguel has been making a very reasonable argument recently. He has been saying that we don’t want Linux users to get left behind again. It took us a long time to get proper Flash support and because of that we couldn’t properly experience some of the web. So why not work together with MS to ensure we can view the inevitable websites created with Silverlight. Seems perfectly reasonable. After all, if Joe Blow decides to make his website with Silverlight, we shouldn’t necessarily boycott his website. Perhaps it’s all he knows how to do. Now lets look at the worst case scenario. Microsoft helps Linux and Mac out by providing Silverlight. “Look,” they say to web developers, “this will work on everyone’s computer and you can do all these cool things.” More and more web developers use it where they would use Flash. Eventually you can’t get on the web without using Silverlight. Then they decide to suddenly stop helping Linux and Mac. Now what? I doubt they would sue us. That’s really the least of our problems. It’s that once again someone helped MS get to the top when they were having problems and then when they achieved dominance, they left everyone else behind.

Have they ever done this before? Sure – providing Internet Explorer for Macintosh then suddenly abandoning it once they had soundly defeated Netscape.

So, what’s the final verdict? What should we do? Generally speaking, I happen to be a computing realist. Although I rip all of my CDs to OGG Vorbis, I have MP3 decoders on my Linux computers because the Amazon format is MP3. I have videos in mpeg, avi and other non-OGG theora formats. I’m able to view the non-OGG video formats on more computers and they encode much more quickly. I use Adobe’s Flash instead of Gnu Gnash because I want my web pages to work correctly. Finally, I use nVidia’s Linux drivers because I want to have the full functionality of my graphics card whether it’s for something frivolous like Compiz or some 3D computer game. And, I do not have any problems with using Mono on my computer. Although I’m not a huge fan of MS, I don’t see how Mono could hurt me. C# is usable by anyone and if Microsoft decides to stop cooperating with .Net, there’s nothing that says we have to continue compatibility. We can just continue with our own version which is optimized for Linux.

With Moonlight, I am a bit more hesitant. Microsoft has a horrible track record of stabbing people in the back. I don’t want to help them once again achieve hegemony on the web and muck about with the standards again. I want sites to be viewable to everyone whether or not they choose to buy a Windows computer. If they choose to exercise their right to use Mac, Linux, BeOS, AmigaOS, Haiku, or BSD, they should also have the right to access the information on the Internet. I think for now I will keep Moonlight off of my Linux computers and even Silverlight off of my Windows computers. Hopefully, I will never need it for some website I love and, therefore, will never install it.


10 responses to “Moonlight – what’s the big deal?”

  1. Hello,

    The creation of C# and .NET obeys to a very simple principle: developers are more effective writing code with a managed language than with an unmanaged language.

    Developers back in the late 1990s were mostly using unmanaged languages like C and C++ both at Microsoft and the rest of the world.

    When Java came out it improved programmer productivity in various areas and Microsoft like other companies started adopting it.

    And here two visions of the world collided: Sun wanted the same code everywhere to ensure that code written for this new technology would run everywhere. One would assume to bring the much needed applications to SunOS/Solaris.

    But Sun was not moving fast enough: Java was a good language, but it could use a number of improvements, and when Microsoft went and added those improvements Sun rejected them .

    The most notorious example rejected were J/Invoke which was essentially a better and easier JNI (one that got reimplemented later, but with a significantly slower implementation) and delegates which has made life miserable for Java developers for ages. Only now people are starting to address the problem in a serious way, but they are trying to address it by all means possible without the mention of the word ‘delegate’.

    The argument against delegates was a ridiculous one, you can still find it online.

    In any case, Microsoft changed Java and Sun was not happy about it. They went to court, and Microsoft was prohibited from shipping a modified Java that they needed.

    And if you believe in open source, you believe that one-size-fits-all does not really exist, and that the value of open source is that you can adjust the software, expand, modify and improve in any direction you see fit.

    They could not do that with Java, because of a court order, so they had to start their own implementation from scratch.

    They wanted to keep the benefits of writing managed code, but with the features that they were now prohibited from adding to Java.

    At the time Sun was arrogant, not only towards Microsoft, but towards anyone that requested features from Java. What nobody counted on was that Microsoft had the cash to build a similar system, that they would put it through ECMA/ISO (unlike Sun that withdrew Java from ECMA/ISO, precisely because they would lose control over its future) and that they would actually deliver it.

    In the process, they looked at the pluses of Java, and the minuses and tried to resolve the problems on it, and come up with a better system.

    If Sun had not tried to exercise this absolute control over the future of Java and their veto power, there would be no .NET.

    As for the point you raise about what would happen if Microsoft did not continue to support Moonlight or the Mac.

    Moonlight is open source, and even if Microsoft is helping us today, but not helping us tomorrow, Moonlight would continue to be free and people could continue to develop it. Non-collaboration has never stopped open source completely, even in the most difficult scenarios like proprietary drivers for specific pieces of software.

    But Microsoft in 2008 is a very different Microsoft than the Microsoft that freaked out over the “Linux will destroy Windows” press of the early 2000’s that sent management into panic mode.

    The new Microsoft not only has evolved, but the developers, managers and leaders are now integrating into the larger ecosystem instead of fighting it.

    They are releasing code under open source licenses, they are participating with the community, and they are even allowing developers to send them patches for the first time in their history. An important achievement with a company that is such a juicy lawsuit target that it has moved with caution.

    And I do not subscribe to the black and white polarization of the world, the mentality of “us vs them”. It has never served the humanity for thousands of years, and there is nothing new that would make us believe that things will be different with open source and proprietary companies.

    Miguel

  2. Microsoft continues to be the greatest threat to Linux and to FOSS.

    A few recent replies that are related:

    http://boycottnovell.com/2008/10/11/mono-2-beyond-the-hype/#comment-27135
    > The “Technical Merits” Red Herring
    > Novell’s “Interop” Fantasy
    > Gifting Linux to Microsoft While Saving Microsoft Lots of Money

    http://boycottnovell.com/2008/10/12/microsoft-novell-hijack-openoffice/#comment-27638

    http://boycottnovell.com/2008/10/12/microsoft-novell-hijack-openoffice/#comment-27638
    > Microsoft is very powerful and leveraged and seriously against losing any of that control. Linux is a huge threat to them. Novell is helping Microsoft tame FOSS and Linux. Microsoft has always accepted competing technologies and companies it has not been able to absorb or entirely eliminate, but in a way where these are marginalized. If Microsoft did not have so much domination, aggression, and a past history of success, and if Novell had not aligned themselves so closely to Microsoft, Novell would not be vilified nearly as much as they are….

    >> But Microsoft in 2008 is a very different Microsoft than the Microsoft that freaked out over the “Linux will destroy Windows” press of the early 2000’s that sent management into panic mode.

    Miguel, you have been praising Microsoft and their technology for many years allthewhile Microsoft has clearly been attacking Linux/FOSS.

    >> The new Microsoft not only has evolved, but the developers, managers and leaders are now integrating into the larger ecosystem instead of fighting it.

    Well, I must say I have not trusted your judgment (from what I have seen quoted about you since I haven’t actually met you or had any conversation with you) on Microsoft all this time.

    Microsoft’s approach can be called embrace, extend, and extinguish. They always adopt it when they fail to snuff a competitor or competing technology.

    You spoke of Sun’s arrogance earlier. Well, why aren’t you criticizing Microsoft for their many attacks and legal and ethical lapses? The courts ruled in favor of Sun not Microsoft.

    How in the world could you have pushed for OOXML instead of for ODF+changes to improve it?

    >> They are releasing code under open source licenses, they are participating with the community, and they are even allowing developers to send them patches for the first time in their history. An important achievement with a company that is such a juicy lawsuit target that it has moved with caution.

    Are you refering to the “help us but don’t help yourself” Shared Source or to the codeplex license clauses that prohibit the “open source” from being used outside Windows?

    BTW, Microsoft accepts your free contributions. Youd don’t have to point that out. They love getting donations from developers. The barrier to this happening more frequently has been that all their junk is closed source so it becomes a little hard to contribute to their monopoly strangleholds. We all really want to contribute to their monopoly strangleholds.

    >> And I do not subscribe to the black and white polarization of the world, the mentality of “us vs them”. It has never served the humanity for thousands of years, and there is nothing new that would make us believe that things will be different with open source and proprietary companies.

    The problem isn’t with “Microsoft”. It’s with Microsoft’s current and past position and actions in the market place. Not everything they do has to be “evil”, but darn, so much of it is.

    Sometimes I like to slice my wrist a bit for fun, but almost always I prefer to avoid the pain and risks involved.

    Here is some gray:
    http://boycottnovell.com/2008/10/12/microsoft-novell-hijack-openoffice/#comment-27653

    Finally, I apologize somewhat for making this post a bit personal. I am no one, but you are widely known so it is easy for me to invoke some history. Of course, I think you probably make and have a lot more money than myself. That’s why I don’t feel too guilty.

  3. First, I want to apologize to Miguel. There is no reason to dive into the past to get personal. Also, we should look at where Microsoft is today much more than where they were yesterday. How much we each earn is also irrelevant.

    Microsoft today still has a stranglehold and continues to try to usurp existing protocols to push their own. They also are still being extremely closed source to preserve their monopoly levers.

    >> Although I’m not a huge fan of MS, I don’t see how Mono could hurt me. C# is usable by anyone and if Microsoft decides to stop cooperating with .Net, there’s nothing that says we have to continue compatibility. We can just continue with our own version which is optimized for Linux.

    Eric, the blog posting was fairly balanced, but let me take some issue with this portion quoted.

    I don’t disagree completely, but my view is that with alternatives that are fairly similar or/and can be improved it should not be a major sacrifice to use those or help develop them further. Today is not the time where I feel comfortable embracing together with Microsoft.

    dotnet mindshare (user and dev) and written code are leverage. It creates demand for all dotnet and facilitates Microsoft leveraging those apps and mindshare much easier. It strengthens Microsoft along with their technology while weakening all the competitors and competing technologies.

    This repeat link from the earlier post explains a little more. The section titled “Gifting Linux to Microsoft While Saving Microsoft Lots of Money” is the most relevant part and extends all the way past the a, b, c, d, and e points. http://boycottnovell.com/2008/10/11/mono-2-beyond-the-hype/#comment-27135

    The community has more than enough talent and resource and code assets to take on Microsoft (and we are growing), to lead and in a way ignore Microsoft, to be good enough and cost-effective enough to help customers realize that interop with closed source MSware is impractical/impossible and not worth the trouble and then start looking to MSware as legacy. I have objected from day one to this idea that Microsoft is godlike and we need to follow them. I tend to think those advocating that position are a part (consciously or not) of Microsoft’s embrace and extent. If nothing else, they are helping to sell Microsoft and their brand. Not good. ..not as long as Microsoft has their various strangleholds and huge ambitions.. and dirty tactics….

    Would Miguel be up for helping to craft the next “Java” that surpasses and breaks away from Sun’s Java and dotnet/C#? Surely, the next iteration of the theme could surpass all of those that came before it (though they may try and copy). There are various FOSS language tools and virtual machines out there that can serve as a springboard.

  4. Of course, there’s no way of knowing for sure whether that really was Miguel de Icaza with the first comment here, but assuming it was – that’s pretty neat that my blog actually got a response from him. Thanks Miguel for taking time out to provide your response.

    From what I’ve read since following the FOSS movement, I have to agree with Miguel’s comments on Sun/Java. The world could have been a different place had Sun open sourced Java back in the 1990s instead of now in the 2007-2008 time frame. They could have benefited from the community contributing the patches that implemented the features they wanted most. I think this is what has helped Python and Perl.

    The people who tend to head these large computer companies tend to have huge egos and can’t stand to have people mess with their babies. Examples include Steve Jobs, Bill Gates and whoever was heading Sun at the time. Oh well, that was then and this is now.

    Certainly Microsoft have been making numerous overtures to the open source community. I think they have a lot further to go. Jose_X makes some very good points in this respect. A lot of the licenses are closer to BSD-style licenses and we’ve been burned by this before – Cedega not contributing back to Wine, for example. Also, trust takes time to build. When MS has been spending the past 10+ years sabotaging the computing world, it’s hard to suddenly take them at their word. If they continue to do the right thing, they will earn trust and the MS animosity will go away.

    No matter what side of the coin you’re on, you have to give Miguel credit for taking a lot of nasty personal attacks with stride and calmly explaining his point of view. Time will tell if he was right or being naive when it comes to Microsoft, but at least Miguel has stayed above the fray.

    Remember, with free software you have a choice. Choose not to use Moonlight and Mono if you don’t like them. Choose to use Linux distros that don’t incorporate them. If everyone goes from Ubuntu to No-Mono-Distro-2009, then the initiative will die. Free software tends to be pretty darwinian. Whichever bits everyone likes end up in every distro. Witness the diffusion of technologies from Ubuntu into others – such as Upstart. Or PuleAudio going from Fedora to the others. And, if everyone wants Mono and Moonlight, then they will be in the distros and if you don’t like it – well too bad. Linux tends to be democratic that way. Anyway, the GPL will allow you to make your own version. You can gather all the other .Net haters together on one distro.

    But let’s not have personal attacks against Miguel. And this is not just against what Jose_X said because he was very civil. It’s more of a reaction to the things I see on the net about Miguel. Some of them you’d probably never say to his face.

  5. >> The world could have been a different place had Sun open sourced Java back in the 1990s instead of now in the 2007-2008 time frame.

    To put things into perspective:

    — Java was one of the few serious attacks on Microsoft’s monopolies.
    — Sun was not threatening us with patents.
    — Sun opened up all the API.
    — Sun revealed source code *to everyone* (one needed only accept a simple license, which varied at times) for a very large part of Java from early on. At least to the extent of serving as reference implementation code for much of it.
    — Major Sun competitors also played significant roles in crafting the APIs.
    — Java FOSS implementations and extensions have always been much more evolved than those of dotnet. Python, perl, and others may have benefited from Java not being 100% open (which is fine) but certainly there have been very significant uses of Java FOSS.
    — Java has never been dominated by Sun the way Microsoft dominates dotnet. Most of the money has actually been made by others in the Java realm (or so is the impression I have gotten).
    — Sun does not have the interlocking monopolies and control over such wide markets.
    — Sun fought Microsoft in court (and won) in order to keep Java from being embraced and extended by Microsoft who illegally uses the monopoly levers to squash competitors.

    All these things have been in place for years before 2007-8 time frame (which is when they finally got around to essentially making all of Java open).

    There were issues with some of the licenses for a while. There was foot-dragging. But I don’t see how Microsoft can be said to compare [not implying you have said that, Eric]. I can show you opensolaris openoffice and lots of other open source produced largely by Sun. Sure, those are strategic and cover small portions of the market, and I don’t expect Microsoft to reciprocate..

    But that is the point. Microsoft, in their position, is untrustworthy. Their stockholders would sue them till the end of their days if they gave up the monopoly levers. Microsoft courting of FOSS is to help stave off serious damage to their lock-in and control.

    >> A lot of the licenses are closer to BSD-style licenses and we’ve been burned by this before

    I would not call their shared source license or the restrictions to use only on Windows platforms as BSD-ish.

    >> If they continue to do the right thing, they will earn trust and the MS animosity will go away.

    I don’t think they have started (beyond EmbraceExtendExtinguish efforts). Microsoft has always laid out some amount of standards (eg, the Windows 3.1 API with ECMA right before Windows 95 came out). It’s always been strategic to help them maintain their monopoly position (eg, to stave off antitrust heat.. since they can and do change the rules even before they have published the specs). They give away goods to get people to abandon competing technologies and protocols. Dumping of products and of protocols. They are great business people if you ignore their violations of the law. Their monopoly profits allows them to win wars of attrition. In the end, they keep all code that matters closed and competitors that trusted Microsoft ended up disabled. All the while they work their levers. In the end, with competition neutralized or marginalized, they raise prices, stop improving products, etc: they are only humans.

    >> No matter what side of the coin you’re on, you have to give Miguel credit for taking a lot of nasty personal attacks with stride and calmly explaining his point of view.

    I haven’t been convinced of the points I have discussed above, but I do think it could be tough to take so much abuse in some circles. “Miguel” is a public figure. He is surrounded by some that protect him, but “Miguel” will be thrown about and stepped on by others, especially when he embraced and defends the largest threat to Linux, to FOSS, to users, and to competitors.

    For short spurts, I sometimes feel a good deal of sympathy for him or those in his position. The problem is that he defends and collaborates with Microsoft, in many ways the worst thing to have happened to open source (even going back to Gates’ open letter to hobbyists decades ago).

    I apologize again for the combative/nit-pick reply to your general and mostly balanced comment. This is a touchy topic for me.

  6. Jose_X – no need to apologize, if your “nitpicking” helps my blog post as a whole to be more factually correct, then that’s a good thing. Especially since you have done it in such a respectful way.

    While I do take your points about Java above (I didn’t see that comment as I was writing mine at the time), I do think if they hadn’t dragged their feet so much on the license, they could have achieved higher dominance. How much time was wasted working on IcedTea and other replacements just because their license wasn’t good enough for rms?

    At least take heart that I read in a recent article (one of the ones that sparked me to write this post) that although there is a lot of attention to Mono gaining prominence in the Gnome project, it appears that more people are using Python than Mono if they aren’t using C/C++.

  7. hello, end user here. nice find.

    my only interest with moonlight is to be able to have streaming netflix in opensuse. i totally agree with what you said about the olympics. i refused to watch them online (even on my windows boxes) because they forced silverlight. at the time i wasn’t signed up for netflix, but now with netflix streaming….i’m hooked.

    as for netflix, i can continue to watch virtualized netflix with no problem on my laptop. after all, it is running opensuse ;o) but it would be nicer to get rid of the virtual machine and just use linux.

    so anyway, since it seems that a big thing with silverlight is streaming hd / streaming video, it would be best if they can just focus on that aspect instead of coding websites or whatever else it does. (i thought all it did was video?)

    so perhaps if they focus on getting the streaming video part right first, then if the project is abandoned it won’t matter so much.

    i imagine netflix is using silverlight for a reason. antipiracy measures? i don’t know…but of course a different solution is if netflix didn’t use silverlight.

    just some thoughts…

  8. @Miguel de Icaza

    when Microsoft went and added those improvements Sun rejected them

    I’ve never seen anyone who could be so full of platitudes for Microsoft and their criminal behaviour, whilst still pretending to be a Free Software developer, as you Miguel. It’s quite astounding.

    The reason that Sun “rejected” those “improvements”, was because they were not improvements at all, but were in fact platform-specific features designed to lock people into Windows, and as such Microsoft violated the licensing agreement for Java, and did so deliberately and continuously over an extended period of time, despite continued warnings from Sun.

    Perhaps you think locking people into Windows is a good thing, Miguel (given how enamoured you are with all things Microsoft), but I don’t, and neither did the DOJ when they prosecuted Microsoft with racketeering charges under the Sherman Act.

    But Microsoft in 2008 is a very different Microsoft

    So that wasn’t really Microsoft bribing Swedish ISO delegates to vote for OOXML, or bribing Nigerian education suppliers to wipe Mandriva from kids’ laptops then? Was that “back in the days of Windows 3.1, when Windows crashed”, or was it just over a year ago?

    Microsoft are gangsters, and you support them. What does that make you, Miguel?

    And I do not subscribe to the black and white polarization of the world

    Great, then I suppose you’ll have no objection to inviting Hans Reiser over to babysit your kids one day, since only a “black and white view” would cause you to “discriminate” against criminals. Right?

    Condemning criminals is not some irrational and unjustifiable “black and white view”, Miguel, it is completely justified.

    OTOH, your actions, in supporting and defending criminals like Microsoft, are not.