This is a critique of mainstream "OOP". But the term "Object oriented programming" as coined by Alan Kay meant something different[1]. He was referring to something like actors: Tiny independently-operating machines (which, yes, contain hidden state) that provide answers in response to messages sent to them. You intentionally can't know how they work--they should behave as little computers.
I think this is a powerful paradigm which has still not been fully realized. (NSDistantObject in Object-C comes close?)
I am excited for the new async/await stuff coming to Swift since it's explicitly moving towards an actor-based programming model. (While Swift, in general, tries to eliminate some of the negative aspects of previous implementations of OOP.)
> Tiny independently-operating machines (which, yes, contain hidden state) that provide answers in response to messages sent to them. You intentionally can't know how they work--they should behave as little computers.
"Is Erlang object oriented?"
"From that point of view, we might say it's [Erlang] the only object oriented language and perhaps I was a bit premature in saying that object oriented languages are about."
This is a critique of mainstream "OOP". But the term "Object oriented programming" as coined by Alan Kay meant something different[1]. He was referring to something like actors: Tiny independently-operating machines (which, yes, contain hidden state) that provide answers in response to messages sent to them. You intentionally can't know how they work--they should behave as little computers.
I think this is a powerful paradigm which has still not been fully realized. (NSDistantObject in Object-C comes close?)
I am excited for the new async/await stuff coming to Swift since it's explicitly moving towards an actor-based programming model. (While Swift, in general, tries to eliminate some of the negative aspects of previous implementations of OOP.)
[1] http://www.purl.org/stefan_ram/pub/doc_kay_oop_en