3 ms·
"Object Oriented" is as loosely defined a thing, in practice, as "Functional". Per the article, Alan Kay has given a definition of Object Oriented, that Erlang
by lostcolony 10y ago
"Object Oriented" is as loosely defined a thing, in practice, as "Functional". Per the article, Alan Kay has given a definition of Object Oriented, that Erlang arguably nails in a solid way, but while he was the founder, he's not the only voice. Others have touted the importance of inheritance, and other such things, which can be far harder cases to argue.
That said, I think the real value of Erlang is the actor model, and specifically, the way it causes you to model things and concepts (or objects, but without the baggage) as isolated processes. This is a direct parallel to the kingdoms of verbs and nouns, but, many OO languages provide isolation for their objects/things/nouns, but not for the processes/verbs. Or rather, the process is not naturally related to the noun, but rather almost an Aspect Oriented programming approach. The actual execution crosses the boundaries of the objects/things/nouns (i.e., a single object's instance being accessed by multiple threads, all contending to modify it; the verbs span the boundary of the noun). But in the actor model, that doesn't happen; you have proper isolation of state (the thing/noun/etc) in the actor, but also isolation of execution (the process/verb) in the actor. That is, one actor = one isolated chunk of both state AND execution.
It's this model that people are looking at when they say it's better at object orientation. I think that's a bit misleading (per other comments), but there's real benefit to it.