>>9
You missed the fact that Lisp allows much more powerful abstractions than Java offers.Of course, you can do some of those things in Java, but it will be a lot more painful than in Lisp, maybe painful enough that few people would even bother doing them. Java doesn't allow all kinds of fancy things as it's designed to be a simple language for the average coder. The
[b][u]ENTERPRISE[/b] needs replaceable code monkeys, and they need their code to be easily maintained (hopefully) by random coders they hire, which is possible since Java is simple and SUN has pushed it enough into schools, that everyone knows it.
As for examples of such abstractions, I'll give a simple one:
About 10 minutes ago I wrote a local macro which generates a comparison/arith function which operate on some special kinds of data I have made before this. After that I wrote 2 more lines to write another macro which generates instances of that macro for a given number of functions, after that I just wrote:
(def my-special-type > < /= = * -)
within the body of the local macro, and I was done. It took a total of 8 lines for the 2 macros and the actual definition line.