From: santas@inf.ethz.ch (Philip Santas)
Subject: Re: Heresy discomfited!
Organization: Dept. Informatik, Swiss Federal Institute of Technology (ETH), Zurich, CH
Date: Sun, 13 Sep 1992 20:12:56 GMT


In article <PCG.92Sep12204548@aberdb.aber.ac.uk> pcg@aber.ac.uk (Piercarlo Grandi) 
answering to johnson@cs.uiuc.edu (Ralph Johnson) writes:
>
>I will mention a dreaded paper, the Cardelli/Wegner survey on OO (ACM
>Surveys December 1985), where they write:
>
>    "In the context of this discussion it is useful to define
>    object-oriented languages as extensions of procedure-oriented
>    languages that support typed data abstractions with inheritance.
>    Thus we say that a language is object oriented if and only if it
>    satisfies the following requirements:
>     * It supports objects that are data abstractions with an interface
>       of named operations and a hidden local state.
>     * Objects have an associated object type.
>     * Types may inherit attributes from supertypes."
>
>First allow me register the comment that this is a most unfortunate
>and confused definition with which I dissent vigorously.
>
>johnson> OOP has three distinguishing characteristics, in my opinion.
>johnson> The first is the ability to define new data types, [ ... ]
>johnson> The second is polymorphism by late-binding, [ ... ]
>johnson> The third is inheritance, [ ... ]
>
>but while you claim that your is a definition of OOP, they claim it is a
>definition of an OOL, which seems to me rather more acceptable.

From Programming Linguistics (D. Gelernter, S. Jagannathan. MIT Press, 1990) p. 249:

	The programming method induced by Simula, by Smalltalk, and by
	a large collection of subsequent languages inspired by these originals
	is called "object-oriented" programming.

What I see here, is a definition based on prototypes.
They actually add:

	Object-oriented programming IMPLIES BOTH a general vision of what
	programs are AND A SET OF LANGUAGE CONSTRUCTS.

(underlining is mine)

This implies that each of the oponents in this thread, are HALF-correct
(given the definitions above).

>Surely you must be joking. You are making fun of us all with a
>caricature of the thesis "OO *Programming* is really the same as the
>features of the Smalltalk language, no more, no less". Down to the
>detail that in some Smalltalk implementations objects "contain" a class
>pointer/denoter.

The same authors add the following (same page):

	The phrase "object-oriented" is supposed to mean "object-based" or 
	"having to do with objects", "based on the use of objects".
	Perhaps after a hectic afternoon of phrasemaking, the excausted
	wordsmiths adjourned to a local movie theater to take in
	"LIFE WITH SMALLTALK-ORIENTED TOWARDS A TRUE STORY"

(the underlining is mine)

If the OO community and its practices are fixed, then there is no reason
for research in it. But I still believ, that new languages can change
the tradition, and the "prototype-oriented" definition.

Philip Santas

  "In an evolving universe those who stand still are really moving backwards"
--------------------------------------------------------------------------------
email: santas@inf.ethz.ch				 Philip Santas
Mail: Dept. Informatik				Department of Computer Science
      ETH-Zentrum			  Swiss Federal Institute of Technology
      CH-8092 Zurich				       Zurich, Switzerland
      Switzerland
Phone: +41-1-2547391