The Monthly GNU Column

Brave GNU World

Georg C.F. Greve

This column explores the world of free software from the perspective of the GNU Project and the FSF. In this issue, we focus on: The Java Trap, GNU Classpath, development in Java, and news from the FSFE.

Welcome to another issue of the Brave GNU World. The focus this month is Java; we will look at the subject of freedom and, more specifically, at the efforts to establish a free Java infrastructure.

Freedom in Chains?

To judge from the number of email messages I received from irate readers in response to my discussion of the Mindmapping Software Freemind, I seem to have trodden on a few people's toes. The reason for the flames was a statement that Freemind, like many other programs, is thoughtlessly based on a non-free Java implementation, which endangers the freedom of the software.

Many of the responses said something like, "Java is not free, but it's not entirely non-free." Of course, freedom comes in lots of different flavors, but the Java implementations by Sun and IBM are unquestionably non-free based on the accepted definition of free software.

The existence of free libraries for these implementations and environments does not change the situation in the least. Being able to wiggle your fingers is not going to break the chains around your feet.

As is so often the case, Richard Stallman explains this really well in his article "Free But Shackled - The Java Trap" [5]. According to Stallman, the "Java Trap" always snaps shut when you start thinking that proprietary implementations are "free enough" or "no problem."

In the Java Trap

Many distributors are in the process of tackling this issue right now, and some manufacturers are even considering removing free Java implementations from their CDs, as much of the software will only work with non-free implementations.

Also, as the Debian project discovered, there are legal issues [6]: Sun's Java JRE license does not allow the environment to be distributed with alternatives - in other words, it actively restricts the propagation of free Java. As a consequence, any software that needs the Sun JRE effectively blocks the development of alternatives.

Escaping the Java Trap

To escape from the Java Trap, programmers need to base their development work on free Java implementations. Developers need to be more cautious as to how they use the Java language.

The only permanent solution would be for Sun either to extend the free Java implementation to match generally accepted standards, or to change their licensing policy. Unfortunately, Sun recently refused to do this. Sun's actions have placed even more emphasis on free Java implementations.

Figure 1: Eclipse running with the Kaffe JVM.

GNU Classpath

GNU Classpath [7] was launched in 1998, a GNU project to promote the development of free Java core libraries for use with virtual machines and compilers. The project was launched by Geoff Berry, Jim Blair, Brian Jones, Paul Fisher, Aaron Renn, and John Keiser with development focusing on Japhar, although the intention was clear from the outset that GNU Classpath should be available for other runtime environments.

In 2000, GNU Classpath joined forces with the Libgcj project, which had been working on the GNU Java Compiler class library from the GNU Compiler Collection. This merger doubled the number of active developers.

A steadily increasing number of runtime environments started using GNU Classpath in 2001 and 2002 - mostly in research but also in production.

More than 20 environments now support GNU Classpath - from the Kaffe JVM (shown with Eclipse in Figure 1) to IKVM.Net, a Java and .NET interoperability toolkit from the Mono project.

GNU Classpath is released under the General Public License (GPL), however, there is a proviso to ensure that the license does not cover Java programs that use GNU Classpath. This proviso gives developers the freedom to release programs developed with Classpath under a license of their own choice.

Figure 2: GNU Classpath is accepted by many other projects.

If you are interested in keeping abreast with GNU Classpath developments, the web page at [9] offers daily updates on work relating to the GNU Classpath project.

Developing in Java

Now that a free software basis for Java has been established, there are no more excuses for writing programs that require proprietary implementations such as the Sun JRE. And it will be even easier to write completely free Java-based software in the future.

Apart from technical considerations, there are no general arguments against the use of Java. Future concerns are more likely to be focused on removing dependencies from existing projects; this is something that becomes more and more difficult as the project grows. If the projects include functions for which a free counterpart is not available, the developers have two options: they either need to implement the function differently, or they can add the function to GNU Classpath.

Because Sun has apparently decided that the freedom of Java developers and users is not important, it is up the Java community of developers, users, and distributors to take action. A common theme in business is "Your brand is not what you say it is, it is what others say it is." If we apply this axiom to Java, Java is not what Sun says it is, it is what the community of developers says it is. It's time to stop waiting for a third party to give us freedom. The free software community should establish free Java implementations as a de-facto basis for our own projects, applications, and distributions. Free Java is the only way for Java developers, users, and distributors to steer clear of the Java Trap.

News from the FSFE

The Free Software Foundation of Europe (FSFE) [10] has been growing. Three new organizations have officially become affiliated organizations of FSFE - Wilhelmtux in Switzerland, Fundacion Via Libre in Argentina, and Vrijschrift.org in the Netherlands. FSFE now has a total of eleven partner organizations in ten countries.

The FSFE does not focus exclusively on Europe; instead it is part of a global network of organizations. Thinking alike is more important than geographical proximity. The FSFE is an unusual organization that does not easily fit in with established schemes. This is why the FSFE released a self-conception document [12] in August 2004 to describe how it sees itself.

The FSFE has also been working with the European Commission, explaining the dangers of Microsoft and Time-Warner taking over DRM specialists Content-Guard and defending the freedom of the Samba project at the European Court.

At the same time, the FSFE continues to work at the United Nations level. Recent efforts have focused on the World Intellectual Property Organization (WIPO). Within the context of WIPO, many contracts and global views have arisen that could affect today's free software environment. WIPO has influenced the debate on software patents and is the origin of the Digital Millennium Copyright Act (DMCA) in the USA, as well as the European Copyright Directive (EUCD) in the EU.

Instead of trying to clean up after the event, which is what the www.privatkopie.net initiative is attempting to do with respect to the EUCD ratification in the German legal system, the FSFE applied for a position as a WIPO observer last year.

The member states agreed to accept FSFE `s application for observer status at the last WIPO [13] meeting, allowing the FSFE to send its own delegation to WIPO meetings. This is a good time for the decision, as there is growing concern about the role of WIPO with respect to repressive legislation and its effects.

Based on a proposal by the FSFE, a wide coalition of individuals and organizations now support the widely acclaimed Geneva Declaration, which demands a reorientation towards a "World Intellectual Wealth Organization" [14].

That just about sums up the FSFE's current activities - check out the FSFE website for more details. The site now has RSS newsfeeds and a monthly newsletter [15].

Info

[1] Send ideas, comments, and questions to Brave GNU World: column@brave-gnu-world.org

[2] GNU project homepage: http://www.gnu.org/

[3] Georg's Brave GNU World homepage: http://brave-gnu-world.org

[4] "We run GNU" Initiative: http://www.gnu.org/brave-gnu-world/rungnu/rungnu.en.html

[5] Article: "Free But Shackled - The Java Trap" http://www.gnu.org/philosophy/java-trap.html

[6] Debian GNU/Linux Java FAQ - Chapter 5: http://www.debian.org/doc/manuals/debian-java-faq/ch5.html

[7] GNU Classpath: http://www.gnu.org/software/classpath/

[8] Kaffe JVM: http://www.kaffe.org

[9] Daily updates for GNU Classpath developers: http://planet.classpath.org/

[10] Free Software Foundation Europe: http://www.germany.fsfeurope.org

[11] FSFE on software patents: http://www.germany.fsfeurope.org/projects/swpat/

[12] FSFE Self-Conception Statement: http://www.germany.fsfeurope.org/about/self-conception.en.html

[13] FSFE WIPO project: http://www.germany.fsfeurope.org/projects/wipo/

[14] WIWO declaration: http://www.germany.fsfeurope.org/documents/wiwo.en.html

[15] FSFE newsletter: http://www.germany.fsfeurope.org/news/newsletter.en.html