Live data from Hacker News

Alan Kay on the misunderstanding of OOP (1998)

lists.squeakfoundation.org

61–70 of 212 posts

Re: Alan Kay on the misunderstanding of OOP (1998)

#61
post #49
post #8

How is messaging different than calling a method?

A "method" is just a programming construct. A message in OOP is sent to an object to tell it to do something itself . In an OO approach, rather than have a Hammer hit a Nail, the Hammer sends a message to a Nail which knows how to be hit .

That makes me wonder though, if i send a message to the same object from two different senders, will the first message affect the outcome of the second? If not then there is plainly little difference between the two, as either action gets a new pristine instance. All in all, this seems to be a whole lot of syntactical hair splitting.

Re: Alan Kay on the misunderstanding of OOP (1998)

#62
post #54
post #40

I find it interesting that everyone gets so up-beat about the ideology or philosophical debate about objects sending each object messages, hell even not relying to a message one object send you until a later date. Without even thinking about concurrency, state, and hell even the basics such as cyclic loops within a event based system! Though I keep hearing from Alan and other prominent language designers that we stil…

> I've seen too many project's that have drunken the cool aid and has resulted in 5-10 level deep inheritance tree's with their own branching logic trying to fit behavior to a specific taxonomy. I don't think you understand Alan Kay's version of OOP, if you think inheritance is a key part of OOP. I was interested in this stuff during the summer and I wrote up the following question/answer if you're interested on what…

Not saying its a key part. Im in the camp you better have a damn good reason to use inheritance that composition will suffice.

The whole notion that everyone has their own perspective on oop makes it a mute point.

Re: Alan Kay on the misunderstanding of OOP (1998)

#63
post #52
post #40

I find it interesting that everyone gets so up-beat about the ideology or philosophical debate about objects sending each object messages, hell even not relying to a message one object send you until a later date. Without even thinking about concurrency, state, and hell even the basics such as cyclic loops within a event based system! Though I keep hearing from Alan and other prominent language designers that we stil…

Part of the issue is that people have differing perspectives on computing. One half, see it in terms of computer and data science. For these, data-structures, algorithms and ADTs are paramount. Organization of the problem is through modularity and functional decomposition. An object (as in OO) might be useful for encapsulation, data and implementation hiding, and code organization. On the other hand, there are people…

Agree completly. Kind of the reason why they call it a general pr9gramming language.

Re: Alan Kay on the misunderstanding of OOP (1998)

#64
post #62
post #54

Earlier quoted context omitted.

> I've seen too many project's that have drunken the cool aid and has resulted in 5-10 level deep inheritance tree's with their own branching logic trying to fit behavior to a specific taxonomy. I don't think you understand Alan Kay's version of OOP, if you think inheritance is a key part of OOP. I was interested in this stuff during the summer and I wrote up the following question/answer if you're interested on what…

Not saying its a key part. Im in the camp you better have a damn good reason to use inheritance that composition will suffice. The whole notion that everyone has their own perspective on oop makes it a mute point.

Actually that's "moot point": http://www.dictionary.com/browse/moot-point

But yes, the number of variant perspectives on OOP make it a less descriptive term than would be ideal.

Re: Alan Kay on the misunderstanding of OOP (1998)

#65
post #14

IMO the problem with object-oriented programming is that it turned into the standard curriculum for peoples' first semester of computer science, rather than being yet another interesting concept that advanced programmers would ponder. And the way we handle "the standard CS curriculum" sucks. (In the USA at least.) For example, AP Computer Science requires Java and tries to teach stuff like designing inheritance hiera…

Have you actually talked to educators about this?

I've asked a few why OO is the first thing you learn - and the reasoning was two fold:

1) People that start off by learn imperative programming end up writing really really shitty OO code. They're they type of people that end up copy and pasting stuff everywhere. It's really hard to get students to not take the "short cut" of copy paste to think in objects when you have homework deadlines and other things to worry about (and the teacher never actually spend time to teach you how to use programming toolchains...)

2) it's conceptually one of the biggest stumbling blocks for people. A lot of people have trouble wrapping their heads around OO. So sure you could teach it later, but it'll never sick or sink in.

Re: Alan Kay on the misunderstanding of OOP (1998)

#66
post #40

I find it interesting that everyone gets so up-beat about the ideology or philosophical debate about objects sending each object messages, hell even not relying to a message one object send you until a later date. Without even thinking about concurrency, state, and hell even the basics such as cyclic loops within a event based system! Though I keep hearing from Alan and other prominent language designers that we stil…

"For what its worth I consider object's simply as a basic level category of procedures and data tied to a namespace.“ I mean you're just using different words to talk about the same thing. In your terminology inheritance is just extending a namespace and overloading names. How does that discredit or put into question the "mental model of command and control, or structured design concepts" If anything I feel the failu…

I can think of a good list of OO languages that don't have anything to do with C.

Also the pImpl is a consequence of C++ not adopting modules and instead rely on C linkers, nothing to do with OOP.

Re: Alan Kay on the misunderstanding of OOP (1998)

#68
I've used Smalltalk, I've used Java. They are not not different in terms of the object mechanism. The only difference one could imagine is that you can treat messages as data through doesNotUnderstand in Smalltalk (the analog to method_missing in Ruby). That is by far not the predominant use case though.

Otherwise, what makes method calls "messages" in Smalltalk, but not in Java?

This mailing list entry has always sound like bogus philosophistry trying to defend an imaginary high ground.

Re: Alan Kay on the misunderstanding of OOP (1998)

#69
post #14

IMO the problem with object-oriented programming is that it turned into the standard curriculum for peoples' first semester of computer science, rather than being yet another interesting concept that advanced programmers would ponder. And the way we handle "the standard CS curriculum" sucks. (In the USA at least.) For example, AP Computer Science requires Java and tries to teach stuff like designing inheritance hiera…

Have you actually talked to educators about this? I've asked a few why OO is the first thing you learn - and the reasoning was two fold: 1) People that start off by learn imperative programming end up writing really really shitty OO code. They're they type of people that end up copy and pasting stuff everywhere. It's really hard to get students to not take the "short cut" of copy paste to think in objects when you ha…

Nothing stops OO code from being imperative.
Post reply on HN