[Gllug] One more time...
Pete Ryland
pdr at pdr.cx
Wed Jun 11 01:24:26 UTC 2003
On Wed, Jun 11, 2003 at 01:30:05AM +0100, Nix wrote:
> On Tue, 10 Jun 2003, Pete Ryland mused:
> > On Tue, Jun 10, 2003 at 08:21:55AM +0100, Nix wrote:
> >> `This language can't adapt to new abstractions well! Use it now!'
> >>
> >> `Java: write once, crash the VM everywhere.'
> >
> > How about: 'Many to Many .java to .class Mapping! Pay now by credit card
> > and as an added bonus also receive Late Binding!
>
> > Say goodbye to Makefiles
> > forever!
>
> This is actually useful, in theory. A compiler with interunit
> optimization can benefit from being shown *all* the sources...
>
> ... of course, Sun's javac coesn't have significant interunit
> optimization. But this is good preparation for the days when it will
> have.
And with late binding you can supposedly re-compile running code. I'm still
waiting.. :-)
> > And say hello to recompiling everything every time, and not being
> > able to compile to native machine code!'
>
> Well, again, the latter is a failing of javac, not of the language.
> Distinguishing between Java-the-language (impoverished, like most Algolic
> languages), the JVM (a rather nice, if rather Java-specific, virtual
> machine)
Hmm.. I have to question that the JVM is nice. I would have thought that a
3AC machine would have been much better than a 0-address one. Then
machine-specific optimisation would be easier, amongst other minor benefits
like slightly smaller code size. I guess on the other side of the balance
is the added complexity of the interpreter.
> the toolchain (in Sun's case gratuitously different from C compilers and
> not terribly good at optimization) and the Java libraries (a fucking mess)
> is important, I think.
>
> (GCJ can, of course, compile to either native code or .class files.)
I haven't looked into native-code compilation of Java in about seven years
(it was my thesis topic), and therefore I don't know how gcj does
native-code compilation, but IIRC the late binding (that is, for those who
don't know what I'm talking about, that a method call, for example, is
referred to *by name* in calling code and only resolved when the call is
actually made) basically kills any benefit you might get from compiling a
class natively.
Pete
--
pdr - Pete Ryland - http://pdr.cx/info/about/
'The glib supposition of utilizing atomic energy when our coal
has run out is a completely unscientific Utopian dream, a
childish bug-a-boo.' - Robert A. Millikan, 1928
--
Gllug mailing list - Gllug at linux.co.uk
http://list.ftech.net/mailman/listinfo/gllug
More information about the GLLUG
mailing list