Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!necntc!ima!think!barmar From: barmar@think.COM (Barry Margolin) Newsgroups: comp.lang.lisp Subject: Re: A Decent Environment. Where is it? (some flame, some advice) Message-ID: <11639@think.UUCP> Date: Wed, 11-Nov-87 11:07:54 EST Article-I.D.: think.11639 Posted: Wed Nov 11 11:07:54 1987 Date-Received: Fri, 13-Nov-87 22:59:18 EST References: <21493@ucbvax.BERKELEY.EDU> <2630001@hpfcmp.HP.COM> <177@utah-orion.UUCP> <12076@beta.UUCP> <178@utah-orion.UUCP> Sender: usenet@think.UUCP Reply-To: barmar@sauron.UUCP (Barry Margolin) Organization: Thinking Machines Corporation, Cambridge, MA Lines: 67 In article <178@utah-orion.UUCP> shebs@orion.utah.edu.UUCP (Stanley T. Shebs) writes: >In article <12076@beta.UUCP> dzzr@beta.UUCP (Douglas J Roberts) writes: > >>HA! The 15 or so of us in my group who have experimented with Knowledge >>Engineering Environment (KEE) and LISP running on a SUN would *swear* >>that UNIX folks had never heard of software development tools! > >This is a very puzzling remark. Unix systems were the first to exploit >the idea of using tools instead of big, fancy, and inflexible systems >(recent years have seen a proliferation of such systems in Unix, though). >Perhaps there's a misconception - when I say "tool", I have in mind the >software equivalents of hammers and screwdrivers and bench saws. I think the two of you are talking about different things when you say "software development tools". Everyone knows that Unix is built on a toolbox philosophy. Unix provides many tools for use in applications. However, Unix is lacking many tools that directly aid the programming process. The most significant lack is in the debuggers. I don't think there are any Unix debuggers that even come close the Symbolics Lisp Machine debugger. Unix is twice as old as Lisp Machines, and you'd think that with all the zillions of lines of C code that have been written for Unix there would be some really amazing debuggers by now. On the contrary, I suspect that there are still a large number of Unix programmers using adb, not even source-level debugging. >Getting back to software, there is *no* programming environment designer >clever enough to anticipate what I want to do. They're better off supplying >a set of simpler tools that can fit together in different ways. In Unix, >the interface is a character stream, which is good for text and general file >processing, but bad for Lisp. A tool-oriented Lisp environment would >presumably use S-expressions as the basic interface, although one would >probably need some sort of lazy version, so that heap space isn't exhausted >by the creation of one intermediate object. I don't understand this point. I create lots of intermediate objects all the time while debugging and prototyping in Lisp. > Useful operations include >many already in Common Lisp, such as sorting, set operations, and reversing, >but extended to operate on incompletely-defined things. Most of these operations are generalized to some extent in Common Lisp; in my view, this was one of its most significant innovations. All the set, list, and sequence operations take options specifying how to operate on the elements; for example, SORT lets the programmer specify a comparison function and a function for extracting the key, and set operations let you specify the equality function. > Generalization of >streams is a good thing as well. (For some more ideas like this, see the >Fraser/Hanson paper on the EZ programming environment in POPL 85.) > >A classic example of tool usage in Unix is the one-line spelling checker; >I have yet to see any Lisp programming environment support anything quite >as elegant and useful. You can do an amazing amount in one line of APL, too, but that doesn't make it a great language (please, no flaming from the APL enthusiasts). --- Barry Margolin Thinking Machines Corp. barmar@think.com seismo!think!barmare