>>25
You can't have macros in Java.
Not ``real macros'', but any general-purpose language can be used to generate code written in a general-purpose language, thus even in macro-less languages, it's not hard to work around it, but it's usually nowhere near as nice as Lisp macros.
You can't have tail recurion in Java.
Any reason the compilers can't implement this?
You can't have REPL in Java.
Why not? I don't know about Java, but C#/.NET at least lets you compile and load code at runtime, or even replace currently running code. REPLs are not typically in use because the languages are too bloated to allow meaningful stand-alone statements (almost everything is a class definition within some namespace).