vbbox.plan

It is by will alone I write this stuff.

 

The Mono "problem"

I was reading through some of the GNOME blogs. There's some interesting stuff there. But I came across this jewel, and I figured I'd go ahead and post a little rant I've been thinking about doing for a while.

In case you haven't heard about it, Mono is an open source implementation of the .NET CLI with a working C# compiler and most of the works. The project is run by Miguel de Icaza, who is also one of the founders of Ximian, a fellow Mexican and an extremely bright guy. Curiosity factor aside, Mono is not going to give the .NET you and I use every day a run for its money any time soon, but it's impressive nonetheless. It runs on most flavors of Linux as well as Windows and BSD, though since .NET itself is free there's very little reason why a Windows developer would want to install it. And by "free" I mean you don't have to pay for it; philosophical considerations about what "free" means aside, which most of us don't care about because we don't mind paying for quality software.

I think Mono is cool. If it accomplishes nothing more than allowing me to write console applications and web services that run on all those operating systems, I'll even use it.

With that aside, this article breaks down the reasons why it is fundamentally dangerous for people who use or write free software to buy into Mono. What this boils down to is basically this: We don't know when (or if) Microsoft will suddenly decide to sue Mono for patent infringement, and since they are so evil, we can't take our chances.

Mono has existed for a while now, and has caused an interesting phenomenon in the open source world. Miguel has been alternatively vilified and praised for starting the Mono project, mostly for the same reasons this article uses as centerpiece. Every single time someone submits some bit of news about Mono to the nadir of the internet the discussion quickly fills up with flaming character assassination ("Miguel is teh M$ stooge"), bogus claims ("Mono will be teh end of teh free softwarez") and so on. Every single time someone comes up with a new reason why Mono "is teh sux" and must be terminated and is promptly moderated as "insightful" and cheered on as The Truth (TM). If nothing else, it's entertaining. But that's not my point.

The only rational explanation I can find for this is that the people who dislike Mono on principal are the very people who find it alluring as a technical accomplishment and the promise of creating an extensible, unified and secure application development infrastructure for both the desktop and server spaces in Linux. This is something that they lack. Java hasn't given it to them, otherwise all this would be a non-issue. You see, there are literally dozens of languages, compilers and GUI widget libraries that, although held up as proof that Linux is "superior" because it offers so much choice, is also a problem if you're a lone developer or a company trying to create an application for the darn thing. Before .NET, in Windows you (sometimes) had to worry about having the latest version of the Common Controls library - in Linux you have to worry about having the right version of a different library every time you install another application. There is no uniformity (or maybe OpenOffice is written in Java just because everyone likes slow applications), and virtually no predictability. Mono could provide Linux with that that real predictability that we are now starting to enjoy with .NET on Windows.

Of course there's also the denial factor — Microsoft, by definition does not innovate, so having one of the people who are the cornerstones of the open source community sit down and clone a Microsoft technology smacks of blasphemy. It's a very strong statement of validation (not that we need them to validate things for us) and it must be irritating to many people. Blasphemy, I say.

So there is something fundamentally strange about this whole thing. To wit, no one is forcing anyone to use Mono. Since Linux is (at least now) completely descentralized and independently managed by the myriad distributions that offer it for sale or not, I honestly fail to see the problem. Who is forcing RedHat or Mandrake or Debian to ship Mono? Who is forcing Joe Coder to download and install Mono? The simple answer is no one. So if everyone is so distrustful of Mono, then why attack it with such vehemence? As such things go, if Mono is "teh evil" then it should die a swift death as the developer base and supporting community simply withers away. Right?

Ah, but it's not that simple. See, Novell just purchased Ximian, and Mono came along for the ride. Then they went and purchased SuSE and positioned themselves as a potentially dominating force in desktop and server Linux. Much more so than RedHat, because Novell actually has an established channel and customer base. That is, Novell knows how to sell software, not just how to give it away. And now they have a viable product (which Linux certainly could be) that can compete with Microsoft. Pair this with low cost hardware, and I'm sure Redmond has taken notice. Which is absolutely fantastic, because Windows needs competition to be better. But I digress.

The article then tries to make a case for a hypothetical scenario that gives Novell (now a Linux distributor through SuSe) a competitive advantage over RedHat and any other commercial Linux distro due to the inclusion of Mono into the core OS distribution, in a theoretical world where Linux is actually a player in the desktop market. A competitive advantage that — wait for it — is indirectly provided by Microsoft, because they invented .NET and submitted the CLI and the C# spec to ECMA. Isn't irony great? Then, Microsoft turns around and starts demanding licensing agreements from people who use Mono, and much hilarity ensues. Microsoft does this because... well, who knows. The guy who wrote that is not an IP lawyer (as he so succinctly puts it at the beginning of his article), and neither am I. Is it even possible? I don't know. And neither does he.

Of course at this point anyone with a few usable brain cells would ask "what about Java?". There is nothing whatsoever stopping Sun from suddenly going after classpath and anyone else that has ever created a JVM or something that smells like it. Worse, Java is not an ECMA standard, nor is Java or any of its derivatives open source in any way shape or form. But nobody worries about this, apparently. The problem, the apocalyptic end game and potential horror, is Mono. Of course.

The issue here is that the Mono project is making assumptions about what they can and cannot do with the ECMA spec. Miguel is a smart guy (one of the things he's always demanded from contributors is that they refrain from looking at the SSCLI), and right now he also has the infrastructure of the Novell legal department behind him. A lot of people half expected Mono to be cancelled after the Ximian purchase, but it wasn't, and it doesn't look like it will any time soon. One must assume that Novell has looked at the ramifications of implementing the ECMA spec on their own and decided that it's OK — legions of zealots posting insightful rants about how Mono is a bad idea and always start with "I'm not a lawyer, but..." notwithstanding.

But here's the kicker. At the end, the article suddenly decides that the licensing scheme required under the ECMA charter (royalty free + RAND) is probably not so bad — unless we assume that Microsoft somehow duped Hewlett-Packard, Intel and ECMA — but claims that it is basically unfriendly to free software. Yes, that's right. Mono sucks because the CLI license is unfriendly to the GPL. I mean, what was Microsoft thinking?

So the logic goes like this: Mono is an evil project because it's based on an open standard, which may or may not allow Microsoft to kill it any time it wants. Apparently, someone is coercing Miguel de Icaza into writing Mono, and that someone has also convinced Novell to keep the project alive. Millions of developers have also been coerced into writing applications with it. Against their best judgement, Novell is also about to include Mono into the SuSE distribution, which will give them a competitive advantage over RedHat (although how it could be that a Microsoft-created technology would give anyone an advantage is not entirely clear, since everybody knows that .NET is really not that good, eh). Further, this competitive advantage will turn into the weapon Novell will use to muscle in their Linux distribution and realize World Domination (TM). To ensure that nothing interferes with its evil plans, Novell disables KDE and fvwm and any other desktop or window manager, replaces Emacs with PICO and sues RedHat for using the same shade of red as the Novell logo. At about this time, Apple users are flocking to the new line of sleek eMachines boxen running .GNU/.Linux 2017 with the .Aqua theme. Other Linux distributions are mysteriously discontinued, so now if you want Linux you need to get SuSe. You have no choice! Debian users switch to AtheOS en mass. RedHat goes bankrupt and is purchased by SCO in an eBay auction. Gentoo is bought by Underwood and integrated with AbiWord to sell high-tech typewriters that spend all their time recompiling themselves.

Then, at exactly the right time, Microsoft sues Novell over patent infringements related to Mono, swiftly and machiavellically snuffing out the budding revolution.

Can you see it? Can you? I can't. But I tell you, the future is so bright that I gotta wear shades.

 

 

 

 

 

 

 

 

© 2003-2004 Klaus H. Probst BLOGGER