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