El Reg accused: not right, not funny and not clever
Part I - devoted to the point of dotGNU
Letters Blimey. You lot had a thing or two to say about an opinion piece we ran this week: Mono and dotGNU: what's the point?. Personally, my only real issue with Java is that it tends to keep me awake if I drink any after 4pm, but then I am a hack, not a hacker…
I broadly agree with Neil Davidson's assessment of Open Source alternatives to Microsoft's .NET. However, in support of an otherwise logical argument he feigns ignorance to an extent that makes me doubt his objectivity.
Despite claiming to be "familiar with bootstrapping", he ridicules Mono for using Microsoft's C# compiler to create another C# compiler with lower specs. The early stages of bootstrapping often involve such a seemingly backward step, for various reasons. Mono's motive is obvious, even if Davidson doesn't care to admit it: the specs of the new compiler are less important than the fact that it's Open Source whereas Microsoft's compiler is proprietary.
Davidson then scoffs: "One of the few applications that Mono claims it can run is its own C# compiler." It would be surprising if Mono (or Microsoft) did any different; it's an approach typical of bootstrapping, for two main reasons.
First, a compiler is among the earliest tools to be built for a new platform; as such it happens to provide one of the few large, complex, early collections of source code against which it can be verified. Second, once the compiler can generate itself its back end can be replaced in order to target the new platform. To target the Mono platform using an Open Source Mono compiler is presumably the next step. It would be impossible using Microsoft's compiler.
The article at https://www.theregister.co.uk/2004/02/11/mono_and_dotgnu_whats/ is labeled as "Opinion", though a fairer label would have been "Uninformed opinion". The author has obviously not done any research worth the word, and although he's entitled to his opinion, he's less entitled to spreading lies. He says, for example:
"There will be no remoting; no side-by-side existence of assemblies in the GAC; no code signing of assemblies; and no code access security."
Too bad remoting is already implemented as well as assembly signing: the first in particular since many months ago. Side- by-side installation of assemblies is in the works and will be available as a supported feature in one of the next releases.
As for code access security, people are working on that: it's not a very important feature, certainly not fundamental to the working of the CLR.
The author then continues: "The major achievement of this project appears to be using somebody else's compiler to build a compiler that will compile the compiler."
Now, apparently he has done a bit of research here. Too bad that was the news of two years ago. Mono has extensive support for ASP.NET and many ASP.NET applications designed for the MS CLR work with Mono: many are being developed specifically for Mono, too. Expect announcements in the next few weeks for more Mono success stories. Other big applications that run are the IKVM Java virtual machine (using that Mono can also run one of the biggest java application to date, Eclipse), the SourceGear Vault client and others. Mono can be embedded and indeed it has been in commercial databases as well.
BTW, he could have got all this info just by reading a few posts on the public mailing lists.
Thanks for your attention, hope the next articles (even if opinion pieces) will be written by someone who is a little more competent on this matters.
In the article titled "Mono and dotGNU: what's the point?" you claim that the teams working on the Mono and DotGNU projects only reason for working on them is to end or break Microsoft's monopoly. But what if they have other motivations?
What if they have used .NET and thought is was a really good platform but wanted it on something other then windows? What if they have used Java extensively and know all of Java's strengths and weaknesses and want a viable cross platform competitor in the 'write once, run anywhere' segment? Not necessarily to make .NET succeed but to offer some competition to Java's monopoly.
As you state competition is suppose to be good for everyone so why do you complain when someone is actually trying to do something competitive?
Having just read your article on The Register I find I agree with you on a number of fronts in terms of the suitability of Mono/DotGnu as a drop in .NET replacement, but I definitely don't agree with your conclusions.
My first thought is that it's not about code portability, it never is, not even Java is absolutely portable. It's about skill portability. I work in a 100% Microsoft environment, using .NET. Under normal circumstances, that's it, Microsoft owns me and my skills. With Mono I now have an alternative, to the .NET runtime, and to me more importantly, Windows.
Agreed, maybe it's like Diet Coke, but that's good enough for some. If my company decided it wanted to deploy Linux desktops, our custom apps can be ported with minimal rework. With VB6, we'd be forced to rewrite everything. Consider Web hosting companies: they can offer cheap ASP.NET sites on Linux/BSD platforms, instead of having to fork out for windows server and CALs. I hear someone say, "Use Java". In all honesty I prefer C# as a language and the abilities of ASP.NET.
That's besides the valuable subprojects and additions to the platform that these projects have introduced. Take the DataProviders for Example. ADO.NET is a mess requiring wrappers and rework for any different types of native adapter. The Mono project DataProviderFactory Lets you address all of these in an abstract manner, like MS should have done. Besides that there's the vast array of native adapters they've also built for databases such as MySQL, PostgreSQL, Firebird etc.
There's a lot of value in these projects and you're missing out if you don't see it.
This next one is in response to the same article, although you’d never guess, would you?
Thank-you, thank-you, thank-you, thank-you, thank-you, thank-you, thank-you, thank-you.
Our pleasure, Derek. But let’s get back to the letters…
Not to be overly critical, but you're a bit late to be controversial on this. I assume that you also think that WINE (which allows Windows binaries to be installed and executed as if [Linux] was Windows) is also a bad idea, and that the idea of doing everything windows does and more besides is either not feasible or not a good way to attract users. If you believe it is feasible, then I further assume you believe the same thing is true of Microsoft's Embrace and Extend strategy.
The threat of patents makes this a valid view, as has been well elucidated some months ago. I would have preferred if your article had broken new ground, and used all the prior conversations as a jumping off point.
An interesting analysis would be what you think of Mono's preparation for the threat of patents. They are developing a completely seperate and patent free stack of libraries using GTK#, etc. rather than Windows.Forms, etc., etc. for everything not submitted as royalty free to the standards body. The upcoming MonoDevelop project is a port of SharpDevelop from Microsoft's .NET to the Mono environment in such a way as to be unencumbered from any patents, as a proof of concept, and as a much needed Linux IDE for C#.
As a comparison, you might wish to bring up the GCJ project, which native compiles Java code, and the Gnome Java bindings. (or Eclipse +
Either effort could stand to attract greater resources. For instance, if Sun + IBM seriously got behind GCJ + Gnome Java bindings, or if Apple got behind Mono.
Anyway, The Registe is usually wonderfully edgy, bitingly sarcastic, and controversial. I was very disappointed with your article.