Original post by Anonymous Posterquote:It won't suffice, not by far. When writing a single function, I might find it handy to use pattern matching, continuations and dynamic closure. You might be able to find many languages with the features you want but you wouldn't be able to interoperate between several languages so easily. If you have to change language after every few lines, you'd be writing more interfacing code than normal code. In fact, it'd be so hard that one would in most cases settle for a sub-par solution within a single language. The jumping between several unrelated languages becomes unbearable or practically impossible, if you really want to use many different features from several languages.
Original post by Predictor
Why not use more than one language?
And those languages, even when combined, still wouldn't be able to give me all the features I can do with macros. There are lots of uses for macros that extend the language in such a way one would never expect to see in some "pre-written" language, because those features would be so highly dependent on a single problem field, or even just your particular application.
Who said anything about changing languages "every few lines"? I think people here are talking past each other.
The claim was made that Lisp provide some unspecified advantage over other languages. Knowing that Lisp cannot possibly be better than all other tools under every circumstance, my question is: Under what circumstances does Lisp provide a real advantage?
Most computing tasks which are in commercial demand are fairly well studied, hence the development of relatively specialized languages and related tools (macro languages, development environments, debuggers, etc.). My contention is that these tools (C/C++, SQL, Perl, Fortran, whatever) when used in combination, as they are in real work offer two important qualities: 1. sufficient syntactic elegance to adequately represent useful solutions to common problems and 2. efficient use of available system resources.
Is there some bizarre situation which could be dreamed up, under which Lisp would dominate other, more popular tools? Sure. What I wonder is: What fraction the actual programming effort that is undertaken on this planet is covered by such situations? It's obviously greater than zero, but I doubt its more than a few percent, if that.
Most of the examples given thus far of Lisp's presumed advantage are technically cool, but I don't see that they provide a general advantage. The thing about needing to be more intelligent to use Lisp seems completely backward to me: How is a tool being more difficult to use an advantage? Color me old-fashioned, but I think for most computing tasks, conventional tools will continue to dominate the field. I can't imagine someone simulating Fortran (or, insert any of a dozen other languages here...) in Lisp and getting any kind of run-time performance.
[edited by - Predictor on February 22, 2004 2:24:06 PM]