Subject: Re: benefits of LISP? From: Erik Naggum <erik@naggum.net> Date: 2000/11/23 Newsgroups: comp.lang.lisp Message-ID: <3183972350982104@naggum.net> * "Esteban" <hook@catfish.net> | As a Lisp beginner, I am very interested in the comparative value of | LISP. I'm not trying to fuel any flames, either, but you won't see the comparative values of (Common) Lisp as a beginner, and especially not as a beginner programmer, but I assume you are somewhat experienced or you probably wouldn't have discovered Lisp to begin with. | What are Lisp's fortes? It is by far more natural for some programmers to think in than any other programming language available. To those who "think Lisp" and discover it, there is not so much a question of fortes of Lisp, but of relief from all the pain they experienced expressing themselves in other languages. This point really cannot be underestimated, but it is also very hard to explain to people. It also comes across as so arrogant to people who cannot fathom that people are fundamentally differently "wired" and that forcing people to work against their wiring is really detrimental to their productivity and even happiness that they write off the whole language and start to hate it -- for _exactly_ the same reasons that Lisp people feel pain about other languages, so they unwittingly underscore and prove the point with their own hostility to a language that rubs _them_ the wrong way. There's an hypothesis in language theory that states that languages determine what we can think about, called the Sapir-Whorf hypothesis. Even if it is not actually provable or has to be weakened before it is true, it is an important contribution to our understanding of the relationship between language and expressibility. I believe (in) this hypothesis and I'm willing to argue that it is more true of artificial languages than it is for natural languages, in that artificial languages are intentionally restricting by their very nature: There are large areas of human communication needs that are expressly intended _not_ to be covered by artificial languages. This means that the ease of expression will have been optimized, and optimization for particular purposes is the worst possible thing you can do to a language -- it may well be the best argument in favor of the strong Sapir-Whorf hypothesis -- humans do not do what is more difficult than the perceived average effort required or even the "effort baseline": If it is too hard to do, it must be wrong. This is a very good thing in any encounter with the physical world -- applying excessive force to anything (other than the arm of George W. Bush so he quits whining) is usually a sign that some important relationship is being violated. | How might Lisp be compared to other languages? Through a very careful process of looking at how programmers approach problem-solving in different languages. Any problem can be solved in any language. It is not the solution that is interesting, it is the process of arriving at it, because that is what programming is about. Programming is _not_ about staring at finished code and solutions. Using software is different from creating software. Using software does not involve appreciation for the programming language, creating it does. E.g., in the C world, they write tiny little programs that say "hello, world!" and such to demonstrate how to get "interaction" from the environment, but some people then get the lunatic idea to count the number of bytes in the source file and the binary image, ignoring every relevant aspect of such numbers. In the Common Lisp world, we have interactive environments and find writing a "hello, world!" program about as exciting as writing echo "hello, world!" to a Unix shell (except if it's some BSD csh derivatie crap that whines like a presidential candidate about that exclamation mark, in which case you just follow the old adage "If at first you don't succeed, cry, try again"). | To what sorts of problems and projects is Lisp particularly adapted? Absolutely everything, nothing excluded, that Lisp-thinking programmers will turn their attention. | What are the pros and advantages in favour of Lisp? The biggest advantage of all is that it actually fits very well with how some programmers think. I cannot stress this enough. Programming is a thinking process and you need to be able to express your thoughts in a way that is natural for you. Something about Lisp appeals so strongly to some programmers that there is no need for any other pro, forte, or advantage. The language is up to it, too, that's the really scary part. John Foderaro has been quoted putting the essence of Lisp in one sentence: "Lisp is a programmable programming language". This is not for everybody, and everybody should realize that not all people can even begin to approach a programmable programming language, but if you can, there is no limit to what you can do with it. (There may be a limit to what others can understand that you have done if you take it too far, but that is a management problem, not a language problem.) If you think programming computers is a worth-while task, programming the language you use to program the computer should be such an obvious and strong advantage that everything else just pales to insignificance in comparison. What we need, however, is a little better ability to tap into the vast resources of the native compiler and make it produce code without necessarily going through standard Common Lisp forms. (Allegro CL has a "low-level lisp" that can be used in this fashion, but it is not documented, nor is it intended to be used, externally.) #:Erik -- Solution to U.S. Presidential Election Crisis 2000: Let Texas secede from the Union and elect George W. Bush for their very first President, relieving the rest of the world.