--- Geoff Roberts <geoffrob(a)stmarks.pp.catholic.edu.au> wrote:
----- Original Message -----
From: <Glenatacme(a)aol.com>
To: <classiccmp(a)classiccmp.org>
Sent: Friday, March 10, 2000 3:51 PM
Subject: Re: The C programming language
> In a message dated 03/09/2000 3:19:11 PM Eastern Standard Time,
> Hans.Franke(a)mch20.sbs.de writes:
>
> > I wouldn't consider C as anything 'grown'. maybe evolved in the
> > sense of degeneration.
>
> Hey, Hans, I don't get this. C is the most versatile, flexible, and
> portable language ever devised. It permits complete control of
> hardware while at the same time allowing elegance in program design
> and structure.
Allowing is the keyword here. I've seen some stuff that just took my
breath away and I've also seen stuff that made me retch.
You forgot to add "and is perfectly
comprehensible to anyone with long
experience in assembly language or machine code."
It's been said that C has all the power of assembler with all the legibility
of assembler. If you've ever taken C and compiled it on a PDP-11 and looked
at the output, you'll quickly notice that many of the "features" of the
language translate to very few instructions - it's assembler shorthand,
essentially. This, to me, is a benfit, not a detriment, but I _like_
assembler, especially PDP-11 MACRO (and it's relatives like the MC68K)
I don't have any Uni level CS under my belt, and
that seems
to be what's needed to comprehend it.
Rubbish. My first language was BASIC (like so many kids in the late 1970s),
followed quickly by 1802 and 6502 machine language (no compiler - stuff
entered in hex), then, about six years after I started programming, C. Working
at SRC in 1984, I saw that we had a UNIX machine nestled amongst the VAXen
running VMS. It was a VAX-11/750 w/2Mb RAM and two RK07 drives. I don't have
the drives (they were discarded in 1992), but I do have _that_ 11/750
(s/n BT000354) now upgraded to 8Mb w/SI9900, Fuji Eagle, etc. We swapped out
different sets of RK07 packs to run various Unices to conform to the
customer's configuration - 4.0BSD, 4.1BSD and SYSIII, IIRC. I still have the
VAX SYSIII tapes somewhere, but who knows if they are still legible after
all this time. Anyway, way back then, I'd heard about UNIX and decided I
wanted a piece of it. I got an account, borrowed a copy of the K&R book
and used it as a reference to write my first C program. It was an
abomination as far as style goes, but it did work - it converted a text table
of board handle numbers into a formatted picture of the contents of all of
our PDP-11 and VAXen, a job I'd do today in perl and probably HTML.
What I've found from personal experience is that to really _learn_ a
programming language, I need a project to keep me going past the learning
cliff. With 6502 assembler, it was hand-compiling Scott Adams' adventure
engine from BASIC (a story I've been happily able to share with him many
years later); with Java, it's my program to calculate sunset/sunrise charts
for my Antarctic web page; with Inform it was translating Zork from MDL. It
can be a monster project or a few dozen K of source, but the important part
is having a motivational goal to complete. I never learned a programming
language in school, only by rolling up my sleeves, going into larval mode
once again and banging out a fun project.
Just for the record, I am very fond of C. Yes, atrocities have been
committed in it, but it's right up there with perl and assembler as
my favorite tools to get the job done. Just be sure that you use the
right tool for the right job.
-ethan
=====
Even though my old e-mail address is no longer going to
vanish, please note my new public address: erd(a)iname.com
The original webpage address is still going away. The
permanent home is:
http://penguincentral.com/
See
http://ohio.voyager.net/ for details.
__________________________________________________
Do You Yahoo!?
Talk to your friends online with Yahoo! Messenger.
http://im.yahoo.com