On TechRepublic: Windows 7: Slower to boot than Vista?
BNET Business Network:
BNET
TechRepublic
ZDNet

October 15th, 2009

Mono-mania: It's risky business

Posted by Jeremy Allison @ 6:00 am

Categories: General, Microsoft, Novell, Open Source

Tags: Mono, Patent, Microsoft Corp., Miguel De Icaza, F-Spot, .Net, Development Tools, Open Source, Software Development, Software/Web Development

[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.

Jeremy Allison is one of the lead developers on the Samba Team, a group of programmers developing an Open Source Windows compatible file and print server product for UNIX systems. Developed over the Internet in a distributed manner similar to the Linux system, Samba is used by all Linux distributions as well as many thousands of corporations worldwide. Jeremy handles the co-ordination of Samba development efforts and acts as a corporate liason to companies using the Samba code commercially. He works for Google, Inc. who fund him to work full-time on improving Samba and solving the problems of Windows and Linux interoperability.

  • Talkback
  • Most Recent of 72 Talkback(s)
RE: Mono-mania: It's risky business
Patents are searchable public records. I'm getting tired of
all these allegations without anyone citing the patents. Can
someone give me the number of a patent or patents that:

1. Are n... (Read the rest)
Posted by: PorkPrick Posted on: 10/19/09 You are currently: a Guest | | Terms of Use
M$ must give away its patents  Linux Geek | 10/15/09
You misspelled tyranny  Rob Oakes | 10/15/09
Missing the point.  JeremyAllison | 10/15/09
Thanks for the thoughtful comments  Rob Oakes | 10/15/09
I'm happy to chat offline.  JeremyAllison | 10/15/09
Here we go aggain....  Ceridan | 10/15/09
I am the mainstream  Linux Geek | 10/15/09
That, you are not...  BFD | 10/15/09
Maybe in a crowd of one you are mainstream.  No_Ax_to_Grind | 10/15/09
Is open source giving up the patent commons?  No_Ax_to_Grind | 10/15/09
RE: Mono-mania: It's risky business  midcapwarrior@... | 10/15/09
ISO9000 certified FUD  LBiege | 10/15/09
Non Mono software has about the same patent infringement risk  Johnny Vegas | 10/15/09
Agreed  Rob Oakes | 10/15/09
Novell does not speak for Microsoft.  JeremyAllison | 10/15/09
Then let Microsoft speak for themselves  Rob Oakes | 10/15/09
Just pointing to the community promise  JeremyAllison | 10/15/09
Have you read it?  nick.holmes | 10/15/09
But if a promise is not good enough...  JeremyAllison | 10/15/09
Yes, I've read it  Rob Oakes | 10/15/09
Better promises are possible.  JeremyAllison | 10/15/09
APIs are not patentable  honeymonster | 10/15/09
They haven't patented API's  JeremyAllison | 10/15/09
Disingenuous  honeymonster | 10/15/09
RE: Mono-mania: It's risky business  super_J | 10/15/09
READ THE ARTICLE !  JeremyAllison | 10/15/09
RE: Mono-mania: It's risky business  petem@... | 10/15/09
RE: Mono-mania: It's risky business  hal8000 | 10/15/09
Sure  Tim Patterson | 10/15/09
RE: Mono-mania: It's risky business  hal8000 | 10/15/09
call you out  kckn4fun | 10/15/09
RE: Mono-mania: It's risky business  hal8000 | 10/15/09
Jeremy has gone radio silent.  hal8000 | 10/15/09
Of course I'm silent on this.  JeremyAllison | 10/15/09
But you can speak freely of Open Office.  hal8000 | 10/15/09
That's *funny* happy  JeremyAllison | 10/15/09
Evasive much?  hal8000 | 10/15/09
If you have legal questions for Google, contact Google.  B.O.F.H. | 10/15/09
Jeremy is playing a lawyer on TV.  hal8000 | 10/15/09
OpenOffice belongs to Oracle (via Sun Microsystems)  B.O.F.H. | 10/15/09
But this is the same situation that Jeremy denounces.  hal8000 | 10/15/09
Novell has an agreement with Microsoft, it does not cover other distributio  B.O.F.H. | 10/15/09
Samba has a separate deal with Microsoft.  JeremyAllison | 10/15/09
Jeremey ignores inconvenient facts.  hal8000 | 10/15/09
If Jeremy is not a lawyer, BOFH, ...  skeptipotamous | 10/15/09
Perhaps because he has already gone through this with SaMBa.  B.O.F.H. | 10/15/09
Only his opinion  skeptipotamous | 10/15/09
It's just my opinion.  JeremyAllison | 10/15/09
I am not debating you on this.  B.O.F.H. | 10/15/09
Jeremy, can you help me understand this.  skeptipotamous | 10/15/09
Well we're different from Mono because of that deal.  JeremyAllison | 10/15/09
Has Samba created an uneven playing field for open source interop?  skeptipotamous | 10/15/09
It *is* eneven.  JeremyAllison | 10/15/09
Samba/Microsoft deal may mean you are safe, but what about everyone else?  skeptipotamous | 10/15/09
I think we're going round in circles here.  JeremyAllison | 10/15/09
Just trying to understand your argument  skeptipotamous | 10/15/09
Good question.  JeremyAllison | 10/15/09
The GPL is not a vaccine against patents; It is a self-destruction bomb  hal8000 | 10/15/09
GPLv3 is not magic  JeremyAllison | 10/15/09
So what exactly are you proposing then?  hal8000 | 10/15/09
hal8000, you need to lighten up  Rob Oakes | 10/15/09
Nutjob  jackbond | 10/15/09
The world of open source development  No_Ax_to_Grind | 10/15/09
Not Quite  Tim Patterson | 10/15/09
Spirits? Does such a thing exist?  No_Ax_to_Grind | 10/15/09
Thanks Jeremy  Tim Patterson | 10/15/09
I've never understood Mono  Richard Flude | 10/15/09
Java is a sick joke  croberts | 10/15/09
I should have my head examined then  Gerardo.Tasistro | 10/15/09
RE: Mono-mania: It's risky business  joe1972 | 10/15/09
If the hat fits, wear it. (nt)  croberts | 10/16/09
RE: Mono-mania: It's risky business  PorkPrick | 10/19/09

What do you think?

SponsoredWhite Papers, Webcasts, and Downloads

advertisement

Recent Entries

advertisement

Archives

Favorite Links

ZDNet Blogs

White Papers, Webcasts, and Downloads