4 ms·
> OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. This sounds a lot like mi
by _pdp_ 3mo ago
> OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things.
This sounds a lot like microservice architecture.
- TZubiri 3mo agoI too think that microservices and REST are Kay OOP, although through a network boundary of course The separation of objects and usage of network protocols naturally forces interaction via communication and not data sharing, so perhaps as an emergent phenomenon it converges on Kay OOP. Although no doubt Netflix Microservice OG engineers were influenced by both Kay and Java.
- Twey 3mo agoTaken to an extreme. It's not feasible with current microservice architecture to, for example, represent every Boolean in the program as a service.
- mpweiher 3mo agoFeasible with in-process REST. https://news.ycombinator.com/item?id=48731266 https://news.ycombinator.com/item?id=48731266
- Twey 3mo agoI did not know that was something people had done! Thanks for the pointer! If I were to quibble, though: in-process implies exactly the absence of the isolation guarantees that OOP!Kay and microservices share. (The overhead on a Boolean also makes my inner Mel Kaye burst into tears, but that's neither here nor there in this discussion I suppose.)
- mpweiher 3mo ago> Thanks for the pointer! You're welcome! > in-process implies exactly the absence of the isolation guarantees that OOP!Kay and microservices share. OOP objects are in-process and are isolated using language mechanisms rather than machine/process boundaries.
- Twey 3mo agoI think that arguably an (active) object à la Kay is itself a process — it doesn't have shared memory with the rest of the program (regardless of how that's achieved).
- mpweiher 3mo agoVery similar, yes. Except that Kay did not envision the distinct computers communicating via REST. https://blog.metaobject.com/2019/11/what-alan-kay-got-wrong-about-objects.html https://blog.metaobject.com/2019/11/what-alan-kay-got-wrong-... Also: microservices currently require at least process and frequently even VM/Container/Machine boundaries. In-Process REST scales that down: https://link.springer.com/chapter/10.1007/978-1-4614-9299-3_11 https://link.springer.com/chapter/10.1007/978-1-4614-9299-3_... Language support for In-Process REST: https://dl.acm.org/doi/10.1145/3359591.3359729 https://dl.acm.org/doi/10.1145/3359591.3359729 https://objective.st/ https://objective.st/