Re: RFC: JVM Registry
[ Another late reply from me. ]
My gut reaction is that this is the right thing.
Currently, I think most of us would agree, Debian packaging of Java
software is not that successful. I think this is in part due to the
variety of available implementations of various portions of the
various Java platforms. Unless there is a prospect for this
situation to improve in the near future, Ben's registry is not
overkill, it is pretty much what the problem requires.
There are two ways I could imagine the situation improving:
1. The Debian Java world converges on a few standards. This is a
nice thought, but we are a good ways off. As Per Bothner said in a
previous thread, "There is no 'standard' set of standard libraries."
Unless I misunderstand him, he meant that the labels "Java 1" and
"Java 2" aren't very relevant, given that the free implementations
are far from either.
2. The Debian Java world converges on one or two implementations.
This would also be nice, but also hard to imagine. We would
presumably want to favor a free implementation, but there is no
clear front-runner among these, they all have differing
capabilities, and the non-free implementations offer considerable
practical advantages over all of them.
So while I agree it would be ideal and should be a goal to just run
"/usr/bin/java MyClass", I doubt it will be feasible soon.
Assuming that the proliferation of unequal implementations will
continue, at least we must cope by parameterizing them. The problem
is, I don't think I know--and I'm not sure any of us knows--what the
right parameterization is. I think we collectively need more
experience with the incompatibilities that actually affect programs
we want in Debian. We can all cite one or two examples, but does
anyone have a wider perspective? (I ask this hoping that someone
will step up and offer one.)
As an obvious example, Ben's RFC nowhere mentioned AWT support.
While this is usually supplied as part of a runtime distribution, it
could also be an add-on using an extension interface such as CNI,
KNI, or JNI, or even as pure Java classes implementing the X
protocol. So, how is a program to know whether AWT support is
available, and if so which JVM to use and how to ensure that the AWT
libraries are found?
Of course, this doesn't mean that we shouldn't give Ben's proposal a
shot as a first try.