[PRL] [plt-internal] Video of Clojure talk
Dave Herman
dherman at ccs.neu.edu
Fri Oct 3 08:41:36 EDT 2008
> Btw, Dave or anyone else, do you know whether there *is* a JSR on
> tail calls and where it ranks?
No, I don't think there is one. The two URLs that have gone by in this
thread, as well as this:
http://openjdk.java.net/projects/mlvm/
http://openjdk.java.net/projects/mlvm/subprojects.html
http://openjdk.java.net/projects/mlvm/faq.html
are the only leads I've seen. I believe the only JSR so far that deals
with non-Java languages is JSR-292 (the "invokedynamic" bytecode
instruction). But in the FAQ they say they're experimenting with various
extensions, some of which they may propose as extensions to the JVM.
Some of the projects include continuations, tail calls, better support
for non-reference types, and lightweight bytecode loading.
> Java lost the play when it came to the client Web. Had their lunch
> eaten by a pipsqueak language that you, Dave, know more about than the
> rest of us. They might have won on desktops, but every desktop is
> migrating to the Web. So instead Java is thriving on servers, which
> have no need for tail calls, and on mobile phones, which only have
> room for phone calls. So this won't happen.
You mentioned that Sun doesn't distinguish Java and the JVM. That's been
true in the past, but they know and several language developers know
that the JVM does great in a multicore setting. Both Fortress and
Clojure are doing this. Java, of course, mostly sucks at concurrency and
is struggling under the weight of its success and various midlife
crises. So sure, Java long ago lost on the web, and sure, Java the
language will likely never see tail calls. But the JVM can acquire a
tailcall instruction without changing Java the language! Just look at C#
which according to Joe still doesn't use the CLR's tailcall instruction.
Anyway, I should stop making a plausibility argument. Time will tell. I
remain cautiously optimistic that Sun realizes that a) independent of
Java, the JVM is a real competitive strength for Sun, b) multicore and
HPC are a tantalizing opportunity for the JVM to shine in non-Java
contexts, and c) other languages that are promising to improve the JVM's
popularity free of cost to Sun have just a handful of requests, and
several of them are requesting tail calls.
Dave
More information about the PRL
mailing list