Newsgroups: comp.lang.lisp,comp.lang.c++
Path: cantaloupe.srv.cs.cmu.edu!bb3.andrew.cmu.edu!newsfeed.pitt.edu!gatech!newsfeed.internetmci.com!in1.uu.net!allegra!alice!bs
From: bs@research.att.com (Bjarne Stroustrup <9758-26353> 0112760)
Subject: Re: Why garbage collection?
Message-ID: <DLywCI.LDG@research.att.com>
Organization: Info. Sci. Div., AT&T Bell Laboratories, Murray Hill, NJ
References: <4ecmfo$as9@news2.ios.com> <4ei4og$la1@info.epfl.ch> <s08wx6akhlt.fsf@lox.ICSI.Berkeley.EDU>
Date: Tue, 30 Jan 1996 00:07:29 GMT
Lines: 66
Xref: glinda.oz.cs.cmu.edu comp.lang.lisp:20639 comp.lang.c++:171350


marcoxa@lox.icsi.berkeley.edu (Marco Antoniotti) write.

 > [discussion about C++ by someone else]
 > 
 > This is probably off-track, but, as a diversion, please bear this last
 > gripe of mine on the language which is going to be swapped away by
 > Java (no, it is not Lisp :) ).

You are indeed way off track, and I think the announcements of C++'s
imminent demise are rather premature.

 > One of the things that bothered me most with C++, was this sort of
 > "newspeak" which it introduced.  For years people had been working in
 > Flavors, Clos, Smalltalk etc, and they pretty much shared a common
 > terminology.  Then suddendly, we did not have "methods" any more, we
 > had "member functions", we lost the "inheritance" (pun intended) and
 > started "deriving classes".

I think you have your dates wrong. The C++ terminology was picked in
1979. Then, the work on CLOS hadn't yet started, Smalltalk-80 hadn't
been completed, and its predecessor was not well known outside a small
circle of researchers. I don't recall the dates for Flavors and Loops,
but again these languages were not known outside the AI community for
quite a few years.

The C++ terminology is based on that of Simula (1967) and partly on that
of C (1972). The base- and derived class terminology was indeed invented
for C++ - based on rather negative experience teaching using the Simula
super- and subclass terminology.

A good source for dates and other historical facts about these languages is:

	Preprint of Proc. ACM History of Programming Languages
	Conference (HOPL-2).
	April 1993.
	ACM SIGPLAN Notices, March 1993.

The C++ paper there is

	Stroustrup: The History of C++: 1979-1991.

A more thorough description of the design of C++ is:

	Stroustrup: The Design and Evolution of C++.
	Addison-Wesley. ISBN 0-201-54330-3.
	
 > Of course, the argument is that C++ wanted to "clarify" such things
 > and the choice of new terminology was a "good thing".

You got the motivation wrong as well. There wasn't an accepted terminology
to "clarify." I stuck to the most widely used terminology at the time
(Simula's) as far as I could, and introduced new terms that fitted that
and the terminology of C only where I saw no alternative.

 > Well, I must say that I am very pleased to see that Java somewhat
 > reintroduced the "old" terminology and that Lisp, (as well as Dylan)
 > is not yet dead.
 > 
 > Half seriously yours

It is a good idea to be at least half accurate even if only half serious.

	- Bjarne


