The Source for Java Technology Collaboration
User: Password:



Hans Muller

Hans Muller's Blog

GNOME Linux Desktop Community Considers Java

Posted by hansmuller on March 19, 2004 at 02:37 PM | Comments (11)

Earlier this week Havoc Pennington, who's responsible for Red Hat's desktop group and is the founder of freedesktop.org, published an article inviting debate about future GNOME Linux Desktop development called "Java, Mono, or C++" ( http://ometer.com/desktop-language.html).

Mono is an open source project sponsored by Novell to build a clone of Microsoft's .NET platform for Linux. Mono supporters would like to see it become the runtime on top of which the GNOME desktop and desktop applications are based (here's a figure from the Mono project web site). This is a controversial topic, in fact at the most recent meeting of the GNOME Advisory Board it was considered too divisive to indulge a discussion. Havoc's blog entry brings the discussion into the great wide open and it has inspired responses and discussion all over the net.

Historically, Java has not been incorporated in free software projects like GNOME because the Java license and standards bodies value cross platform portability over giving developers the right to fork the Java platform at their whim. Although this hasn't changed, Havoc's proposal advocates using Java within the limits of what's supported by the GNU Classpath project. Havoc's proposal allowed that GNOME developers could use other Java implementations. You can be sure that Sun will continue to ship the complete, compatible implementations of the latest Java standards.

All in all we're happy that the discussion about growing the set of acceptable programming technology choices for GNOME's developers is underway and that Java is a contender. There are huge advantages to building large applications and systems using modern, object oriented, garbage collected, secure, etc. programming platforms. The Java community has more than eight years experience doing so. We're not pushing Java as the underpinnings for everything in GNOME, just as an alternative platform for Linux desktop developers who want some portability with their modern runtime.

Java is already being widely used on Linux for both server and desktop work. For example, a recent Evans Data Linux survey showed that 65% of developers do some of their work in Java. Java is also heavily used in open source projects, there are over 11,000 of them on sourceforge today (roll-up by language is here). And Java is doing well on the desktop. From tools for developers like NetBeans, JBuilder, or IntelliJ's IDEA to consumer file sharing favorites like Limewire and Morpheus (400,000 downloads a week!), developers are producing thousands of free and commercial desktop applications. It would be a better world if some of those developers could have their software included with GNOME.

I've read much of the feedback that Havoc's blog generated on slashdot.org, and gnomedesktop.org, and elsewhere. To the extent all of that represents the voice of the Linux desktop community, I think it's safe to say that the community doesn't speak with one voice on this issue. On the other hand, I saw remarkably little enthusiasm for making GNOME depend on Mono. To most developers, the thought of defeating Microsoft's desktop software market dominance is inspiring. However doing so by attempting to clone and track the .NET platform's every mutation feels like an unnatural act and most of the feedback that I read characterized the idea as repugnant. Java isn't a clone of Microsoft's technology (in fact if imitation is the sincerest form of flattery, we're blushing), it's a better alternative with a community of millions of developers. I hope the GNOME community doesn't fall into Microsoft's "clever trap".


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • Bad News Either Way
    It's a bad idea to kid ourselves that the technology behind the current Java VM is something that could be replicated easily in a few months, or even a few years, without a lot of excessive full-time effort.

    This leaves every open source desktop environment on every open source operating system (and some that aren't), with the sad task of duplicating this effort.

    Even that effort would be "tail light chasing" as Sun improved and changed the same VM technology.

    What a horror this will be, when people speak of "Java Performance", they will be comparing the performance of the GNU Classpath libraries and open source Java VM against those of Microsoft's CLR (and to a lesser extent the Java VM by Sun). Or "Cross VM Compatability" as the differences in GNU Classpath and the Java classes rear their ugly head.

    It may give Java a bad name for quite some time. It will definitely leave Sun red in the face from repeating "It's a different implementation!" over and over again to anyone who will listen.

    Somehow, the people at Mozilla got this right - able to maintain control over the commercial release of Firefox (and crew), while still making the source code publicly available in a license that's deemed "open source".

    Sun could honestly only help itself by adopting the same strategy with Java. I dream of a world where every Linux distribution comes with an Eclipse IDE, Sun's VM and class library, and a JBoss application server and wonder what it would truly be like to have Java as a first generation language (like C or perl) unified on my desktop and in my servers, and not the ugly step-sister that it is today.

    Not that I'm calling my step-sister ugly.

    Posted by: idcmp on March 19, 2004 at 06:41 PM

  • Forking
    "...value cross platform portability over giving developers the right to fork the Java platform at their whim"

    I really don't know why you perpetuate this misconception. WHY does a Free but restrictive licence like the GPL lead to forking?

    http://www.gnu.org/software/classpath/license.html

    Yes, any guy can release his own modifications - but thats no fork, very few people will care.

    Forking matters when large interests, that can move developers make incompatible changes - like the SWT from IBM and J++ from Microsoft. The current closed-ness of Java hasn't prevented these...

    Posted by: biehl on March 20, 2004 at 12:16 AM

  • Forking
    "I really don't know why you perpetuate this misconception. WHY does a Free but restrictive licence like the GPL lead to forking?"
    I doubt you'll get an answer from anyone at Sun. Despite all the PR and FUD, it's clear that much of the top-level management still don't 'get' open-source or free software.

    People with blogs love making assertions, but fall silent when asked to back up those assertions with reason and fact.

    Perhaps the faux-celebrity 'status' blog writers enjoy elevates them beyond the levels of everyone else, who have to use real evidence to back up our arguments...

    Posted by: philwebster on March 21, 2004 at 06:24 AM

  • GNU Classpath is the new Java API reference implementation...
    Oh dear... here we go again:

    "Historically, Java has not been incorporated in free software projects like GNOME because the Java license and standards bodies value cross platform portability over giving developers the right to fork the Java platform at their whim."
    Incorrect! Java has not been incorporated because Java is not Open Source or Free Software. And since GNOME is part of GNU, and GNU exists to replace non-free software, it is logical that GNOME should not contain non-free (non-Libre) software. Therefore, GNOME cannot include Java, because Java has historically not had a Libre implementation. It has nothing to do with anyone wanting to fork Java, and nobody could do that anyway, since the fork wouldn't pass the Sun compatibility tests (and therefore would not be Java).

    Libre JVM does not imply that Sun must give up ownership of the Java trademark.
    Libre JVM does not imply that Sun must give up JCP control of the Java specifications.
    Libre JVM does not imply that people will fork that JVM, because:
    - Any JVM must pass the compatibility tests before carrying the Java brand name.
    - Any API implementation must be compatible with the JCP's specifications before carrying the Java brand name.

    Sun owns the brand name, Sun is powerful within the JCP. Sun can still stay in control if it handles the upcoming situation correctly. There *will* be open-source Java, whether Sun likes it or not. Sun can be in control, with a leading Open Source VM, or Sun can be replaced by GNU, which is now very close to duplicating full Java 2 functionality.

    And without the annoying click-through license requirement, GNU Classpath and a Libre JVM will be much more widespread.

    " Although this hasn't changed, Havoc's proposal advocates using Java within the limits of what's supported by the GNU Classpath project. Havoc's proposal allowed that GNOME developers could use other Java implementations. "
    Although other JVMs may be compatible with a Java-based GNOME, please do not forget that the purpose of GNOME, as a component of GNU, is to replace non-Libre software. A closed-source JVM will not be the primary target VM, and if Sun JVM compatibility is provided, it will be for reasons of end-user choice. The 'extra' features provided by the proprietary Sun JVM will not be used.

    "You can be sure that Sun will continue to ship the complete, compatible implementations of the latest Java standards."
    ...however, since developers are more likely to be writing for the GNU standard, Sun's closed-source implementation won't be used.

    "All in all we're happy that the discussion about growing the set of acceptable programming technology choices for GNOME's developers is underway and that Java is a contender."
    GNU's Java certainly is! Sun's Java isn't, because it is closed-source and proprietary. The article does mention the concerns Open Source people have with Sun's lack of standards-body involvement for Java.

    "There are huge advantages to building large applications and systems using modern, object oriented, garbage collected, secure, etc. programming platforms. The Java community has more than eight years experience doing so."
    If you read the article, Java is largely only a contender because it isn't Microsoft! All the features mentioned here are not Java-exclusive.

    "Java is already being widely used on Linux for both server and desktop work. For example, a recent Evans Data Linux survey showed that 65% of developers do some of their work in Java. Java is also heavily used in open source projects, there are over 11,000 of them on sourceforge today (roll-up by language is here). "
    Counting the total number of projects for any given language is not a good metric for measuring language popularity, since many of those projects will be prototypes, proof-of-concept toys or discontinued/dead projects. How many active, heavyweight, *real* projects use Java relative to other languages?

    "developers are producing thousands of free and commercial desktop applications. It would be a better world if some of those developers could have their software included with GNOME. "
    Only 100% Libre applications will be included with GNOME, and only GNU Classpath provides an effective Libre Java implementation. If it doesn't run on Classpath, it won't be included with GNOME.

    If Java did manage to become the high-level foundation for GNOME, one thing is sure: GNU Classpath is the new reference implementation.

    Posted by: philwebster on March 21, 2004 at 06:54 AM

  • Bad News Either Way
    The free VMs are being led by an ahead-of-time compiler - gcj (basically, a Java front-end for GCC). Yes, a good JIT can outperform a static compiler , but the performance won't be as atrocious as you think .

    What will prove to be interesting is that the garbage collector that gcc uses is not a copying multi-generational collector, but instead a modified conservative collector (it's only conservatively scans the stack - the heap is scanned precisely). In these scenarios, usage that would be fairly efficient in Sun's VM is very inefficient in GCJ (and to some degree, vice versa - the compacting behaviour in Sun's VM can have a performance hit).

    Posted by: crnflke on March 21, 2004 at 01:43 PM

  • Bad News Either Way
    I really love your dream.. such a nice reality that would be!!
    (oh, is that tears in my eyes...)

    Posted by: elwis on March 22, 2004 at 03:59 AM

  • Great comments...
    Damn, this must be about the first time I had people
    give good comments on an Open Source Java
    discussion. If you listen to some blogs on Jroller.com
    or the people at Javalobby, you'd get the impression
    that an OpenSource Java would mean the end of the
    world. Everyone there seems obsessed with forking,
    sudden arising incompatibilities and MS taking the code
    and doing a runner with it (hell knows who would care
    about that...).

    What is necessary?
    Sun needs to put the Java standard libs (java.*, javax.*)
    under some open license (LGPL, GPL, BSD?,
    double-license GPL/SCSL,...) so that
    we don't have to wait for the GNU Classpath people
    to fetch up (still no full Swing support available in
    GNU Classpath, among other things from 1.4).

    The other thing:
    the chance for free implementations of JVMs
    or modifications of Java standard libs to be
    tested against the TCK, so that they can
    bear the "Java" logo (this ensures the compatibility
    across implementations that Jonathan Schwartz seems so worried about).

    Open Source JVM from Sun? It's not necessary;
    if they don't want to put their JVM under the GPL,
    so be it; there are free JVMs out there.

    Posted by: murphee on March 22, 2004 at 05:46 AM

  • Forking...
    I actually do not see this as a viable excuse not to open source. Java has been around for 8 years and has a huge support base including very large companies. It is in nobody's interest to "fork" Java and nobody would use a "forked" version because you could not gaurantee compatibility with the "real" Java. Control is why Sun does not want to open source Java.

    Posted by: zatoichi on March 22, 2004 at 08:25 AM

  • Great comments...
    "Damn, this must be about the first time I had people
    give good comments on an Open Source Java
    discussion."
    There are two other interesting java.net threads on Open Source/Free Software Java at:
    http://weblogs.java.net/pub/wlg/1050
    http://weblogs.java.net/pub/wlg/1030

    "the chance for free implementations of JVMs
    or modifications of Java standard libs to be
    tested against the TCK, so that they can
    bear the "Java" logo (this ensures the compatibility
    across implementations that Jonathan Schwartz seems so worried about)."
    This is the bit that a lot of anti-OS people don't seem to be capable of understanding. Without TCK compatibility, any given implementation of Java isn't really 'Java', and Sun could quite easily use their trademark rights to stamp out incompatible variants. And if there wre forks, as long as the forks were still certified Java compatible, what exactly would be the problem?

    Look:
    1) Someone forks Java, but it's TCK compatible. No problem.
    2) Someone forks Java, but it isn't compatible. Sun crushes them for trademark violation. No problem.

    Posted by: philwebster on March 22, 2004 at 11:56 AM

  • Bad News Either Way
    "It's a bad idea to kid ourselves that the technology behind the current Java VM is something that could be replicated easily in a few months, or even a few years, without a lot of excessive full-time effort. "

    Mono could be considered a fork of .NET

    Linux could be considered a fork of Unix.

    This demonstrates that when there is a will, there is a way.

    A company could implement Java for .NET, get it close enough on the first try, and then slowly migrate away from compliance either intentionally or unintentionally.

    Posted by: jclingan on April 05, 2004 at 08:53 PM

  • The right to fork
    One of the key freedoms of Free Software is the right to fork. We always know that if the apache developers go to the dark side, we can take the codebase and go off on our own. If Sun's share price drops far enough for microsoft to snap them up, where will we be? I can't imagine this convincing any Sun executives, but it is an important aspect of the argument.

    Posted by: ojw on April 06, 2004 at 12:32 AM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds