[PRL] [plt-internal] Video of Clojure talk

Shriram Krishnamurthi sk at cs.brown.edu
Thu Oct 2 19:57:45 EDT 2008


> I suspect that whether tail calls end up in the JVM has little to do with
> whether they are a good thing. It seems more likely to be a question of
> whether clients that matter to Sun are demanding it.

That was implicitly my point.

Sun has almost always known of the goodness of tail calls, at least
since 1997 or so, when they hired Guy.  But Java programmers don't get
it.  Matthias tried to tell them why they should care in his ECOOP
invited talk, but unfortunately he was talking to academics, who are a
hopelessly wasted audience.

As a result, there is no clamoring from clients.  Is this even a JSR?
If it is, where does it rank?  (Is there a futures market for it?)

Rather, there's clamoring from guys who do something that undercuts
Sun's business model (there's a reason Sun uses "Java" to refer to the
two different things that Hickey wishes to distinguish, the language
and platform).  I suspect Sun views these implementers are general
amusements, helpful for spreading their platform but unimportant in
the grant scheme of things, and dangerous if they get too big.
Clojure, Fortress and Scala combined have, what, 1000 users?  Now if
Python had tail calls, and that Python-Java thing were the most
important Python platform, we'd have something to talk about.

Not that even a high-ranked JSR guarantees much, anyway.  Robby's been
saying for years that contracts are one of the highest-ranked JSRs.
Contracts are unambiguously good, even Java developers understand what
they are and why they're necessary, bloggers talk about it with hope
and yearning and fond memories of Eiffel, there are papers to explain
how it should be done well (or even how to do it poorly, if you choose
to read Robby's papers backwards a la Led Zep albums), and...

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.

Given the circumstances, if you're going to design a language *for the
JVM* -- as Hickey made unambiguously clear -- you have to do something
about this, not wait for Godot.

Shriram

PS: It goes without saying that I'd be delighted to be proven wrong.



More information about the PRL mailing list