[comp.lang.c] Philosophy of C

dsill@NSWC-OAS.arpa (Dave Sill) (01/20/88)

In article <4186@eagle.ukc.ac.uk> "H.A.Shaw" <has@eagle.ukc.ac.UK> writes:
  [much editing]
>What people appear to be forgetting is what C is for.
>We have forgotten that C was originally a system programmers language.

Right.  What C "is for" and what C was originally are two different
things.  C's popularity these days is a testament to its suitability
for other tasks.

>C is one of a nearly infinite group of languages, each is good at
>only ONE job.

Right again, C is good for programming computers.

>As a final point, when I was an undergrad in Physics, the Computing Lab refused
>to teach C, as it was possible to pick up very bad habits from its freedom.
>We were told that programming was like walking.  One should learn in a
>cushoned, small space before being let out into a big field where if you fall
>nobody will catch you.

This really ticks me off.  You don't learn to be careful with guns by
shooting blanks.  Yes, C will let you do things you probably
shouldn't, at least until you know what you're doing.  But when you're
ready to use them they're there, and you don't have to learn a new
language first.

>I wholeheartedly agree, and hope I write better C
>programs now for three years of BASIC/PASCAL/FORTRAN/FORTH first.
>They did teach [C] to third year Computer Scientists sometimes.

This is much too late.  Computer education should proceed from a
hardware overview to machine language to assembler language to low-
level compiled languages on up to high-level compiled languages.
Teaching BASIC/Pascal/FORTRAN/Forth/etc first is like teaching algebra
before arithmetic.

BASIC is a bad joke.  The bad habits that it imparts on students are
particularly hard to unlearn (first impressions are lasting
impressions).  It oversimplifies the hardware-software interface to
the point where it seems, to the student, to be performing magic.  C
on the other hand, is more transparent.  It allows the student to see
the gears turning.

>PS:
>	If hack had been written in DDL or something similar, would
>net.sources.bugs have all the traffic it now does?

The number of bugs might be different, but the code would still be
buggy.  No language can preclude semantic errors.

=========
The opinions expressed above are mine.

"I shed, therefore, I am."
					-- ALF