| Imagine being a Smalltalker and still missing the underlying context of Joe's article - specifically, around the actor model (as used extensively in Erlang) being substantially closer to OOP as intended by e.g. Smalltalk than to the popularized inheritance-heavy brand of "OOP". You can see this in the objections: > Objection 1 - Data structure and functions should not be bound together ...and yet the usual way to store data in Erlang is to make it an argument of a function repeatedly and recursively calling itself. > Objection 2 - Everything has to be an object. ...which is the case in Erlang/OTP, when you consider that everything is a process a.k.a. actor a.k.a. object. And just like with Smalltalk, these objects communicate via messages. > Objection 3 - In an OOPL data type definitions are spread out all over the place. ...as they are in Erlang, because (barring some bolted-on approaches like records) data type definitions exist entirely as patterns to be matched. > Objection 4 - Objects have private state. ...as do Erlang's processes. That is, while maybe Joe didn't pick up on it at the time (per comments on that article: https://news.ycombinator.com/item?id=26586829), it's clear that said article was more a complaint against OOP as popularly envisioned, with all its classes and inheritance and such - not against the notion of object orientation entirely, which Erlang happens to implement, even if it might've been by accident. |