Hi Patrick,
Now I have a little bit time, to reply to your comment (I will also
write this reply in the forum at
http://forums.java.net/jive/thread.jspa?threadID=18036&tstart=0 ).
Yeah thanks. Please also include my other replies if you see fit.
What I'd find best for Java is something like we have in the BSD
world. Friendly competing communities, with code flowing freely in all
directions. Something similar would be healthy for Java too, having 3
implementations in friendly competetion with code flowing between them
as it fits.
I think three different OpenSource implementations would be the worst
case scenario, if Sun makes its Java OpenSource.
Ans I also think, that Suns sees so like I. And I think they want to
make it OpenSource, to have _not_ three different implementations.
I disagree. Actually there are already quite a couple of (proprietary)
implementations of the Java platform which is also fine for Sun, so why
would it be bad for Java to have a couple more?
I'd really like to see Sun, Harmony and Classpath developing and
improving Java, all in their own ways and using their own methods.
And in which part is the GNU Classpath implementation better then Suns
implementation? (from the technical point of view, not from the license
side) ?
Well, first thing is, the technical POV is not the only one important to
some parties. For example, if Sun would decide to choose to license
under GPL, that would be a problem for a reason for some parties to use
Classpath or Harmony. Then there are already a couple of VMs that are
written to use GNU Classpath and it is probably not trivial to port them
to use Sun's class libraries. Then I'm sure there are even some
interesting parts in GNU Classpath. I'm thinking about the Gnome/Cairo
peers that fit better with common Linux platforms than the Motif based
peers that Sun has. I am not sure about GNU Crypto but my feeling is
that we cover some areas that are not covered by Sun there (and vice
versa of course). In the future there could also be interesting
cooperation, I am think about the AWT/Swing area here, where GNU
Classpath could possibly focus on specialized peers and Swing L&Fs for
Gnome and KDE, while Sun focuses more on the core or something similar.
Likewise for other areas too, where Classpath and/or Harmony could work
one implementing the glue to specific platforms that Sun doesn't want to
care about etc etc.
Of course, when GNU, Sun and Apache can get together to work on one
implementation, that would be great, but very very unlikely. Just as
unlikely as a Gnome-KDE merger, or a Linux/*BSD/Hurd merger, etc.
You can not compare the GNOME/KDE situation or the
Linux/*BSD/HURD/OpenSolaris situation with the Java situation. It is
completely different.
To want a GNOME/KDE merger is like wanting a Java/.NET merger.
Ok agreed. But the comparison still holds for the different BSDs, which
are all BSD kernels/OSes with different focus.
A good comparision of the different Java-implementations would be the
situation with the different Browsers. All Internet-Browsers want to
show the internet-sides. So all takes the same resources and wants to do
the same with it.
I also don't think that it's a good idea to have only one browser. I am
quite happy that there are a couple of them and that everybody can pick
whatever he likes best. I think it's good to have IE, Mozilla, Opera,
Konqueror etc all around. The browser situation actually is a good
example why having several implementations is a good thing. Think when
IE had a marketshare of >95%. This is (arguably was) a time of
stagnation, Webdesigners forced to use ugly hacks to make their pages
load etc. Having more then one implementation in the market produces an
interesting competition and somewhat forces everybody involved to write
code that is portable.
The very same thing holds true for Java and actually we already see the
bad effects of the dominance of the Sun implementation, which is that
many developers write their code against undocumented API, against Sun
specific bugs etc etc. That wouldn't be possible when we had several
implementations sharing the market equally.
I thinnk what you and Sun (and many other devlopers) actually care about
is not having several implementations of the platform (which we already
have, even outside of the Sun/GNU/Apache world), but the problem of
keeping them together and most importantly _compatible_. That means that
a program written against one implementation should run on other
implementations too. (given that the program doesn't use non-public API
and doesn't make use of bugs/special behaviour of one impl). In order to
avoid that, Sun would need to make the TCK more open. I think this has
already been said and I don't felt the need to repeat this. So what I
think would be helpful for Java, Sun, and the GNU and Apache community
is 1) a sane license to allow cooperation and code exchange and 2)
opening up the TCK so that all 3 implementations can be compatible.
Cheers, Roman