Path: utzoo!censor!geac!torsqnt!lethe!yunexus!ists!helios.physics.utoronto.ca!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!zaphod.mps.ohio-state.edu!uwm.edu!psuvax1!rutgers!bellcore!mbr From: mbr@flash.bellcore.com (Mark Rosenstein) Newsgroups: comp.lang.lisp Subject: Re: Is this the end of the lisp wave? Message-ID:Date: 16 Jan 91 12:32:23 GMT References: <127724@linus.mitre.org> <18944@ultima.socs.uts.edu.au> <5420@idunno.Princeton.EDU> Sender: usenet@bellcore.bellcore.com (Poster of News) Reply-To: mbr@breeze.bellcore.com (Mark Rosenstein) Organization: Bellcore, Morristown, NJ Lines: 76 In-Reply-To: eliot@phoenix.Princeton.EDU's message of 16 Jan 91 07:22:16 GMT In article <5420@idunno.Princeton.EDU> eliot@phoenix.Princeton.EDU (Eliot Handelman) writes: From: eliot@phoenix.Princeton.EDU (Eliot Handelman) Newsgroups: comp.lang.lisp Date: 16 Jan 91 07:22:16 GMT References: <127724@linus.mitre.org> <18944@ultima.socs.uts.edu.au> Sender: news@idunno.Princeton.EDU Organization: Princesspool University, New Jersey Lines: 19 Yes, I miss this style of programming: (defun grev (lis) (cond ((null (eval (caaadddadr lis))) (eval (caddadddaaadr lis))) ((gremfrnk1 (caddadadr lis) 'glork 'fzt nil nil nil 'ftzwk) (append (eval (cons (concat (cons 'flm (cadr (explode (cadddadar lis)))) ) (eval (cons 'list (caddadr lis))))) (list (cadadadddar lis) 'brkvt))) (t (grev1 (list 'grk 'frmp nil nil nil nil nil nil nil))))) Simple, yet elegant. Nah. "Our goal is that students who complete this subject should have a good feel for the elements of style and the aesthetics of programming. They should have command of the major techniques for controlling complexity in a large system. They should be capable of reading a 50-page-long program, if it is written in an exemplary style. They should know what not to read, and what they need not understand at any moment They should feel secure about modifying a program, retaining the spirit and style of the original author." from: "Structure and Interpretation of Computer Programs" Abelson, Sussman You can write bad code in any language. Maybe even Snobol? I believe with the macro facility of lisp, and keyword args, and the string stuff, it is possible to generate an understandable and more importantly maintainable version of the above. I would argue to get a fundamental feel between the difference of C and Lisp, look and think hard about the differences between CLX and the C version of Xlib. The use of keyword args, the use of objects, a major part of the decomposition of the problem is different, yet with the same functionality. Look and decide which fits your style. Also which goes into a break loop with wrong argument, and which goes into a segmentation fault core dumped (oops sorry, and environment issue accidentally cropped up :^)) More fundamentally, I don't understand the: "If I understand it, I'd build it in C" and the obesity argument. When I program in C, I'd be using C++ and X, and maybe some other stuff. Look at how big Xclock is. Real programmers don't need window systems? (or hash tables? or string manipulation? or object systems? or io?) If you want the functionality you have to pay a price. Not that I don't want my lisp vendor to try and slim things down, but to get to a full functionality C program, it isn't going to be small. Maybe it's if I understand it, and it doesn't do much, I build it in C? This isn't fair, and I know it. But I think the overhead of Lisp is smaller when you have bigger things. I dunno. I honestly have no idea why lisp isn't more widely used, or if we played back history and say Perq won the workstation contest instead of Sun, it wouldn't be more likely that lisp would be more widely used. Maybe there'd be hundreds of people declaring how wonderfully clear variant records are? I dunno. Mark. ----- "C is a flexible programming language that gives a great deal of freedom to the programmer. This freedom is the source of much of its expressive power and one of the main strengths of C,making it powerful, versatile and easy to use in a variety of application areas. However, undisciplined use of this freedom can lead to errors." from: "C An Advanced Introduction" Gehani