Path: utzoo!utgpu!watmath!clyde!att!pacbell!hoptoad!tim
From: tim@hoptoad.uucp (Tim Maroney)
Newsgroups: comp.sys.mac
Subject: Re: The Mythical Man Month
Message-ID: <5996@hoptoad.uucp>
Date: 6 Dec 88 02:00:19 GMT
References: <6176@fluke.COM> <10330092@accuvax.nwu.edu>
Reply-To: tim@hoptoad.UUCP (Tim Maroney)
Organization: Eclectic Software, San Francisco
Lines: 50

(Gee, I wonder if anyone has brought this discussion to Fred's attention....)

In article <10330092@accuvax.nwu.edu> bob@accuvax.nwu.edu (Bob Hablutzel)
has been writing:
>1) Assembler is not portable. Fine. Who cares? No seriously, think about this:
>when you start to worry about portability, you start shooting for the lowest
>common denominator. Programs should _not_ be portable for machines like the
>Macintosh - you will be putting blinders on yourself, and forcing yourself
>to ignore features of the machine. (Data files, on the other hand, do not
>depend on the machine as heavily, and should be portable).

Um, have you written much software?  An awful lot of software is in the
form of distinct modules which could theoretically be used in lots of
different programs with no changes.  For instance, encryption or
database-file packages, or network protocol implementations.  There's
every reason for this kind of software to be as portable as possible
across OS and processor lines.

>2) Assembler does not immediately lead to the dreaded spaghetti code.
>Assembler can be (almost) as structured as Pascal, but doesn't get in your
>way when structured programming is a pain.

Baloney.  Even VAX assembler isn't as well-structured as Pascal or C.
If you have to simulate structured constructs using GOTOs, it isn't
structured.  If you have to write arithmetic expressions using two or
three operand arithmetic, it isn't structured.  The constant necessary
use of GOTOs makes spaghetti code almost impossible to resist -- "This
almost works -- all I have to do is put in a conditional branch bavck
to instruction 32!"

>3) I also disagree that assembler is inappropriate for large projects, but 
>I've had enough flaming for today.

On this point, I think I agree, more or less.  There really isn't any reason
assembler can't be just as modular and well-defined as high-level languages.
It's less self-defining, at least as usually written, but large projects
require external module specifications anyway.

>Look - enough. 99.9% of the world doesn't like assembler, finds it about kin
>to toggling in programs by hand. My GOD! Assembler! That's older than Fortran,
>even, and must be worse. I just don't find this to be the case.

Read this paragraph again before flaming me for putting down your breadth
of expertise in my first paragraph, Bob....
-- 
Tim Maroney, Consultant, Eclectic Software, sun!hoptoad!tim
"I was brought up in the other service; but I knew from the first that the
 Devil was my natural master and captain and friend.  I saw that he was in
 the right, and that the world cringed to his conqueror only from fear."
    - Shaw, "The Devil's Disciple"