Path: utzoo!attcan!uunet!husc6!ukma!rutgers!njin!princeton!udel!new From: new@udel.EDU (Darren New) Newsgroups: comp.software-eng Subject: Re: What's a PC? (What's the best environment) Message-ID: <5315@louie.udel.EDU> Date: 10 Nov 88 21:22:44 GMT References: <5182@louie.udel.EDU> <62959@ti-csl.CSNET> Sender: usenet@udel.EDU Reply-To: new@udel.EDU (Darren New) Organization: University of Delaware Lines: 49 In article <62959@ti-csl.CSNET> pf@csc.ti.com (Paul Fuqua) writes: > >That's the point: it's not the language, per se, it's the integrated >environment. Lispms just seem to be better-known. And, gradually, >environments for lesser languages are catching up to those that already >exist for Lisp and Smalltalk (check out Saber-C). > >So what got Lisp and Smalltalk there first? My vote goes to the >object-oriented aspect of both languages, which is also filtering out to >lesser languages (I see C++ as a broader dialect of C). > Funny... I feel that the object-oriented aspect is much less important. After all, I can imagine a non-object-oriented environment (lisp) in which I am just as productive as in Smalltalk. Personally, I think the browsers (system browser, debugger, inspector, ...) and the predefined classes (views, collections, ...) are the main contributors to productivity. Also, the almost instant turn-around fromchange to test is vital. Of course, the o-o aspect is important in supplying such abilities. Languages like (say) Pascal or Ada will not lend themselves easily to "random access" code browsers. Lisp, of course, is much better at this due to the lack of nesting of functions and complex scoping rules. Another great feature is the ability to save complex hand-created data in the "snapshot" file. In a language like C, I would have to either write a file-in/file-out routine or recreate the data at each run. The ability to save the state makes testing much easier. In Lisp, the print and read functions supply the file-in/file-out routines for any (non-circular) lisp data. In my opinion, both Smalltalk and Lisp supply nice development environments, but possibly through different mechanisms. > It also supplies real structure > for your data, instead of forcing everything to look like a list. > >Most modern Lisps provide lists, arrays, structures, and "objects" (as >in Flavors or CLOS). > > pf But it doesn't supply Rectangles, Debuggers, Contexts, CompilerParseNodes, ... One of the advantages (and disadvantages) of Smalltalk is that EVERYTHING is an object, including your execution stack, your mouse, your compiler, your menus, your screen, your source, your object, and so on. Even error messages are messages sent to objects. Can you add multiple inheritance (cleanly) to your OO Lisp? (Not to bash Lisp, you understand. I just enjoy looking at ideas taken to extremes... like Smalltalk, Lisp, Forth, ...) > >Paul Fuqua >Texas Instruments Computer Science Center, Dallas, Texas >CSNet: pf@csc.ti.com (ARPA too, sometimes) >UUCP: {smu, texsun, cs.utexas.edu, im4u, rice}!ti-csl!pf