Blogs

RedMonk

Skip to content

On GNOME, Java and the Battle for Developer’s Hearts and Minds

I caught the quote below yesterday (and those picking up my feed will have seen it in my del.icio.us links), but haven’t seen much commentary on it yet. It’s actually just an echo of a debate that’s been simmering within the open source ranks for some time; see here, here, or here.

“With the language discussion, there has been talk of using Mono or Java, concentrating on the free derivative of Java that already compiles the Eclipse IDE. Because Sun hasn’t open sourced Java itself–real Java–it becomes impossible for GNOME to use it because we’ve made a commitment to free software”.

However, so far there has been no decision.

Waugh conceded that the decision to move to a higher level programming language is partly a political one. Two major corporate backers of the GNOME project have competing technologies– Novell with the Mono project and Sun Microsystems with Java.

“In the meantime a lot of software has been written in Python,” he said. “But, as yet we have not written anything in the official GNOME release in a language other than C. We have included bindings for Java, so you can use the GNOME libraries directly from Java which means you don’t have to use that awful Swing. We also have C++, Perl and Python bindings. All are supported we just haven’t committed to any of them yet for core GNOME modules”. Link

Among the firms with a strong interest and investment in the GNOME desktop, the battle lines on this one are fairly clearly drawn:

  • Sun: Pro=Java Anti=Mono
  • Red Hat: Undecided=Java Anti=Mono
  • Novell: Pro=Mono Anti=Java

Where most everyone is clear is on the need for a higher level programming language. For some that’s Java, and for others its C#. The decision there depends on many factors, and is much too complicated to be discussed in a few sentences here. But the implications of that discussion, to me, are profound. Here’s what I wrote about Mono’s impact on ISV’s back in July:

ISV Recruitment: Existing industry ISV platform decisions and relationships of course won’t immediately be affected, as most are longstanding and unlikely to be swayed by a relatively new project like Mono. We are not claiming an immediate broad realignment around .NET and Mono. But in ISV recruitment, or where new, strategic platform decisions are made, Mono has the potential to impact the decision making process because for the first time Visual Studio .NET class development capabilities will no longer be restricted to Windows systems.

I obviously think that the first quote above reflects my contention in the second; namely that Mono is having impact on these types of strategic decisions. True, GNOME is not an ISV in the traditional sense, but it’s similar in scope and importance, and plays an important role in the user interface for Linux yes, but Solaris, BSD and a host of other operating systems. For that reason alone, consideration for Mono is likely to be fought tooth and nail by both Java advocates like Sun and Mono critics like Red Hat. GNOME’s importance to Novell is somewhat in question, as they’re believed to be forging ahead with something of a hybrid approach drawing on both GNOME and its competitor KDE, but with Novell making a big commitment to Mono development it’s clear that they’d like to see others take the plunge with them.

With the decision still to be made, however, and months of…spirited debate, shall we say?…ahead, few conclusions can be made at this time. But anyone with an interest in application development should be paying close attention to how this plays out. I remain convinced that Mono’s the most significant threat Java’s faced in some time, and it may well be that GNOME becomes the opening theatre of battle in the coming conflict.

Categories: Linux.

  • Anonymous

    I just wanted to point out that Novell is not
    anti-Java, in fact we have more than a few products
    that run on top of Java (exteNd: a software to
    help developers write high-level applications on
    top of J2EE).

    That being said, one of the major problems of Java
    as a platform for open source software is the fact
    that there is no complete open source Java
    implementation. It is being worked on certainly,
    but today it poses a problem for those
    distributions which are `pure open source' like
    Debian GNU/Linux: Java-based solution so far
    have been a non-starter.

    The reason to prefer Mono for desktop development
    at Novell over Java is that Mono can run both
    .NET and Java code, so if we write code for the
    CLR, we get to serve both languages.

    Also, .NET has learned a few tricks and has
    been able to fix and introduce concepts that
    are not available on Java (like structs, and
    P/Invoke) which make it more suitable for our
    desktop development.

    Another bit which I consider important is this:
    Java and .NET have both powerful backers and
    neither Novell or Red Hat have the power to make
    ISVs choose one or another, the forces are too
    strong.

    So the position that we are taking at Novell is
    supporting both: we will run your Java code and
    we will run your .NET code on Linux.

    Miguel.

  • Miguel de Icaza

    I agree with the rest of your post, I just wanted
    to make sure that Novell was properly portrayed.

    We are like Switzerland: we love everyone, but
    we have chosen Mono to build our new generation
    of applications. Some of those were demostrated
    at Brainshare: iFolder, Simias and F-Spot: both
    on the server and the client.

    All of the above technologies have also been open
    sourced to encourage its adoption in the Linux
    world.

    Thanks!
    Miguel