[comp.sys.apple] A reply

jperry@UNIX.SRI.COM (John Perry) (05/21/87)

Weak type-checking is for people with large egos who like languages which
permit an infinite degree of "cleverness".  Such languages, like C, are a
throwback to the days when program input was done on punch cards and,
therefore, people were overly concerned about writing terse programs so that
data entry wouldn't be so costly. 

"Sophisticated" languages, like Lisp, Prolog, and C are grotesque
invitations to error, egocentric programming, and unreadability ---
especially in C with its overreliance on pointers which are ambiguous
references by definition.  In my opinion, Lisp and Prolog have actually been
a large factor in the current problems experienced in the AI community
(buggy products, overshooting all deadlines, poor market acceptance, poor
user-friendliness of products, etc., etc.).

A  sterling example of all of this is in the area of word
processing/typesetting packages where Donald Knuth, ** all by himself **,
came up with a series of such packages (TeX, MetaFont, LaTex) which are
considered the state of the art in the word processing/typesetting area.
And he used the language considered the least practical language in the
world for such grandiose purposes Standard Pascal.  And he used NO
pointers.  

Finally, in the case of C, the language is so full of goofy bugs (like
the scanf "feature" of having to collect the newline), cryptic syntax
(e.g. its FOR loop), and inconsistent restrictions (you can assign
records but you can't assign arrays) that it rather amazes me that it
has gained such universal acceptance.  Almost everything about the
language is counterintuitive (like the system calls where the destination
string is the first parameter and the source string is the second) ---
even many UNIX gurus I know keep a  C manual by their side because, even
after coding megalines, they still need to consult it often.  

The progress of languages such as Modula-2 and Turing may be slow due
to sunk-cost principles, the earlier arrival of (ugh!) Ada, and many
political and economic considerations --- but I think reason will
ultimately win out and roust out the ticking bombs currently so
popular in software engineering.


                                            John W. Perry