Newsgroups: comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!noc.near.net!paperboy.wellfleet.com!news-feed-1.peachnet.edu!gatech!howland.reston.ans.net!pipex!uknet!festival!edcogsci!jeff
From: jeff@aiai.ed.ac.uk (Jeff Dalton)
Subject: Re: Why do people like C? (Was: Comparison: Beta - Lisp)
Message-ID: <CxML6s.9qG@cogsci.ed.ac.uk>
Sender: usenet@cogsci.ed.ac.uk (C News Software)
Nntp-Posting-Host: bute-alter.aiai.ed.ac.uk
Organization: AIAI, University of Edinburgh, Scotland
References: <781909250snz@wildcard.demon.co.uk> <37ga57$9v8@disunms.epfl.ch> <gclement-1210940859010001@155.50.21.58>
Date: Thu, 13 Oct 1994 19:08:52 GMT
Lines: 49

In article <gclement-1210940859010001@155.50.21.58> gclement@keps.com (Geoffrey Clements) writes:
>Hi,
>
>I'm a C programmer. I'll admit it. I've been reading this thread and it
>has been interesting.
>
>I think I know why C is popular.
>
>I've programmed in: C, C++, Modula, PDP-11 68000 and 80x86 assembly,
>FORTRAN, PASCAL, Lisp, Scheme, Smalltalk, and a few other that I forget at
>the moment. Granted some of the programs were no more complicated than
>"Hello, world!". But I've tried them.
>
>Every time I need to hack up a quick and dirty tool I usually turn to my
>trusty C compiler and dash something off. I think most people do the same
>thing because it is easy to start coding WITHOUT a design in C.
>
>When you code in C++, Lisp, Smalltalk, etc. you need some kind of design
>before you can start.

For Lisp I have to disagree, and I suspect many others will do so as
well.  For one thing, Most Lisp implementations are interactive, which
helps make it easy to play around with things while you think about
them.  That declarations aren't required also makes this easy, because
you can write functions before you've figured out what types will
eventually be used.  For instance, you can write function on lists
without knowing what they'll be lists of.

However, I agree that C is very often better for quick and dirty tools
of certain sorts.  For one thing, it's not clear how to get a Lisp
program to be a standalone tool.  It's almost completely implementation-
dependent.  There are also lots of different languages in the Lisp
family, which naturally makes things vary more than they do in a
single language such as C.

If there were a standard way to write a standalone program in some
Lisp-family language, the situation would be just as you describe it
in C so far as that aspect if concerned.  And the standard way 
could even be

(defun main (argc argv)
  ...)

>People use the tools that let them
>get their job done.

Sure, but this is a different reason from the one you started with.

-- jeff
