Live data from Hacker News

Alan Kay on the misunderstanding of OOP (1998)

lists.squeakfoundation.org

121–130 of 212 posts

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

#121
post #7

Earlier quoted context omitted.

I played around with Squeak many years ago, but might appreciate it more now. What recently spurred more confusion on this topic was Alan Kay's discussion with Rich Hickey during the AMA the other day. https://news.ycombinator.com/item?id=11945722 I found it really hard to understand what Alan Kay is actually talking about. Saying things like > This is why "the objects of the future" have to be ambassadors that can n…

Probably totally wrong but here is what I took away: It kind of reminds me of bounded contexts like the ones from http://martinfowler.com/bliki/BoundedContext.html When being complex information systems you ended with subtle drifting in what something actually means from person to person or over time. More directly in regards to having ambassadors working with unseen objects: Seems like you would need some shared "la…

Yes, I agree.

And it also reminds me of https://en.wikipedia.org/wiki/Smart_contract and one can see how different block-chains need different interpreters to understand what computation are needed in order to "execute" the message.

About intential programming, see DCI http://www.fulloo.info/

>The essence of object orientation is that networks of collaborating objects work together to achieve a common goal. > The common sense of object oriented programming should reflect this essence with code that specifies how the objects collaborate. Our industry has, unfortunately, chosen differently and code is commonly written in terms of classes. > A class tells us everything about the properties of the individual objects that are its instances. It does not tell us anything about how these instances work together to achieve the system behavior.

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

#122

Earlier quoted context omitted.

> Message passing implies one way broadcast. Can you explain that since its contrary to my experience. PDO and normal Objective-C methods had a return and are not one way.

In modern enterprise programming message is very different concept (probably more widespread, if we'll look at popularity of Java and .Net, compared to Objective-C), which is not related to OOP. It's a pattern of integration, in which systems exchange with messages through a message broker, that abstracts them from each other. By their nature such messages are asynchronous and unidirectional.

That was also the original model of messaging in Smalltalk (well, without the necessity of a broker).

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

#123
post #105
post #64

Earlier quoted context omitted.

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.

Or a cow's opinion! No but seriously, I think both you and hackits make it clear that there's a lot of discussion over what OOP actually is. Which makes me curious: is there any research on the characteristics of OOP as it implemented in practice across languages? I'd be very interested in such research, because it seems to me that what is possible is often not practiced. So, for example, Ruby might be all about 'mes…

As of a research paper by Kaijanaho, Antti-Juhani (https://jyx.jyu.fi/dspace/handle/123456789/47698)

Since 1960 till 2012, there are only 22 research papers that used empirical evidence with randomised cross over studies for language design.

As of which, Class inheritance had 4 randomized controlled experiments. With a collection of other studies. That is mostly of the information I have come across.

There is a research paper on Java that looked at how programmers use inheritance. It's a interesting read and its a good source. (https://researchspace.auckland.ac.nz/handle/2292/16840)

I think Google published another paper looking at development time and I believe the result was the biggest time consumer for programmer was dependencies not necessary the programming langue.

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

#124

Earlier quoted context omitted.

"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…

> If anything I feel the failure of OO languages What failure exactly? OOP has flaws but it has certainly proven to be extremely versatile and adaptable over these past decades since even today, it's still the dominant paradigm to solve modern problems in computing.

Seriously? Have you watched any of the demos Alan references? They were doing things with computers in the 1960s/70s that still haven't reached mainstream use as yet. Computers as used today are still absolutely dumb machines that are little more than super-fast calculators, and in most cases increases the mental burden of their users instead of reducing/augmenting them. Nicholas Negroponte had a great quote in '94 that's still true today - "those infra-red urinals in public restrooms know more about what we are doing than our computers today."

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

#125
post #89

Earlier quoted context omitted.

Nothing wrong with looking at nature and trying to get inspiration from it (e.g. neural nets) but ever since we realized that flight was easier to implement with chemical combustion than by flapping wings, we know that just because something works in nature doesn't mean it will be easy to replicate for human use.

True. But because as today it's easier to implement doesn't mean we won't have aircraft with flapping wings in the future.

We probably won't, at least not at human-scale and not on Earth. Flapping wings don't scale; there's a reason you have to get to #12 of the heaviest birds list to get one that flies, at ~13% the maximum mass of the heaviest bird.

https://en.wikipedia.org/wiki/List_of_largest_birds#Table_of...

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

#126

I don't really understand this obsession with messages. We're moving away from it. This is not how we program in the 21st century. The last popular language that supported this paradigm (Objective C) is being replaced and will probably be all but gone in just a few years as Swift (not message based) takes it place. Besides, this idea of message passing is really not that useful for modern programming anyway but a lot…

We're accelerating towards messages at a very high rate of speed.

This is in fact how we're starting to program in the 21st century and all programming will be of that type in the 22nd century.

The last popular languages that support this paradigm (Go, Rust, Erlang, Elixir) are exploding in popularity and entering the mainstream.

Message passing does in fact magically solve the problem of data integrity in parallelism when the data is immutable. Languages like Rust and Pony are starting to solve the deadlock problem, and 'data corruption' has nothing to do with messages or lack of messages.

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

#127
post #16
post #7

Earlier quoted context omitted.

I played around with Squeak many years ago, but might appreciate it more now. What recently spurred more confusion on this topic was Alan Kay's discussion with Rich Hickey during the AMA the other day. https://news.ycombinator.com/item?id=11945722 I found it really hard to understand what Alan Kay is actually talking about. Saying things like > This is why "the objects of the future" have to be ambassadors that can n…

Here's my understanding of the general idea (let me know if I got something wrong!). Say you have a bunch of computers with different software and hardware. You come up with a cool new image format called "PJEG". To get the images to show up on all the computers, you typically do the following: * Publish a PJEG spec * Define a .pjeg extension and let everyone know that means it's a PJEG file * Write a PJEG encoder/vi…

Great example. I'll add that the "compile everything to Javascript" ecosystem shows that it's easily possible. Arguably, it's already being done for web stuff just not below a certain level of the stack. There were related fields that did this stuff called agent-oriented programming and meta protocols.

https://en.wikipedia.org/wiki/Agent-oriented_programming

https://en.wikipedia.org/wiki/Obliq

https://en.wikipedia.org/wiki/Meta-object_protocol

https://en.wikipedia.org/wiki/OMeta

In agent-oriented programming, one could send the code and data packaged together to the remote site. It could do any necessary computation there through the platform's interface to prevent lots of data being transfered. It might also do typical RPC's on remote sites. As it was interpreted, it could in theory even modify itself to use a different communication or storage method.

For meta-objects, that was just ways to create other objects. Starts with stuff like CLOS and Smalltalk that's really about clever ways to specify systems. Also allows self-modifying or improving code. Later versions, applicable here, allowed one to specify protocols or interfaces that meta-tools would turn into libraries for one's programs. Some even had interpreters built-in so apps could negotiate arbitrary protocols during runtime. Such tech gets us closer to the idea of focusing on a higher level and how things communicate rather than their state and coding specific procedures for sharing it.

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

#128
post #105
post #64

Earlier quoted context omitted.

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.

Or a cow's opinion! No but seriously, I think both you and hackits make it clear that there's a lot of discussion over what OOP actually is. Which makes me curious: is there any research on the characteristics of OOP as it implemented in practice across languages? I'd be very interested in such research, because it seems to me that what is possible is often not practiced. So, for example, Ruby might be all about 'mes…

> Otherwise we're just getting tangled up in definitions and it's all a moo point.

I agree. I would say a lot of things people do in OOP isn't really OOP it's just object modeling principles. You can apply the same principles in a different language without notions of objects/classes (javascript) comes to mind.

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

#129
post #7
post #4

Earlier quoted context omitted.

Squeak[1]/Smalltalk? (i.e. have you worked with what he would consider a 'real' message-oriented OO language?) [1] http://squeak.org/downloads/

I played around with Squeak many years ago, but might appreciate it more now. What recently spurred more confusion on this topic was Alan Kay's discussion with Rich Hickey during the AMA the other day. https://news.ycombinator.com/item?id=11945722 I found it really hard to understand what Alan Kay is actually talking about. Saying things like > This is why "the objects of the future" have to be ambassadors that can n…

Regarding Smalltalk, I don't think Alan Kay has ever felt it was a pinnacle of language design (or even a complete implementation of his ideas). He has said in several talks that while Smalltalk was a PARC project it saw many re-imaginings, but once it went out into the world it basically was frozen and hasn't changed since 1976. Here's a good history of Smalltalk - http://worrydream.com/EarlyHistoryOfSmalltalk/.
Post reply on HN