[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