That's one of the worst examples, but my overall feeling is that dynamic languages on the JVM aren't worth it. You're probably better off with an independent language environment.
It's not only fear or laziness; I know two very good programmers who have tried Lisp and don't like it. Interestingly, both are Smalltalkers, though one was of the original generation that migrated to Java.
I wonder if it's that some people like thinking in trees and some don't. Human language has barely any nesting. Putting one parenthetical phrase inside another is already rare and that's just two levels. Parenthetical nesting is so difficult for humans to process that there's even a well-known hypnotic induction based on it (that essentially creates a stack overflow in a person's brain).
One of the guys I'm talking about has a programming style that's markedly linear (though not procedural). He likes chaining expressions together almost like noun phrases in English. For example, where in Lisp you'd write
(min y (max x 0))
he might write: x.atLeast(0).atMost(y)
It's a trivial example, but enough to imagine more complex ones. The difference is dramatic if you think of a tree with many levels and the comparable unwound form. Of course, not all trees can be unwound in this way.The converse is true, though: all chains of this form could be converted to s-expressions, so it's easy to imagine embedding this style into Lisp with a macro. That's the sort of thing that gets talked about naively, but never catches on. I think it would be a losing proposition. You'd lose Lisp's regularity, which is one of its greatest advantages. And the resulting programs would still have plenty of s-expressions, so you'd end up driving away the same group of people after all.
http://www.cs.brown.edu/~sk/Publications/Talks/SwineBeforePe...
It doesn't address the s-expr situation directly, but Dr. Krishnamurthi plays a devious trick to show you why they aren't scary.
Thus, the lack of a batteries-included Lisp might well be more significant than a fear of s-expressions. Hopefully Arc will one day reach the point where I can sneak it into my workplace as I have done for Python. At that point the fear of s-expressions will hopefully be irrelevant.
Heh, there is no fear or laziness here. I am a 32-year-old who grew up with Pascal, learned FORTRAN in college, wasted a few years working in Java, and have done Python for a few years. All the time I am moving up the scale towards more powerful languages. I started learning LISP this year, and so long as I stay within the LISP runtime I'm a happy bunny. At the boundary between LISP and the outside world, tho', I keep hitting obstacles that Python breezes through without a pause.
The lack of libraries is a significant problem, certainly to anyone who wants to use LISP in an existing environment, no matter how motivated they are to do so, given the constraints that a good-enough language already exists and the expectation that integrating the code with everything else is essentially a solved problem.
Sometimes it's not clear if that's really the problem, or if it's more the perception (and the fact that the perception gets repeated a lot) that's the problem. Hence my question earlier in the thread.