Mono-mania: It's risky business

Summary: The Open Source Mono project is controversial because it is a re-implementation of Microsoft's .NET technology. It's time for Miguel De Icaza's Mono implementation -- and applications that use it -- to be moved into the "risky" category, until the patent situation is deemed truly safe to use by default in Free Software.

[The opinions expressed here are mine alone, and not those of Google, Inc. my current employer.]

There has been a lot of press recently about the Open Source "Mono" project, arguing about whether it is safe to use by the Free Software community, and even comparing it to the project I work on, Samba. Given all this controversy, I thought I might as well write down my own thoughts on the matter, and even try and change a few minds in the bargain.

Mono is controversial as it is a re-implementation of Microsoft's .NET technology, in much the same way as Samba is a re-implementation of Microsoft's Server Message Block (SMB) file sharing protocol. The genesis of each project and how they have developed over the years is somewhat different, however.

Samba was initially written by the original developers to "scratch our own itch." It was code that was specifically useful to us, and originally had no wider purpose than that. We have gotten a little more ambitious over the years, but one of our primary purposes is still to write code that's useful to us (or to me at least :-). Witness our development of a UNIX variant of the SMB protocol, which has no use for Windows clients or servers, but is a great way of networking Linux boxes together.

Miguel De Icaza [at right], the original creator of the Mono project, would argue the same for Mono. Miguel was one of the original creators of the Gnome Linux desktop code, and personally wrote some of the large Gnome desktop applications in C. I once asked Miguel (while we were stuck on a bus together traveling to some godforsaken LinuxWorld event in Boston) why he decided to create Mono, which re-implements Microsoft's C# language and the runtime environment that goes with it, "It's simple," he replied, "I'm fed up of writing memory garbage collection code for C applications. There had to be an easier way to write Linux desktop applications than that."

He does have a point. Writing complex graphical user interface (GUI) applications in C or even C++ is hard, with many opportunities for memory corruption, memory leaks or security errors. The question is, why recreate a Microsoft technology for this, when Sun's Java already existed at the time the Mono project was started, and solved many of the same problems?

Miguel and many others argue that .NET and Mono is simply better technology. It's true that .NET is a later design than Java, as it was instigated after Microsoft was unable to wrest control of Java from Sun by creating a Windows-specific version of Java (a lawsuit promptly settled that). Also, at the time Mono was started in 2001, Sun had yet to release Java under a Free Software license, forcing Free Software developers to have to re-implement the Java technology if they wanted to use it openly.

But I'm not buying that excuse. Miguel and the other Mono developers are smart enough to have made Java do what they needed, even if it would have required creating Gnome-specific wrappers for the Gnome GUI. After all, this is exactly what they're doing for C# and Mono. No, I'm guessing it was simply the old Open Source/Free Software disease of being unable or unwilling to cooperate with existing developers who are doing something similar to what you have in mind. Much easier to start your own project to do something similar; after all, that way you have complete control over it. And if you believe that by developing Mono you will get Microsoft Windows .NET developers to move their code over to Linux then you can even claim the moral high ground.

But the problem is that Mono is dangerous for Free Software. The heart of the matter is, as usual, software patents. Microsoft have patents on the technology inside .NET, and since the TomTom lawsuit, Microsoft have shown they are not averse to attacking Free Software using patent infringement claims. Microsoft have tried to allay some fears by putting the .NET specification under their Microsoft Community Promise.

Miguel hailed this as the solution to all the patent problems with Mono. But this promise is simply not good enough to base a language environment implementation upon. After all, if the rug is pulled out from under that implementation by the threat of patent infringement, you don't just lose the implementation itself, you lose all the programs that depend upon it. That's a really dangerous situation for Free Software programs to be in. The Free Software Foundation wrote a good analysis of the problems.

But my basic issue with the Microsoft Community Promise is that Miguel doesn't have to depend on it like everyone else does. Miguel's employer, Novell, has a patent agreement with Microsoft that exempts Mono users from Microsoft patent aggression, so long as you get Mono from Novell. Miguel takes pains to point this out. This is not a level playing field, or software freedom for all. This is a preferred supplier trying to pretend there is no problem. Sure there isn't a problem, for them. If it isn't good enough for Miguel, why is it good enough for other developers ?

I'd like to contrast this with the agreement that Andrew Tridgell negotiated with Microsoft for Samba over the very same issues of software patents covered in a specification. You can read an overview of the agreement.

I can't say anything better than Andrew's own words so I won't try, I'll just call attention to them here: "For me, one of the key things about free software and patents is that we are all in the same boat. It is vitally important to the continued success of the community development model that one part of the community does not enter into an agreement which gives some people patent protection while leaving other people out in the cold. That is why I was so opposed to the patent agreements recently entered into by Novell, Xandros and other companies."

This agreement is available to all willing to affiliate with the Protocol Freedom Information Foundation (PFIF) and provides implementors with a limited number of Microsoft patents that may be asserted, and clear and timely warning if new patents are added by Microsoft.

This is at the heart of why Samba is different from the Mono project, at least in terms of how we view software freedom for all, and how we dealt with patent threats in the implementation. If Miguel and the Mono folks had been so careful when negotiating with Microsoft, and just a little less excited about the cool new technology, then I think they'd have done their users a better service.

Lest I get tarred with a reputation as a hopeless Luddite, afraid of new technology just because Microsoft developed it, I do want to say that I think Mono is pretty amazing work. If Microsoft could see their way to issuing a patent promise that was acceptable to Free Software developers, I'd happily see it as a core part of any Linux (or GNU/Linux if you wish) distribution. I actually do use a Mono application to index all my personal photographs, the very capable F-Spot. I prefer it to the alternative of Google Picasa because at least F-Spot is Free Software. (and yes I've reported bugs in F-Spot by looking at the code.)

But if I had to give up F-Spot due to patent threats I could, because all the picture meta-data it indexes is stored inside the photographs themselves. So even if I lost the use of F-spot I wouldn't lose any photograph data, just the time needed to re-tag and re-sort the photos. Annoying, but not a fatal loss.

Just like installing programs to play the patented MP3 format, this is a risk some Linux users are willing to take. But this should be the user's decision, not an accident of it being a default application in a distribution. Most distributions have a way to manage patent risk, by separating out the Free Software that may have patent problems into separate downloadable repositories that are not enabled by default. People in counties with software patents and willing to take the patent risk can then enable the repository and download the patent-covered software themselves. I think it is time for the Mono implementation and applications that use it to be moved into the "risky" category, until the patent situation around it is deemed to be truly safe to use by default in Free Software.

Microsoft isn't playing games any more by merely threatening to assert patents. Real lawsuits have now occurred and the gloves are off against Free Software. Moving Mono and its applications to the "restricted" repositories is now just plain common sense.

Topics: Software Development, Legal, Microsoft, Open Source

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

73 comments
Log in or register to join the discussion
  • M$ must give away its patents

    If M$ want to have its technolgies adopted by FOSS it must give up all its patents and GPLed the code.
    Until then we must stay away from any code that resembles M$ technologies and support Stallman and FSF in their fight against software tirany.
    Linux Geek
    • You misspelled tyranny

      I think that Stallman has done wonderful work. I use open source almost exclusively. I even run an open source project (https://launchpad.net/time-drive). But on this topic, he is wrong (and by extension Mr. Allison).

      If Linux (and the community in general) stayed away from anything that resembles Microsoft technology, Linux would be unusable. There would be no .doc filters in OpenOffice, no Linux servers running C#, and no way for businesses to move their custom .Net applications off of Windows. Nor do I think that Linux would be safe from patent infringement claims. We lose interoperatbility and gain ... absolutely nothing.

      I agree with Linus on this one. Microsoft hatred and its childish public displays (M$, are you kidding?) is a disease. Paranoia is never healthy and is not a viable survival strategy.

      In fact, Mono is one of the least likely technologies to be challenged. First, it's an actual, bonefied standard with international certification and everything. Second, there are agreements in place that make cover its use. Microsoft has given permission to Novell, and Novell has explicity stated that they see that permission as applicable to the entire community. Were Microsoft to violate those agreements, it would not doubt result in lawsuits and damages awarded to Novell. It might even be risking thermonuclear patent holocaust against the Sun/Oracle, Novell, IBM block. Aint. Gonna. Happen.

      If anything, Microsoft has gone out of its way to promote it! I know this might be difficult for you to understand, but they want C# in use on Linux servers and C# applications on the desktop! It results in their continued relevance.

      So please, be a little mature about this. Otherwise, do everyone a favor and make your mess in the corner.
      Rob Oakes
      • Missing the point.

        I don't say stay away from Microsoft technology (that would be somewhat ironic due to what I work on every day :-).

        I also don't say Microsoft is evil.

        Novell have *NOT* stated that the permission they have is applicable to the entire community, stop spreading this falsehood !

        Read it from the horse's mouth here:

        http://groups.google.com/group/tiraniaorg-blog-comments/browse_thread/thread/2a07b8b50038d8c8/2429b33859cf05c0#2429b33859cf05c0

        "* What about microsoft patents? If I create my own linux distro or I use a distro that is not mainstream or just doesn't have a deal with the daemon.. err Microsoft.. like Novell has.. Will I have to suffer the shadow of Microsoft patents over Silverlight when using or developing Moonlight?

        Not as long as you get/download Moonlight from Novell which will include patent coverage.

        Miguel"

        Jeremy.
        JeremyAllison
        • Thanks for the thoughtful comments

          Hi Jeremy,

          Thanks for the thoughtful comments. My mini-rant regarding "avoiding of all MS technology" weren't actually directed at you, but at "Linux Geek." I get tired of the anti-MS attitude. They're a big company, their software runs a lot of stuff. Open source has to interoperate. Which is why I am actually quite grateful for the work that you do on Samba. It lets me run a mixed Windows/Mac/Linux shop (Ubuntu, BTW, should anyone accuse me of being a Novell patsy).

          Right ... with platitudes out of the way. I agree totally that this topic is complicated, as evidenced by the comments you reference. However, in that statement, de Icaza isn't referencing Mono, but rather Moonlight. I've been talking explicitly about the Mono engine and C#. I view Moonlight as a largely consumer technology, and frankly, I just don't give a damn about it. Mono, however, is core to the software that I run daily.

          Now that my nits are picked ... my apologies if I am in error, but this is a talk back entry. Double and triple checking facts with links to outside sources is the type of work that gets done for scholarly articles, public statements and blog posts. In informal debate, speaking from the cuff is entirely appropriate, which I've done. I'm not an expert in the Novell/Microsoft pledges. I'm largely trying to remember things read months ago. I am not deliberately trying to grind an ideaoloogical axe. Not that I'm conceding anything, mind you ;)

          I'm also at work and have already expended more time than I can afford to this discussion. I would, however, be interested in continuing it. But not like this.

          This topic is important enough that it requries properly researched and referenced counter point. I would be happy to do so and provide it to you. But to do so properly would require more time than I currently have.

          If this interests you, please let me know. You can just indicate here in the talk backs and I will get in touch with you. This is clearly a topic that we both feel strongly about, but it deserves more respectful treatment.

          Cheers,

          Rob Oakes
          Rob Oakes
          • I'm happy to chat offline.

            Although I don't always have a log of email bandwidth (we just shipped Samba 3.3.9 today and I've spent the last two weeks in bug triaging).

            Send me email, I'm easy to find, just search for me on Google :-).

            Jeremy.
            JeremyAllison
    • Here we go aggain....

      Great Linux "The Paladin" Geek restart the rehashing of one of his extremist faction leader.


      First, please fix your keyboard... because you look quite childish.


      Second, MS is a for-profit compagny therefore it's logical that they want to make profit. However, it would be interesting that MS release the .net framework as an opensource alternative to Java(will probably never happend but still it would be intersting).

      Third: Stallman is, imo, just some old geezer that is so intranched in his hate of microsoft that he sees conspiracy everywhere.

      Finally... I wonder, are you left or right wing... because some of your talkback responses make me think that your far right wing yet as soon as MS is involved your far left wing...
      Ceridan
      • I am the mainstream

        [i]Finally... I wonder, are you left or right wing... because some of your talkback responses make me think that your far right wing yet as soon as MS is involved your far left wing... [/i]
        As you say, some label me far left or far right.
        That means that I am an independet right in the center, like most Americans!
        Linux Geek
        • That, you are not...

          I and quite a few others here would disagree with you on whether you are center or mainstream on this topic.

          Then again, we all know it is hard to be objective about oneself.
          BFD
        • Maybe in a crowd of one you are mainstream.

          But not in any real world I know of.
          No_Ax_to_Grind
    • Is open source giving up the patent commons?

      Naw, didn't think so.
      No_Ax_to_Grind
  • RE: Mono-mania: It's risky business

    Sorry, seems a little disingenous from a guy who depends upon google for his bread and butter and does linus on company time. Didn't google go after a foss company for using there technology forcing them to create a work around?
    midcapwarrior@...
    • ISO9000 certified FUD

      This article came from the same source used to claim Linux low adoption rate was b/c of a mass conspiracy.
      LBiege
  • Non Mono software has about the same patent infringement risk

    as does the current linux kernel so I'm not getting a wedgie over this...

    Thanks for the great work Mono and Moonllight teams!
    Johnny Vegas
    • Agreed

      Thanks to Mono, I've been able to largely move away from Windows on my servers. Moreover, C# is a much nicer language to deal with than C++ or even Java. It's more or less clear that Microsoft will never go after Mono for patent infringement.

      Novell has clearly stated that they view Microsoft's commitments as applying to all of Linux. As a result, if Microsoft were to go after other Linux providers -- say ... Canonical -- it would not only destroy their relationship with Novell, but mihgt even touch off the patent equivalent of thermonuclear holocaust.

      Ain't. Gonna. Happen.
      Rob Oakes
      • Novell does not speak for Microsoft.

        "Novell has clearly stated that they view Microsoft's commitments as applying to all of Linux. "

        This is simply not true.

        Read some of the statements on Mono and Moonlight. It's "safe" if you get it from Novell, not otherwise. That's the whole point of the patent deal.

        Jeremy.
        JeremyAllison
        • Then let Microsoft speak for themselves

          I have read the statements and I've also read the news coverage, including that provided here on ZdNet. Microsoft has been very clear about their .Net and Mono intentions. As recently as July, they were re-iterating: "We won't sue over Mono or .Net related tech."

          http://www.theregister.co.uk/2009/07/07/mono_microsoft_promise/

          http://arstechnica.com/microsoft/news/2009/07/microsoft-issues-patent-promise-dispels-mono-concerns.ars

          They've even gone so far as to add it to their Community Promise. The community promise is a non-discriminatory legal framework that protects against legal action by Microsoft. Technically, Microsoft *could* sue an entity like Ubuntu for distributing the Mono framework or applications, but that is extremely unlikely.

          1.) It would shatter important collaborative relationships.
          2.) It would result in counter suits by both partners and large corporations.
          3.) It would alienate their most important user base: enterprises.

          Stallman has done a great deal to help the advancement of Open Source and I respect. Nonetheless, he has a few loose screws, and this is one of them.
          Rob Oakes
          • Just pointing to the community promise

            All your links are just pointing to third-party reporting on Microsoft's Community promise. You didn't even bother to link to an actual Microsoft web site ? How is this Microsoft speaking for themselves ? (unless they secretly own TheRegister or Arstechnica. Note for the humor impaired, this is a joke :-) ).

            Did you even read the article ? The Community promise is not good enough to base Free Software applications on, and doesn't say what you claim it's saying here. Have you actually read it ?

            At least you understand that Microsoft "*could* sue an entity like Ubuntu for distributing the Mono framework or applications", community promise notwithstanding.

            I guess a few months ago your comment would have been "Microsoft *could* sue an entity like Tom Tom for distributing the Linux kernel, but that is extremely unlikely."

            Ring any bells for you ?

            Jeremy.
            JeremyAllison
          • Have you read it?


            For everyone's benefit, its here: http://www.microsoft.com/interop/cp/default.mspx

            You say: "At least you understand that Microsoft "*could* sue an entity like Ubuntu for distributing the Mono framework"

            Microsoft says: "The CP applies to developers, distributors, and users of Covered Implementations without regard to the development model that created such implementations, or the type of copyright licenses under which they are distributed, or the business model of distributors/implementers."

            It seeems to me like you're just scaremongering for the sake of your own political agenda here.

            njoho
          • But if a promise is not good enough...

            What good does it do if it applies to all ?

            FYI. The "*could* sue an entity like Ubuntu for distributing the Mono framework" was Rob Oakes comment, not mine.

            Jeremy.
            JeremyAllison
          • Yes, I've read it

            Yes, I've read it and I disagree. Microsoft has created a legally binding scenario where it is against their interests to sue others over Mono. That is about as thorough a guarantee as you can get in corporate America.

            I actually feel more comfortable going with Mono than I do with Java. Even though it is released under a completely open source license. Java only has a single copywrite holder, Sun. And Sun was recently acquired by Oracle. It is extremely unlikely that Oracle, as the new copyright holder, will change the license; but they *could*. It might even be an easier route than what Microsoft would follow by taking action against Ubuntu.

            Consider: 1) Microsoft isn't the Mono copyright holder. 2) They have not one, but *two* agreements with Novell saying they won't sue. 3) Sun/Novell/IBM hold massive patent portfolios for precisely this eventuality.

            Yes, Microsoft *could* sue Ubuntu, but that way lies the patent apocalypse. Microsoft isn't stupid, and they aren't about to destroy the ecosystem that they rely on for their survival. The odds of this happening are so small that they might as well be zero.
            ___________________________________

            And I chose to link to Ars and the Register because, as third party sources, they typically include additional comments to put the entire scenario in perspective. Both are reputable and there is no reason to accuse them of spreading MS propaganda. Nor is there a reason to challenge their analysis of the events.
            Rob Oakes