New Mono-Based Applications for GNOME in Fedora Core 5--Part 1
Mono, GNOME Make a Turbulent Mix
Like it or not, Red Hat still owns the majority of the Linux market between its Red Hat Enterprise line and the Fedora Project it sponsors. As such, as long as Red Hat refused to touch Mono--the open source, multi-platform implementation of Microsoft's .Net framework--various power struggles and problems were occurring.
One of the largest issues was that the GNOME Project has heavily been moving in the Mono direction for its latest toolsets, using the Gtk# language, which was developed to allow GNOME libraries to be compiled through C and Microsoft's C#--the programming language developed by Microsoft for building .NET applications. For many Linux and open source advocates, the idea of selecting a Microsoft technology over just about anything else makes them either irate or gives them a headache. When asked why, issues mentioned range from potential patent conflict lawsuits to the fact that using anything from Microsoft feels to some like getting "cooties" (for those international readers, cooties are an imaginary germ passed between the sexes before puberty amidst many cries of horror) from a member of the opposite sex in second grade (did anyone ever find a cure for that?)
The hardest concern to address is that of patents. This worry is muddied by the fact that C# was handed by Microsoft to the ECMA (European Association for Standardizing Information and Communication Systems), standards organization as a language standard. As a standard, C# is technically out of Microsoft's hands to control. However, that doesn't mean that the rest of .NET doesn't contain patent issues. In 2002, Microsoft applied for just such a patent, causing a ripple of concern throughout the technology community. Many decried the patent as too broad, and potentially even a violation of the ECMA's rules for the standards it controls.
Speculation continues to run rampant on whether the patent will be granted, and what this patent will ultimately mean for anyone using .NET technology if Microsoft chooses to enforce the patent in a way that will have it invalidated for ECMA handling. In the meantime, the Mono and DotGNU projects continue on and various groups are throwing their hats into this collective pot.
Cross-platform programming ability is a huge part of the draw. When asked why they aren't using Java, the answers are as complex as they are from .NET opponents. Some dislike the fact that Java isn't capable of integrating with a system's GUI, so that Java applications tend to look "wrong" no matter what operating system they're run on. Mono and DotGNU allow .NET applications to blend in. Others dislike the fact that Java isn't an open standard. Sun had submitted Java to the ECMA in the late 1990's but withdrew the proposal in late 1999 in order to retain control of the language's future. Concerns about this particular issue range from Sun's future behavior regarding Java to the "cooties" factor of anything that isn't an open standard, or a general dislike or distrust of Sun Microsystems.
All politics aside, there are some who just want to use what they consider the best technology to do the job. These camps are typically split in the Linux community between those who have chosen Java and those who use Mono as their cross-platform development tool, and trying to cover every technical argument from each group would easily take another few articles. No doubt each camp has looked at the other perceived risks and done their best to ameliorate them, or simply decided that the sky isn't falling and they won't let their actions be dictated by what this or that entity might do in the future. This brings us straight back to Mono and GNOME.
Rumor would have it that GNOME is moving to Mono. However, this isn't true. GNOME offers the ability to use at least twenty-five different languages to do development for the platform. It just so happens that one of these is Mono. The future of GNOME is no more bound to Mono than it's bound to a single developer.
So why include Mono in Fedora Core 5, given the controversies and the fact that Mono isn't strictly necessary for the future of GNOME? The answer lies in three GNOME tools that were built with the language: Beagle, F-Spot, and Tomboy.