hp's article on Java and other nice languages
While I'm typing this, my fellow GNU Classpath hackers are busy creating and improving a free software Java class library that's not only licensed under more reasonable terms then the non-free implementation, but also rivals it in terms of performance and aims to be the better choice in the long run.
Almost every free software implementation of a Java runtime out there (and a few non-free ones) is using GNU Classpath as the Java class library of choice, including even IBM's own JikesRVM. The progress GNU Classpath has made in the last year alone through this immense cooperation effort is mind-blowing. Nowdays, you can not only run tools like Ant or Tomcat on free runtimes like Kaffe OpenVM, you can also run complex enterprise applications like OfBiz and Eclipse.
If people write *portable* java code, and stick to the implemented classes or work together with the GNU Classpath developers on implementing the missing bits, like Havoc suggests, I think free java runtimes could turn 'write once, run anywhere' from an over-hyped marketing joke into reality.
Unfortunately, some open source java projects don't write portable code. They use internal classes in sun.* packages, which makes them about as portable as Microsoft applications using undocumented Win32 functions. Some people write code that only works because their unwritten (and often unwarranted) assumptions about the runtime their code was written on held true. It's the same with C, or C++: writing portable code takes care in any language.
But, the good thing about the free runtimes is that they can take Java applications where no other runtimes can take them: you can compile things down to native code, run it on non-mainstream platforms like embedded PowerPC chips without an FPU, combine Java code with .Net ... And the great thing about it is, that most of the free Java runtime developers are not building their own little lock-in solutions, but are instead cooperating on creating a larger playground for everyone, by sharing knowledge and code.
I boldly predict that Java-Gnome on free runtimes will rock the Linux application world in the years to come. Java-Gnome applications are going to make sure free Java becomes a success on the desktop. Free software enterprise applications like OfBiz, JBoss, Jonas etc. will do the same for the server side. The major stumbling stone right now is the unportable java code in popular free software libraries and applications like OpenOffice.org, and people using features that are not implemented in free runtimes yet. Those are technical and educational problems, that can be solved with a little bit of good-will from all parties.
If the non-free java runtimes ever become free software, it will be because the alternatives becoming good enough to surpass them, not because of third parties begging the copyright holders to free them from the shackles of the restrictive licenses. There is no interest for Sun in a free software Java implementaion right now. If the alternatives start making inroads onto the server side, they may be inclined to reconsider their licensing scheme. Just like Trolltech did, when alternatives to Qt started becoming useable to create whole desktop environments, let alone applications. So if we want a free software Java platform, our best bet is not writing open letters to Sun, and begging them to donate code, but working on a better, freely licensed implementation instead. In the long run, "Le mieux est l'ennemi du bien". We can chose to attempt to reach the best, or to take what others assure us is good enough on their restrictive terms.
That aside, it would be great to see Sun and IBM take the plunge and turn their Java runtimes into free software today rather than tomorrow. But there is no business case in it for them, as far as the responses to the open letters go.
On the other side of the Java runtime world, free runtime developers collaborate between each other, and there is a lot of interest in better cooperation with the projects over the language fence (Mono, dotGNU, parrot). I believe that in a few years, the debate 'Java, C++ or C#' may look like an anachronism from the old days, when such questions were relevant, before free software implementations weren't superior to non-free ones. Just like the question 'Solaris, GNU/Linux or Windows' is gradually turning into a sure shot for GNU/Linux.