[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