Feeds

Mono and dotGNU: what's the point?

A bit controversial, this one

  • alert
  • submit to reddit

The Power of One Brief: Top reasons to choose HP BladeSystem

Opinion Neil Davidson is technical director of Red Gate Software. He can be reached at neil.Davidson@red-gate.com

Opinion Two open-source projects, Mono and dotGNU, are aimed at providing alternatives to Microsoft’s .NET framework and developer tools. While providing freedom of choice might be reason enough to justify a project, practical programmers could be asking: What’s the point?

Sure, these projects might be of theoretical or academic use, but only ideologues are going to use them for real work. Microsoft already provides the compilers and the .NET framework for free; you can download them from www.microsoft.com/net.

According to SD Times, one of the goals of dotGNU in 2004 is to “have System.Windows.Forms under XWindows.” Great. Microsoft is working on adding edit-and-continue to VB.NET, generics to C#, embedding the CLR into the next version of SQL Server, and making a stack of improvements to managed C++. In similar timescales, dotGNU will let you put a button on a form.

Last year, Novell bought Ximian, creator of the Mono project. Mono’s roadmap is to implement about five of the Microsoft namespaces in 2004. At a generous estimate, that’s under half of the system class libraries. 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 – despite this being a fundamental piece of the .NET framework. By the time Mono is anywhere near 90 percent of the current functionality of .NET, Microsoft will have released Whidbey, Yukon and probably Longhorn.

Stopping a monopoly?

DotGNU’s motivations include stopping Microsoft from achieving monopolistic control of web services. Getting people to adopt C# probably isn’t a good way of accomplishing this. Every Java devotee that dotGNU converts to the C# cause is actually increasing Microsoft’s stronghold.

Even if Mono or dotGNU gets 99 percent of the way there, that’s not enough. It’s the extra 1 percent that matters. It’s the boring stuff like adding serialization capabilities to classes, implementing good security, and documenting class libraries that makes C# and .NET viable.

Mono has its own C# compiler, written using Microsoft’s C# compiler. I’m familiar with bootstrapping, but this I just don’t get. You take a fully functional C# compiler and use it to create a lower-spec C# compiler. Actually, one of the few applications that Mono claims it can run is its own C# compiler. The major achievement of this project appears to be using somebody else’s compiler to build a compiler that will compile the compiler.

People involved in these projects seem to be convinced that they are working to break Microsoft’s perceived monopoly. But how is porting a Microsoft platform to Linux going to achieve this? How is making C# a standard on Windows and Linux going to hurt Microsoft? Far from being alarmed, Microsoft execs encourage this activity, making a lot of the .NET source code available under the ROTOR program. Their enemies are now working, for free, to extend Microsoft’s monopoly onto new platforms.

Testifying for Microsoft

If, in Microsoft’s wildest dreams, C# on Linux kills Java, and Sun or IBM accuses Microsoft of abusing a monopoly position, all Microsoft will need to do is point at Mono (and hence Novell) and dotGNU. Can you imagine it? Novell executives testifying for Microsoft in some hypothetical anti-trust case?

If the open source versions of .NET start to struggle, then Microsoft will probably just bail Novell out with $150 million or so like it did Apple. Of course, Microsoft can enforce its patents any time if it ever feels really threatened.

Competition is good for the software industry, good for Microsoft in particular (as Adam Smith pointed out, monopoly is a great enemy to good management), and most importantly, good for consumers. It is great for everyone when the open-source movement provides credible competition. At times, however, I do wish that all that passion, energy and skill went into something, well, a bit more useful.

Mono and dotGNU are interesting projects for people who are interested in computer languages, compiler construction and other fairly esoteric, hard-core areas of software engineering. But they have no practical use, and exist only with the patronage of Microsoft. ®

The Essential Guide to IT Transformation

More from The Register

next story
Secure microkernel that uses maths to be 'bug free' goes open source
Hacker-repelling, drone-protecting code will soon be yours to tweak as you see fit
KDE releases ice-cream coloured Plasma 5 just in time for summer
Melty but refreshing - popular rival to Mint's Cinnamon's still a work in progress
NO MORE ALL CAPS and other pleasures of Visual Studio 14
Unpicking a packed preview that breaks down ASP.NET
Cheer up, Nokia fans. It can start making mobes again in 18 months
The real winner of the Nokia sale is *drumroll* ... Nokia
Put down that Oracle database patch: It could cost $23,000 per CPU
On-by-default INMEMORY tech a boon for developers ... as long as they can afford it
Another day, another Firefox: Version 31 is upon us ALREADY
Web devs, Mozilla really wants you to like this one
Google shows off new Chrome OS look
Athena springs full-grown from Chromium project's head
prev story

Whitepapers

Implementing global e-invoicing with guaranteed legal certainty
Explaining the role local tax compliance plays in successful supply chain management and e-business and how leading global brands are addressing this.
Consolidation: The Foundation for IT Business Transformation
In this whitepaper learn how effective consolidation of IT and business resources can enable multiple, meaningful business benefits.
Application security programs and practises
Follow a few strategies and your organization can gain the full benefits of open source and the cloud without compromising the security of your applications.
How modern custom applications can spur business growth
Learn how to create, deploy and manage custom applications without consuming or expanding the need for scarce, expensive IT resources.
Securing Web Applications Made Simple and Scalable
Learn how automated security testing can provide a simple and scalable way to protect your web applications.