* it's actually just as if not more portable than Java
* being both embeddable and extensible is nice
* having a standard externalization scheme is nice
* the ability to "freeze" / dump standalone executables is nice
* it's amenable to formal techniques that allow compilation
* higher-order functions
There's still some weirdness with scoping rules, some semantic
sloppiness in how functions are *really* dealt with, and the standard
implementation is far from optimal, but I suspect all that will get
better with time.
I too much prefer Scheme from a language purists standpoint, but this is
just another case of the philosophical struggle between having many ways
to do something in a language and having a minimalist language in which
there's generally a single "obviously correct" solution. I don't know
why that struggle exists, maybe because people don't really want to sit
and reason about their code, they'd just rather test and tweak until it
works. ;-)
jb