The problem is that, to many Lispers, branching out from the Lisp world often feels like branching out on a random path from Rome in its glory days might have felt like - filthy, stinking barbarians abound in all directions. Personally, I feel caged whenever I am not programming in Lisp or a language with similar metaprogramming capabilities (Mathematica, for example.)
There are plenty of languages as "elegant" as Lisp, but are significantly different in "feel" and usage - smalltalk, Forth, Prolog, Haskell, Io ...
Lisp has no monopoly on elegance or "metaprogramming", certainly not to the point where the "classical rome vs stinking barbarians" analogy is valid. (This ignores the historical fact that many greeks thought the romans were loutish parvenus, but that is a story fro another day).
Macros are cool, but I don't write my own macros very often, especially when working in Clojure, which has great built-in ones. Most of the general-purpose macros implemented in, say, On Lisp have decent analogues built into Clojure or Clojure.Contrib.
Python, Ruby, et al haven't necessarily gotten as good as Lisp, academically speaking, but for a lot of purposes, they're good enough.
I think that anyone who wants to consider himself a serious hacker needs to learn Ocaml or Haskell, though, in order to gain exposure to what a good static-typing system has to offer.
Lisp (or rather, the Lisp family - the word has not referred to a specific programming language for decades) does have a monopoly on programming by way of raw syntax tree entry. The latter appears to be required for a proper macro system (though David Moon and others have attempted to change this.)
The fact is, I feel caged when I am programming in a language where I cannot monkey with the syntax at will, and I am not alone in this feeling. When I am barred from creating new syntactic constructs, I feel like a "human compiler" (in fact, exactly that which the job title "programmer" actually meant in practice before the invention of actual compilers.)
I wish to branch out to languages which feel less limiting and more general than the Lisps, not otherwise. And I have yet to encounter any. All of the good ideas of Haskell (laziness, etc.) are easily bolted on top of even a stock Common Lisp. Likewise for the other languages named. Forth, however, remains interesting due to its AK47-like simplicity and embeddability.
[citation needed]
Edit: for the unfamiliar, http://ed-thelen.org/comp-hist/APL-hist.html .
Edit: and for the other side: http://en.wikipedia.org/wiki/Criticism_of_the_APL_programmin...
Here's what I did. For a set of problems, of increasing difficulty, I would write a solution procedure, using the notation of A Programming Language I would then ask the graduate student assigned to me to:
program the procedure in any programming language he chose,
execute the procedure for a representative set of data values
give me his program and answers so that I could compare them with the specifications I had written and the answers I had previously calculated.
The result, which I still find surprising and impressive, was: In every case, what was programmed was exactly what I specified.
A rather apt analogy, as it was those filthy, stinking barbarians (and their descendants) who were mostly responsible for the renaissance, the enlightenment, and modern western society. If biology has taught us nothing else, it's that a monoculture is always at risk.
They were first responsible for the Dark Age. And that's analogous to where we are now: