Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!rutgers!ames!ucbcad!ucbvax!UNIX.SRI.COM!jperry From: jperry@UNIX.SRI.COM (John Perry) Newsgroups: comp.sys.apple Subject: More language "religion" Message-ID: <8705220058.AA27605@sri-unix.ARPA> Date: Thu, 21-May-87 20:58:41 EDT Article-I.D.: sri-unix.8705220058.AA27605 Posted: Thu May 21 20:58:41 1987 Date-Received: Sat, 23-May-87 14:40:56 EDT Sender: daemon@ucbvax.BERKELEY.EDU Distribution: world Organization: The ARPA Internet Lines: 54 Many people have become jaded on the almost hackneyed issue of which programming languages are "good" and which are "bad". This may be due, in part, to two facts: 1) the theoretically better languages often have practical shortcomings while the worse languages often have practical features which are so handy that one is tempted to ignore structural defects and ambiguities, and 2) what can anyone do about it anyway? The problem, as I see it, lies in the origin of use of computer languages. Language use is propagated by folklore and word of mouth and, by the time a standards committee (such as ANSI) gets ahold of it, there is already such a large user base that no one wants to institute wholesale changes because that would antagonize too many established users. The standards committee acts largely as a "yes man" and is reduced to quibbling over minor features that make up less than 10% of the language. Once the huge user base evolves, the rest of us must simply learn the syntax of whichever language is the rage at the moment and become cynical because we cannot fight the inertia. If you are like me, you get the impression that whether you are discussing languages or software packages, no theoretical issues govern the discussion --- only vague quibbling over "features" and ego struggles over whose language/package will hold the majority opinion. No one will risk pruning excesses, artificialities, or ambiguities out of a bad language, nor will anyone suggest prudent additions to basically good ones. But how can we expect to discuss theoretical issues when most practicing computer professionals, who are from related fields but have little formal computer science training, practice their art as if it was little more than a bag of tricks and secret bits of knowledge meant for only the cognoscenti. The situation is akin to a musician who is technically excellent but whose playing just sounds like a bunch of notes strung together because they had no theme in mind while playing the piece. This "worldview" of programming is reinforced in virtually every journal extant. This reduces programming to simply the clever application of memorized syntax and the only criterion for a "good" program is that its contortions somehow produce correct output. Of course, this also means that a "good" programming language is one that does not enforce too much advanced thinking and can be typed in as quickly as possible --- a "syntax" that allows good memorizers to hack quickly. As long as these notions of convenience persist, and as long as the field is dominated by syntax-dominated thinking, we can expect software support groups to remain quite busy, users to retain their usual degree of marginally tolerant frustration, and the world of computer languages to be dominated by syntaxes whose complications will assure job security for lots of professionals who don't deserve it. John Perry