3 ms·
The term "object-oriented" was coined by Alan Kay, and he did provide a much more precise meaning. Unfortunately, the term became a fad and was then diluted int
by TelmoMenezes 12y ago
The term "object-oriented" was coined by Alan Kay, and he did provide a much more precise meaning. Unfortunately, the term became a fad and was then diluted into all sorts of vaguely related ideas.
http://c2.com/cgi/wiki?AlanKaysDefinitionOfObjectOriented http://c2.com/cgi/wiki?AlanKaysDefinitionOfObjectOriented
I find the original idea deep and worth thinking about.
- techadv 12y agoThe page you link seems to indicate that Kay didn't propose this as a definitive definition of OOP, but rather as a description of the defining features of Smalltalk. I'm not familiar with the document; do you have any insight?
- TelmoMenezes 12y agoYou are right. I've heard Kay provide short definitions. One documented case: "OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things." http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay... If you read this email, you will see that what he had in mind was much more than a way of programming. It was a model of computation where the computer is a networks of "cells" exchanging messages.
- pfraze 12y agoHe gives some really good points about this in a talk delivered to OOPSLA in 97 [1]. 1. http://www.youtube.com/watch?v=oKg1hTOQXoY http://www.youtube.com/watch?v=oKg1hTOQXoY
- kazinator 12y agoKay's concept survives if you substitute "function call" for "message". Sending a message to an object and receiving a reply is closely analogous to invoking a function and obtaining a return value. Unfortunately, his overall model implies single dispatch. Sure, "everything is an object", but only one thing is the leftmost argument: the thing that receives the message; and the other things are just arguments.
- seanmcdirmid 12y agoWow, just no. Sending a message to an object is more like calling your mom. Applying a function is like...applying a function. There is no real analogue for that, it's just math.
- kazinator 12y agoIt seems you need more time to think about it. Message passing can be synchronous, and function calls asynchronous Also consider remote procedure calls.
- seanmcdirmid 12y agoA function is well defined in mathematics; see http://en.wikipedia.org/wiki/Function_(mathematics) http://en.wikipedia.org/wiki/Function_(mathematics) . Note that the definition doesn't really differ for computer science. Procedures, on the other hand, may or may not be functions according to whether they behave like them (match their properties).
- kazinator 12y agoThis latest response seems to be entirely based on hooking into the word "procedure" which occurs in "remote procedure call". I don't do Eliza, sorry.
- seanmcdirmid 12y agoWell, I'm not even sure this conversation would pass the Turing Test :)