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