[OT] Re: Can a low-level programmer learn OOP?

Bruno Desthuilliers bdesth.quelquechose at free.quelquepart.fr
Sun Jul 15 17:02:25 EDT 2007


Wayne Brehaut a écrit :
> On Mon, 16 Jul 2007 10:10:05 +0200, Bruno Desthuilliers
> <bruno.42.desthuilliers at wtf.websiteburo.oops.com> wrote:
> 
> 
>>Wayne Brehaut a écrit :
>>(snip)
>>
>>>after Bruno made the
>>>claim: "OO is about machines - at least as conceveid by Alan Key, who
>>>invented the term and most of the concept."
>>
>>Please reread more carefully the above. I do give credit to Smalltalk's 
>>author for the *term* "OOP", and *most* (not *all*) of the concepts (I 
>>strongly disagree with your opinion that message-passing is not a core 
>>concept of OO).
> 
> 
> One problem is that it's often not clear what lists of properties are
> his definition of OOP vs. what are the intended properties of
> Smalltalk--his intended impelmentation of OOP. Many of the lists begin
> with the basic requirements that "everything is an object" and
> "objects communicate by message passing", but the most common
> "generally agreed upon" definition abstracts just four requirements
> from these (changing)  lists--attempting to  separate implementation
> details from what is essential to the underlying framework. As I note
> below, these were:
> 
> 1.  modularity (class-based? object-based?)
> 2.  inheritance (sub-classing)
> 3.  encapsulation (information hiding)

I don't see information hiding and encapsulation as being the very same 
thing. But anyway...

> 4.  polymorphism ((sub-) class-specific response to a message, or
> processing of a method)

subclassing  - and even classes - are not necessary for polymorphism. I 
guess you have a good enough knowledge of Python and/or some 
prototype-based OOPL to know why !-)

> 
> Other details in Kay's lists are considered  implementation details,
> and important advances or alternatives to pevious methods, but not
> required for a language to _be_ OO. It is reputed, though, that in
> 2003 Kay said
> (http://c2.com/cgi/wiki?AlanKaysDefinitionOfObjectOriented)  "OOP to
> me means only messaging, local retention and protection and hiding of
> state-process, and extreme LateBinding of all things."
> 
> So I understand your accepting one of Kay's lists as being a
> definition of OOP instead of "just" a description of Smalltalk, or of
> accepting this fairly recent "definition" as being the true one

Is there any "true one" ?-)

> (as
> opposed to the previous lists of usually 6 properties). "It's hard to
> hit a moving target!"

Indeed.

> 
>>FWIW, I first mentionned Simula too (about the state-machine and 
>>simulation aspect), then sniped this mention because I thought it was 
>>getting a bit too much OT - we're not on comp.object here.
> 
> 
> Understood--sort of--but there is sufficient accurate information
> about Simula available on the web now that it's no longer necessary to
> use quotes from Kay about OOP and Smalltalk just  because they're more
> accessible, as used to be the case. What would be so OT about
> referring to Simulain one sentence instead of or in addition to
> Smalltalk?

What I mean is that I felt my answer to be already OT enough so I sniped 
  large parts of it. FWIW, I could have sniped the reference to Alan Kay 
and kept the one to Simula, but then it would have require more rewrite 
work.

> But I digress--my only real objection to your post was your opinion
> and claim that Kay "invented the term and most of the concept":

I agree that the term "most" is perhaps a bit too strong. For my 
defense, please keep in mind that I'm not a native english speaker, so I 
often have hard time expressing myself with the exact nuance I'd use in 
french.

(snip)

> 
> As has been noted before, it's often the fact that a cause becomes a
> religion:

Good Lord, save us from becoming religious !-)

Ok, I admit that I have my own understanding of OO (as anyone else, I 
guess), which is quite closer to Smalltalk's model than to any other 
OOPL (even Python). It probabaly has to do with the extremely 
generalized and systematic application of two key concepts - objects and 
messages - in such a way that it becomes a coherent whole - while most 
mainstream OOPLs feel to me more like ad-hoc collection of arbitrary 
rules and features. So yes, I'm probably guilty of being a bit too 
impassioned here, and you're right to correct me. But have mercy and 
take time to read a bit more of the offending post, I'm pretty confident 
you won't find me guilty of mis-placed "religiosity".

(snip)
> in contrast, all I've done so far is complain about
> those who don't accept the correct (i.e., my) definition or use of
> terms.

Lol ! I'm afraid this is something we're all guilty of one day or another...



More information about the Python-list mailing list