Alan Kay on the Meaning of “Object-Oriented Programming” (2003)
11–20 of 58 posts
Re: Alan Kay on the Meaning of “Object-Oriented Programming” (2003)
#12A lot of the recent trend towards OOP-bashing comes from bad implementations of OOP, just as bashing design patterns is more to do with badly thought out architectures and overuse of those patterns. In fact, the origins of OOP are basically what we would now call microservice architecture (CSP-inspired languages like Go being a specialisation of this). Each service can be as stateless or as stateful as it needs to be…
Re: Alan Kay on the Meaning of “Object-Oriented Programming” (2003)
#13Could someone explain what he meant here?
Re: Alan Kay on the Meaning of “Object-Oriented Programming” (2003)
#14Towards the end: But just to show how stubbornly an idea can hang on, all through the seventies and eighties, there were many people who tried to get by with "Remote Procedure Call" instead of thinking about objects and messages. Sic transit gloria mundi. Can somebody explain to me what distinction he's drawing here? What's the issue with RPC that's solved by Objects+Messages?
Kay says,
OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.
I read this to simply mean encapsulation of state + dynamic typing. RPC as I understand it is making a method call from one process to another, which makes no claim on how state and/or data should be handled and modeled.So I'm with you. Is Kay just arguing here for a specific way of thinking and talking about computing? Or are there some more concrete/tangible computing rules implied by what he's saying?
[1] Dataless Programming (http://www.rand.org/content/dam/rand/pubs/research_memoranda...)
Re: Alan Kay on the Meaning of “Object-Oriented Programming” (2003)
#15"OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things." Bam. That is it right there. Java really messed this up. Strong static typing and OO is an abomination.
Re: Alan Kay on the Meaning of “Object-Oriented Programming” (2003)
#16A lot of the recent trend towards OOP-bashing comes from bad implementations of OOP, just as bashing design patterns is more to do with badly thought out architectures and overuse of those patterns. In fact, the origins of OOP are basically what we would now call microservice architecture (CSP-inspired languages like Go being a specialisation of this). Each service can be as stateless or as stateful as it needs to be…
It seems to me that you can't really do message passing in most languages with high efficiency? (Objective-C and Swift being the exceptions.)
Re: Alan Kay on the Meaning of “Object-Oriented Programming” (2003)
#17Towards the end: But just to show how stubbornly an idea can hang on, all through the seventies and eighties, there were many people who tried to get by with "Remote Procedure Call" instead of thinking about objects and messages. Sic transit gloria mundi. Can somebody explain to me what distinction he's drawing here? What's the issue with RPC that's solved by Objects+Messages?
A remote procedure call blocks on the response, ensuring the system is only as strong as its weakest link. If every object communicates asynchronously with every other object, using messages instead of shared memory (hence avoiding locking issues), the design by necessity evolves in ways which becomes more robust and easy to scale. Synchronous RPC calls encourage unscalable and unreliable architectures.
[Edit: I've removed most of my original comment since it pertained to messaging between machines, rather than within an application.]
Re: Alan Kay on the Meaning of “Object-Oriented Programming” (2003)
#18A lot of the recent trend towards OOP-bashing comes from bad implementations of OOP, just as bashing design patterns is more to do with badly thought out architectures and overuse of those patterns. In fact, the origins of OOP are basically what we would now call microservice architecture (CSP-inspired languages like Go being a specialisation of this). Each service can be as stateless or as stateful as it needs to be…
Those are not Smalltalk's definitions -- even though I think you're right on about Alan Kay's original inspiration -- and confusion can arise if we redefine terms.
Re: Alan Kay on the Meaning of “Object-Oriented Programming” (2003)
#19>My math background made me realize that each object could have several algebras associated with it, and there could be families of these algebras Could someone explain what he meant here?
The auto "fits" into each of these different problem domains.
Re: Alan Kay on the Meaning of “Object-Oriented Programming” (2003)
#20>My math background made me realize that each object could have several algebras associated with it, and there could be families of these algebras Could someone explain what he meant here?
For example an automobile can be thought of as an emitter of pollution, if your problem concerns pollution, or, it can be thought of as a particle, if your problem concerns traffic congestion. The auto "fits" into each of these different problem domains.