Subject: Re: Why do people like C? (Was: Comparison: Beta -
From: Erik Naggum <erik@naggum.no>
Date: 16 Oct 1994 12:44:39 UT
Newsgroups: comp.lang.lisp
Message-ID: <19941016T124439Z.enag@naggum.no>

[Mark Hopkins]

|   And there you have it, the essential difference and the preference for
|   C.  One language gives you the option to include X in Y or not, and the
|   other does not.
|   
|   In general, this will argue for any low-level language with an
|   unencumbered implementation (e.g., no behind-the-scenes subterfuges or
|   processes), which simultaneously also has an abstraction facility in it
|   to allow you to write applications in as high a level manner as you
|   want.  In other words, a language that is low level and high level at
|   the same time.

have you looked behind the scenes of the C language recently?  it's naïve
to believe that nothing wild is going on.  for starters, see malloc and
free.  then look at longjmp.  then at the calling sequence and techniques
for variadic functions compared to non-variadic functions.  take a look at
the stack frames of function calls in C programs when you feel ready to be
let down.

have you looked behind the scenes of those "high-level" programs done in C?
they're implementing badly what lisp compiler builders have worked on,
specifically, to make efficient, not kluge up to make their programs run at
all.  this difference of focus makes the behind-the-scenes view of such
applications much, much less appealing than that of a language with real
support for these things.

because of the mess behind the scenes in C, you can't even build all the
real languages you want in it without either too much overhead or lots of
non-portable assembly code.

|   One might also look at the syntax as an obvious reason a preference for
|   C.

obvious?  I think you should look at C's typedef when you have some spare
time.  and be sure to take a close look at the "macro preprocessor".

|   LISP, itself, was never meant to be a purely bracketed language.  That
|   syntax was designed as a holdover until the language could be complete
|   -- a first generation in a bootstrapping process.  It's just that the
|   McCarthy never got around to finishing his project.  Undoubtedly, part
|   of the reason was that Context Free Grammars were hardly even known
|   back then.

could you provide some references for this history lesson?  I'd like to
update my insufficient view on this one.

|   LISP is, after all, the second oldest language in common use.

so?  how long do you think C will survive the test of time, or C++?

I thought I knew all there was to know about programming, and found it more
and more boring as time went on.  then I had to use C++, and since that is
the most horribly kluged language in popular existence, I started to look
around for real languages.  it has been a humbling experience.  so much fun
is going on in functional languages!  not just syntax, but ideas, concepts,
principles.  and, what's worse, it's been going on for decades.  it's just
that I lost out on all this while I thought C was the Language.  bummer.

#<Erik>
--
Microsoft is not the answer.  Microsoft is the question.  NO is the answer.