[comp.misc] Newest programming skill

gary@percival.UUCP (Gary Wells) (02/20/88)

As most of you know, Ada is _THE_ new US Gov't, especially military, programming
language of choice.  Designed by military committee, it has all the 
disadvantages of both a compiler and an interpreter, since it does both.  
Anyway, it will be what SDI programs are written in, as well as any new programming for Social Security, IRS, etc.

From an ad in the February 1988 edition of _NASA Tech Briefs_, Vol 12 # 2,
placed by "alsys", promoting their newest Ada offering:

blah, blah, blah
.
.
.
"It will develop that most elusive skill: the Ada programming intuition to
guess right."
.
.
.
More blathering

I don't mean to picking on anybody, especially "alsys", who, after all, are only
trying to make a living.  But since when is an abilty to "guess right" part
of a good programmers skills?  I don't know about you, but I don't want to trust
my survival (no flames; I support SDI strongly!), or my taxes, or the local 
traffic light to "guesses", right or wrong!

Can't you just see some little microcontroller embedded in a smart rocket, 
saying "I guess that looks like a Soviet tank", and taking out an ice cream
truck?  Or one of OUR tanks?  Wanna trust the IRS with a program that was built
on "guesses" ("Honey, why does the IRS say we owe them $3million dollars?").
How about a traffic light? (If north-south just turned "green", I guess I 
shouldn't let east-west stay green much longer).

Remember "Machines should work.  People should think."?  I propose we change it:

"If machines are guessing, I'm going back to rocks and pointed sticks"

What an awful thing to find out about a programming language named to honor the
first programmer, who certainly didn't "guess"!
-- 
--------------------------------------------------------------------------------
Still working on _natural_ intelligence.

gary@percival

mwm@eris (Mike (My watch has windows) Meyer) (02/21/88)

In article <1105@percival.UUCP> gary@percival.UUCP (Gary Wells) writes:
<But since when is an abilty to "guess right" part
<of a good programmers skills?

As long as I've been programming.

	The best way to solve a problem is to guess the right answer,
	and then prove it's right.
	- Dr. R. V. Andree

It's _much_ easier to demonstrate that an answer is right than to find
a right answer from the empty set. For example, having done drop-in
consulting for students, the difference between them trying to figure
out why their programs blew up and me trying the same thing is that I
can look at the output, and have a feel for what they did wrong. Having
"guessed right," it then becomes a simple matter to check their program
listing to "prove I'm right."

	<mike
--
He was your reason for living				Mike Meyer
So you once said					mwm@berkeley.edu
Now your reason for living				ucbvax!mwm
Has left you half dead					mwm@ucbjade.BITNET

dee@linus.UUCP (David E. Emery) (02/23/88)

Posting-Front-End: GNU Emacs 18.47.1 of Sun Aug  2 1987 on faron (berkeley-unix)


gary@percival.uucp writes:

<first quoting from an Alsys ad>
>"It will develop that most elusive skill: the Ada programming intuition to
>guess right."

>But since when is an abilty to "guess right" part of a good
>programmers skills?  I don't know about you, but I don't want to trust
>my survival (no flames; I support SDI strongly!), or my taxes, or the
>local traffic light to "guesses", right or wrong!

The issue here is, I suspect, not making the 'software' guess, but
rather developing programmer intuition on how to use the language.
Much of programming is a creative process, and, for any
language/system/paradigm, there is a learning process on how to best
use the features of the language.  C shows this a lot; there is a
large set of C 'tricks' on how to use the language. 

Ada, due to its size and its greater power, offers the programmer a
much bigger bag of tricks (Ada generics alone offer incredible
potential).  I think (at least I hope) this is what Alsys meant in the
ad.  If so, they worded it poorly.  My experience has been that a
great number of my Ada 'tricks' are those that depend on the compiler
to check errors.  In other words, I do a lot more 'defensive
programming' in Ada, and let the compiler tell me when I screw up.
One example:  In Ada a case statement MUST cover all alternatives.  To
make sure I've trapped all parts of the case statement, I won't use an
'others' clause, and if I missed a case, the compiler will complain.
Then, I'll add the 'others' clause, to protect myself.  

No, this isn't any great thing, but there are a zillion different
tricks in Ada, some of which are useful at a given point.  A
programmer needs to develop the intuition to determine which tricks
are usable.

			dave emery
			emery@mitre-bedford.arpa