From: lasner@watsun.cc.columbia.edu (Charles Lasner)
Subject: Re: The need for an assembler (was: Favorite CPU)
Reply-To: lasner@watsun.cc.columbia.edu (Charles Lasner)
Organization: Columbia University
Date: Wed, 26 Aug 1992 06:55:33 GMT

In article <id.S2JS.OND@ferranti.com> peter@ferranti.com (Peter da Silva) writes:
>In article <1992Aug18.052636.23004@news.columbia.edu> lasner@watsun.cc.columbia.edu (Charles Lasner) writes:
>> b)	I think academia would resent your slur,
>
>Probably. I'll stand by it.

I think giving a generic slur like that is quite pompous; I have my own
problems with academia, but I don't condemn them as you do.

>
>> c)	I've done that about 8-9 times including the part about running the
>> first time (that it was done, assembly-error free, and perused a reasonable
>> amount of time to get rid of obvious problems.) 
>
>What, an operating system? Ah well, you're obviously a super-programmer and
>can deal with the detail needed to do substantial amounts of code in assembly.

No, I don't think I'm a "super-programmer" rather that in the group of people
I started in this industry over two decades ago with, I was probably in the
lower one/third.  I think all that has happened, is that like academia, the
standards have dropped, and now there are too many people who think they
deserved the label of "programmer".  I would relable them "non-robust code
shoveler".  This is not to imply that there aren't genuinely talented people
out there, just that there are quite a few not-so-talented ones.  And I still
don't see it as any mean feat to have written many operating systems, whereas
you seem to think that writing one, whether real-time or not, is a "great"
accomplishment.  Perhaps my standards are higher than yours, and I position
myself lower on my own yardstick.

>
>> I don't see a connection
>> between academia and lack of real-time, or is that an oblique reference to
>> money versus theoretical, because I've done both.
>
>I don't know of any significant real-time project or product in the academic
>world. Even in the commercial world, real-time is pretty esoteric.

I have seen a lot of pure horseshit that claimed to be "real-time" in the
commercial world; I have spent many man-months (non-mythical) rewriting some
of them.  Some of the ideas to be applied to decent fixed and floating
real-time comes from academia.

>
>> I think others may have differing opinions about the statistics behind that.
>> I offered an open challenge for someone to quantify how many bugs they might
>> attribute to various language-based implementations of any code released by
>> any author on any basis, to rate the use of the various languages as that
>> pertains to reliability of product.  I don't see anyone challenging my
>> opinion that C would come in dead last.
>
>In terms of the ease of generating bugs per unit line, I'd put C, assembly,
>and PL/M at about the same level. They all force you to operate too close
>to the grindstone for my liking. The advantage C has over assembly is that
>it takes quite a few less lines to do a given task.

Again, depends on the task; there are whole avenues of real-time technique
that you can't even express in C.  Anyone who hasn't seen real-time interrupt
handling and foreground code written as co-routines has severely shortchanged
their education.  People who have avoided assembler unfortunately are in
that category.  Ask *anyone* who has actually had the experience.  Two
different e-mailers to me lamented this independently, one working on a 
current RISC design :-(.

>
>> I would think that writing buggy
>> code in C qualifies at least in part as not knowing what goes on under
>> the hood so to speak.  Presumably all of these "experts" you claim exist 
>> (aren't they "experts" since they aren't as ignorant as I make out?)
>
>No, just competant.
>
>> had
>> full access to all of the associated wonderful development tools to 
>> eliminate all known problems, etc., so if so, then why the failing grade?
>
>What wonderful development tools? I use vi, make, lint, and cc.

So, in your book, a competent person is someone writing in C, who really
hasn't a clue in the "under the hood sense" yet is expected to not make
unreasonable amounts of programming errors, while is statistically likely
to not comment well, and is also likely responsible for at least their
fair share of the errors found in the released code of this world.  I'm glad
that they may be other measures of competency :-).

>
>> I have friends who are of the opinion that C is more like a demented
>> macro assembler being misused with the "wrong" macroes, but I won't let
>> my personal friends bias the count here.
>
>Well, it's pretty close to assembly... but I find the macros it uses just
>fine.

Spoken like a hll-bigot.  How can C be closely related to assembler when
it is by definition an abstraction of only some of the more "generic" features
of certain machines, ignoring pieces of all of these and other machines which
are only accessible via assembler?  Indeed, the usual argument given to use
C is to *avoid* what assembler offers!

cjl