[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