Xref: utzoo comp.lang.c++:2128 comp.lang.c:14387 comp.lang.forth:675 comp.lang.fortran:1542 comp.lang.misc:2209
Path: utzoo!attcan!uunet!altnet!ernie!koll
From: koll@ernie.NECAM.COM (Michael Goldman)
Newsgroups: comp.lang.c++,comp.lang.c,comp.lang.forth,comp.lang.fortran,comp.lang.misc
Subject: Re: Assembly or ....
Summary: New hardware, poor compilers, special features
Message-ID: <189@ernie.NECAM.COM>
Date: 29 Nov 88 17:04:52 GMT
References: <1388@aucs.UUCP> <729@convex.UUCP> <1961@crete.cs.glasgow.ac.uk>
Organization: NEC America RATS, San Jose, CA
Lines: 30


I have tried it both ways - one project I wrote 90% in C and 10% in ASM
and the next project I tried 100% in C.  (I tried also 100% in ASM, but
we won't go into that ahem, cough, cough :) ).  I need ASM.  When you
are working on drivers or hardware specific items, C (or PASCAL) makes
assumptions about hardware that aren't true, and to do the job in C
requires using such convoluted, obscure code that maintainability and
productivity are gone anyway.  This is just as true for non-time
-critical things such as keyboard handlers as for time-critical things
such as communications handling routines.

There is also the question of what happens when a new machine (like the
IBM PC or MAC, or whatever) comes out and the C compilers for it are
late or terribly buggy, or soooooooooo slow, and there are few if
any utility packages for it ?  Users are used to (and should have !)
crisp, snappy feedback for window manipulation and I/O and it takes
years to get the utility packages (often written in ASM) that will
do that for you. 

Only in the academic world can code be written to be 100% machine
independent.  The rest of us have to struggle with those little quirks
of the chips.

In the old days, you might have needed to know about valves/tubes, now
even the hardware designers only work on the IC level, but us softies
should know about it too for that little weirdness that creeps in on us
from the ICs.

Otherwise, I agree with the arguments for portability, and
maintainability, and productivity over sheer crunch speed.