classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Working On Classpath


From: Andrew John Hughes
Subject: Re: Working On Classpath
Date: Mon, 07 Jun 2004 01:14:03 +0100

On Sun, 2004-06-06 at 22:02, Arnaud Vandyck wrote:
> Andrew John Hughes <address@hidden> writes:
> 
> > [...] Given the length of time that the Free Java projects have now
> > been active, it amazes me that so little consideration is given to
> > alternate VMs and compilers by the Java community, especially for
> > FOSS.
> 
> Sun and IBM are the most contributors of open source java
> community. Most of Jakarta, Netbeans, Eclipse, Jikes, Tomcat, Xerces,
> Xalan, etc. Why do you want them to use JVM they do not ship? or they do
> not certify? Certification is an important thing for Sun (and for their
> customers).
The point is that Java code should not be dependent on any particular
JVM, and should only use code from the documented API (java.* and
javax.*) or other libraries.  Sun even state this in their
documentation, regarding com.sun.*.  Both current versions of Tomcat and
Ant, by __default__, rely on the existence of com.sun.* packages in
tools.jar, which are only part of Sun's Java SDK (not even Sun's JRE has
them, but then the code is for compiling).  These APIs are undocumented
and deliberately so.  Sun notes that they can even change between APIs,
so this is not just a JVM problem, but one that exists if, say, a new
version of Sun's JVM doesn't include tools.jar (perfectly possible,
AFAICS).
As I see Java, there are three disparate concepts: the JVM, the compiler
and the class library.  I would say its clearly simple good design to
not make these parts rely on particular versions of another.  Java code
should only really rely on the documented class library, and not a
particular JVM or compiler.  Even outside the Free Java implementations
and licensing issues, there are good reasons for other JVMs and
compilers to exist.  For example, the GNU/Linux Sun JVM is clearly not
as well developed as that for other platforms. Some aspects don't work,
AWT still uses a Motif look when most systems use GTK or Qt, etc.  I'm
not berating Sun for this, but merely suggesting that this is a clear
reason, outside licensing issues, that someone would want to produce an
alternate implementation.  gcj also clearly shows why we have alternate
solutions -- personally, I think a native Java is much more usable in
the long one (for one thing, it can hopefully remove some of those damn
classpath problems). 
Certification, as far as I'm aware, regards compliance with Sun's
specified API and wouldn't require com.sun.*.  The name shows that these
are clearly related to Sun, rather than the Java platform.
Interesting, would this situation be treated differently if someone was
dependent on code from MS rather than Sun?
> 
> Also, because of Sun not making java a 'standard' (iso, ecma, etc.), and
> java not being free, free community had (or had had or has had?) a lack
> of interest in java. So most people hacking on free java (or open source
> java) projects comes from WinWorld. It's amazing to see the commits,
> call for help, etc on jakarta mailing lists... most users run
> Windows. Same thing on a lot of Open Java projects on Sourceforge.
> 
No doubt, and there are good reasons for this:

* Like it or not, Windows is the more well-used platform.
* The Sun Java compiler is probably the first taste many Windows users
have/had of programming using a zero-cost development suite (remember
Windows doesn't come with a compiler).  Back in the early days of Java,
as I recall, it was suggested as a good starting language merely because
of this (if I also recall correctly, a book I read regarding 1.1 also
spoke of this).
* Java allows Windows developers to write code under Windows, and yet
support those who use other operating systems.  Can be a good or bad
thing...
* Windows shipped with Java (does it still? -- not sure on the current
situation as regards the lawsuits).  No GNU/Linux distribution can
legally, due to Sun's license (notably, the thing that makes Sun's
GNU/Linux distribution a Java desktop is that they can legitimately do
this...sigh)

Platform aside, there are good reasons for having a Free Java
implementation.  For one thing, it gives plenty of code for beginning
developers to look at ;-).  There are of course also the usual
advantages of Free software, especially as regards bugs.
One thing I do think the Windows community still have over us by a long
shot is Java within the browser.  Is the OJI project still active for
Mozilla, and will we see a Free Java plug-in at some point?  It would
definitely give us a lot more test-cases, and simpler ones at that ;-)
Something I would like to look into, if anyone has any pointers...

> Now, with the progress of free JVM's (and yes, you can apt-get kaffe
> ;-)), maybe the FOSS community will have some interest in this wonderful
> programming language.
> 
That's the hope -- although the huge changes Sun makes with every
revision doesn't help (AFAICS, 1.5 will involve a huge change in
java.util for one -- don't know what the backwards compatibility will be
like with that).  I really think Java needs to be seen more in the FOSS
community, especially as it tends to be used a lot in the homeland of
web serving.  This is especially true, as .NET tries to win over the
Windows market.  Java would give the FOSS community a more safe and
secure language than C/C++ for one thing.  I think there are still
problems Sun need to iron out though -- the lack of unsigned types is
one, especially when reading binary data (for instance, how do you deal
with an unsigned long -- presumably you have to use a BigInteger...) 
> Correct me if I'm wrong,
> 
> Cheers,
Cheers,
-- 
Andrew :-)
 
Please avoid sending me Word or PowerPoint attachments.
See http://www.fsf.org/philosophy/no-word-attachments.html
 
Value your freedom, or you will lose it, teaches history.
`Don't bother us with politics' respond those who don't want to learn.
 

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

[Prev in Thread] Current Thread [Next in Thread]