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