New Mono-Based Applications for GNOME in Fedora Core 5--Part 1

Mono, GNOME Make a Turbulent Mix

May 1, 2006

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.