C Community's Cavalier Attitude On Software Reliability

John A. Weeks III john at newave.UUCP
Mon Feb 26 13:23:11 AEST 1990


In article <8147 at hubcap.clemson.edu> wtwolfe at hubcap.clemson.edu (Bill Wolfe) writes:
> Following are some prime examples of why the C community is thought 
> of by many as having an unprofessional and irresponsible attitude 
> toward software reliability:

> [ ... List of bugs in software that Mr Wolfe is probably using for FREE ]

Bill,

I take great exception to your accusing me of being unprofessional.

I can write really good or really bad code equally well.  The difference
between the two is the amount of time that I am allowed, and how much
I am being paid. 

> When examples such as these are combined with the existence of so many
> blatantly unsafe constructs within the C language, and the fact that C

            ^^^^^^ read "useful"

> software seems to erode public confidence in software reliability on a
> regular basis (Nationwide Computer Network Infected By Worm; National 
> Telecommunications System Crashes), ...

Would you feel better if the networking code was written in BASIC?
I bet someone would have to modify BASIC to allow exponential format 
for the line numbers.  Didn't Church prove that you can develop an
equally poor implementation of a problem in any language?

>                                ... it would seem appropriate to ask:
>   When is the C community going to clean up its act???

The big issue is economics.  You can have the current nationwide
network for X dollars, or a "totally secure" network for many times
more than X.  Please think about three facts:

	1. Totally secure is not possible (nor is totally reliable)

	2. Extra levels of security will probably reduce overall
	productivity at all levels, so you can multiply X a few
	more times.

	3. If the cost were much higher, would it exist at all?

If my managers doubled our development budget, we might improve
the quality of our already excellent products.  But more likely,
management would rather have us turn out twice as many products.

> It appears that there is a real need to publicize software engineering 
> concepts throughout the C community, both directly through software
> engineering education ...

The solution to an economic problem is an economic solution: pay good
programmers well, pay poor programmers poorly.  As long as poor
programmers are in heavy demand, poor code is going to be written.
The economics will dictate the accepted level of education (my theory
on why MBA's are so popular).

If you wish to construct a top-notch product, hire top-notch programmers
with a proven track record, and pay them well.  If you hire an overworked
grad student for $3.65 an hour, you may find that your employee might not
really care about doing a good job.

>                   ... and indirectly through a redesign of the C language
> to provide greater support for the software engineering process.

Isn't one version of ADA enough?

> If not, government regulation of the field will probably soon become
> inevitable.

Yea, right.  Like government regulations keep seedy people out of the 
legal profession.  And MD's never let drinking problems affect their work.

I used to work in an industry that required all workers to have federal
permits.  There were some very good and some very poor radio technicians,
but most were in the average category.  Now that the FCC no longer 
requires federal permits for radio workers (only for radar and for federally
regulated installations...like air traffic control), the industry still
has the same mix of people.  Some good, some bad, but most are average.

The bottom line?  If you have a problem with a program, do not blame
the programmer.  Aim the questions at his or her management.  Management
is ultimatly responsible for all software projects, whether it be a
Microsoft sized company or a professor with 1 part-time student worker.

(I exempt the wonderful software that is posted by USENET people from
this discussion and from my "bottom line".  Freeware is in a class
above this discussion.)

-john-

-- 
===============================================================================
John A. Weeks III               (612) 942-6969               john at newave.mn.org
NeWave Communications                ...uunet!rosevax!bungia!wd0gol!newave!john
===============================================================================



More information about the Comp.lang.c mailing list