Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!rochester!pt!theory.cs.cmu.edu!dld From: dld@theory.cs.cmu.edu (David Detlefs) Newsgroups: comp.lang.misc Subject: Re: Mesa is a dreadful language? (look all are ALGOL based) Message-ID: <1063@theory.cs.cmu.edu> Date: Tue, 14-Jul-87 11:00:56 EDT Article-I.D.: theory.1063 Posted: Tue Jul 14 11:00:56 1987 Date-Received: Thu, 16-Jul-87 05:31:24 EDT References: <764@unc.cs.unc.edu> <1120@killer.UUCP> <1064@ur-valhalla.UUCP> <2350@ames.arpa> Organization: Carnegie-Mellon University, CS/RI Lines: 43 Summary: Basic agreement, minor difference... Eugene Miya makes a very valid point -- whenever I hear people arguing over the relative merits of, say, C and Pascal, I immediately lose interest in the discusssion, and some measure of intellectual respect for the participants. The same goes for people who complain that having to type out keywords is one of the major impediments to their getting their work done -- MAYBE they are such great programmers that the limit on their productivity is typing speed, but I doubt it. However, while I agree with the spirit of Eugene's post, I would like to disagree with some particulars (thus, probably becoming just the kind of person I'm complaining about, but this bboard is not meant for rational discussion anyway.) I would agree that C, Pascal, Mesa, the Algols, and the Modulas form a rough equivalence class. I think there is a very important difference between these and Fortran, however: Fortran does not have a pointer type. To create a linked list in Fortran takes some pretty fancy gyrations. (I'm not sure, but isn't Jovial similar in this regard?) Maybe the latest versions of Fortran have raised it into the above equivalence class; I don't know. Eugene mentioned that CLU was his favorite language that he didn't get to use; it's my favorite language also, and I don't get to use it. I think perhaps a reason we both like it is also a reason it doesn't belong in this equivalence class: it offers garbage-collected heap storage. In this respect it is more like a strongly typed Lisp than it is like any of the other languages. (I think maybe the DEC implementation of Modula II uses a garbage collector as well?) Anyway, system implementers have often commented that some very high percentage of the bugs in systems implemented in langauges from the first equivalence class are due to the complexities of storage management. I think that the elimination of these bugs by using garbage collection forms a valid basis for distinguishing these langauges. To move this discussion up a philosophical level -- I think a much more interesting discussion than "Is language X better than language Y?" is "What are the axes along which languages differ, and which points in the design space formed by these axes work well?" Missing CLU, Dave