RPG%SU-AI@sri-unix.UUCP (10/14/83)
From: Dick Gabriel <RPG@SU-AI> [Reprinted from the Prolog Digest.] In the Lisp world, as you know, there are 2 Lisps that serve as examples for this discussion: T and Common Lisp. T is based on Scheme and, as such, it is relatively close to a `pure' Lisp or even a lambda-calculus-style Lisp. Common Lisp is a large, `user-convenient' Lisp. What are the relative successes of these two Lisps ? T appeals to the few, me included, while Common Lisp appeals to the many. The larger, user-convenient Lisps provide programmers with tools that help solve problems, but they don't dictate the style of the solutions. Think of it this way: When you go to an auto mechanic and you see he has a large tool chest with many tools, are you more or less confident in him than if you see he has a small tool box with maybe 5 tools ? Either way our confidence should be based on the skill of the mechanic, but we expect a skilfull mechanic with the right tools to be more efficient and possibly more accurate than the mechanic who has few tools, or who merely has tools and raw materials for making further tools. One could take RPLACA as an analog to a user-convenience in this situation. We do not need RPLACA: it messes up the semantics, and we can get around it with other, elegant and pure devices. However, RPLACA serves user convenience by providing an efficient means of accomplishing an end. In supplying RPLACA, I, the implementer, have thought through what the user is trying to do. No user would appreciate it if I suggested that I knew better than he what he is doing and to propose he replace all list structure that he might wish to use with side-effect with closures and to then hope for a smarter compiler someday. I think it shows more contempt of users' abilities to dictate a solution to him in the name of `elegance and logical purity' than for me to think through what he wants for him. I am also hesitant to foist on people systems or languages that are so elegant and pure that I have trouble explaining it to users because I am subject to being ``muddled about them myself.'' Maybe it is stupid to continue down the Lisp path, but Lisp is the second oldest lanuage (to FORTRAN), and people clamor to use it. Recall what Joel Moses said when comparing APL with Lisp. APL is perfect; it is like a diamond. But like a diamond you cannot add anything to it to make it more perfect, nor can you add anything to it and have it remain a diamond. Lisp, on the other hand, is like a ball of mud. You can add more mud to it, and it is still a ball of mud. I think user convenience is like mud. -rpg-
simon@psuvax.UUCP (10/27/83)
Re: which mechanic would you trust more the one with fewer or more tools. If the mechanic with the many tools had them strewn around in a haphazard fashion, and I noticed that some unrelated tools were strung together, so that picking one of them up would make five others bang into the side of my car, and it seemed that some of the tools were plugged into electric outlets with no insulation on the tools to protect the mechanic, while the mechanic with few tools had them nicely set up - which is the mechanic of choice? janos simon