archives

Java the language vs. Java the ecosystem

I don't really like Java (probably even more so because it is my day job), but I can't deny that the tooling around it is pretty fascinating. Recently I've stumbled across some pretty exciting things with respect to concurrency bugs:

Stanford's Chord race condition static detector. (Which even uses Datalog.)

and

EPFL's deadlock avoider.

How much can a language's shortcomings be made up for with tooling?

Recursive Algorithms that cannot be expresses with Tail-Recursion?

Are there 'useful' or 'interesting' recursive algorithms that cannot be expresses with Tail-Recursion, and do you know of any examples?

P.S. Feel free to define the words in quotes as you see fit. That's why they're in quotes.