After reading Gosling’s posts on Java and whether open-source makes sense when applied to the Java platform, I have to admit that my interest in open-source Java is a means not an end. I do think Sun’s control over Java in the present form is a problem, but I am not at all clear on the appropriate solution. Got stopped for a while on this point.
A bit later I ran across a discussion about Linux desktops and how Gnome was implemented in C, and KDE was using C++ code. Ack. My personal belief is that code of this sort should be written in something higher level (like Java) rather than C/C++, so this just strikes me as wrong. On the other hand the most likely alternatives are Java or Mono. Sun’s Java does not ship with most (all?) Linux distributions, and certainly is not a guaranteed part of the basic installation. Presumably this has something to do with Sun’s licensing. Mono is a great idea, but copying Microsoft seems a risky strategy.
Java is most useful when it is everywhere. One good end-to-end test for Java licensing would be if the Sun JRE shipped with all the mainstream Linux distributions as a part of the basic installation. Sun will need to adopt a whatever-it-takes attitude to make this happen.
Mono came about in part because Microsoft’s notion of a Common Language Runtime is indeed a step upwards. Sun’s JVM is good at supporting Java-like languages, and perhaps not much else. The ability to have near seamless integration between languages is, from a programmer’s perspective, extremely cool.
A good end-to-end test would be to host Perl on the Sun JVM, and do whatever-it-takes to make Perl on the (J)VM outperform the current Perl 5 interpreter. This entails some careful profiling and likely some small changes to the VM, and should obviate the need for “Parrot”. I fully expect the fancy JIT compiler in the JVM to out-perform both the Perl 5 interpreter and “Parrot”. Perl is sufficiently different from Java so that once the VM can support Perl well, likely all the mainstream languages will perform well.
Maybe we do not need open-source Java
Open-source Java is a means to make Java more prevalent, but what we are really interested in is the end result. The above two tests measure the prevalence of Java (or more exactly the JVM) in two independent dimensions. In the end it does not much matter which path Sun takes, as long as we get where we need to go.