Well, on a Symbolics lisp machine, which I used for a couple years you could hit an error which would pop you into emacs at the point of the error. You could edit the file to correct the error and then continue the computation from the point of failure with the new code. The Symbolics machine (its kittens all the way down…) gave me the insight that one of the most important parts of programming is the time it takes to “close the loop”. Start from the point of failure, find the failure in source code, fix the failure, recompile, and re-execute. Measure the time that takes. Call this cycle the OODA loop (after the military acronym). http://en.wikipedia.org/wiki/OODA_loop
On a Symbolics machine, the OODA loop takes seconds. In Java it can take many minutes to an hour or more. Common lisp on stock hardware takes about a factor of 10 less than Java. Your OODA loop time may vary. But the important point is that this OODA loop is a vital measure of how productive a language and its environment can be. By any measure, the Symbolics lisp machine was exceptional.
In Clojure I find that I’m constantly struggling with something to do with the impedance mismatch between the Clojure code and the Java code. A large part of this is due to my lack of experience in Clojure but I find that my OODA loop takes a long time. I can code in either language but it is the mixture of the two that seems to be the source of my troubles. Measure your OODA loop in all the languages you know. See which one cycles fastest. I’d bet that’s your favorite language.