Path: utzoo!attcan!uunet!brunix!drc From: drc@cs.brown.edu (David R. Chase) Newsgroups: comp.lang.misc Subject: Re: GOTO vs. pointer vs. assignment Message-ID: <33944@brunix.UUCP> Date: 24 Mar 90 22:44:40 GMT References: <5200059@m.cs.uiuc.edu> <14290@lambda.UUCP> <260adcad.4abe@polyslo.CalPoly.EDU> Sender: news@brunix.UUCP Reply-To: drc@cs.brown.edu (David R. Chase) Lines: 32 In article <260adcad.4abe@polyslo.CalPoly.EDU> jdudeck@polyslo.CalPoly.EDU (John R. Dudeck) writes: >So at each level of program language evolution we have something "considered >harmful": > > FORTRAN et al - goto > C - undisciplined pointers > Pascal, Modula2, Ada - disciplined pointers > Everything except ML? - assignment > >Where is this going to end? And what is going to be considered >harmful about the functional languages? I would like to suggest: > > Functional languages - abstract beyond human comprehension :^) There's more choices than just those that you put up there. There's Lisp, which has its own problems (depending upon who you ask). The people at Xerox PARC decided that Mesa needed garbage collection , so they added it, but didn't make the rest of the language terribly much different from what preceded it. Similar, DEC-SRC and Acorn both extended Modula-2 with threads, exceptions, and garbage collection, but what remained was still essentially Modula-2. Modula-2+ was felt to have some warts, so a committee of people got together and defined (after some time) Modula-3, which is somewhat further from Modula-2, but still recognizably imperative, and quite capable of mucking around in its own run-time representation (in code marked "UNSAFE"). Anyhow, there's a wide variety of features, some useful, some useless, and no language has them all. Pointer arithmetic has always struck me as being a generally useless feature, especially given that compilers tend to do a better job of it wherever it pays off. David