|
|
|
|
|
by baryphonic
1752 days ago
|
|
"OOP" is itself such an overloaded term that a Smalltalk coder and a C++ coder and a Python coder can each say she works with objects, and yet have entirely different design and organization. By formalizing his definition of OO, Yegor (who is a firebrand for sure[0], but says enough interesting things that I've read a couple of his books and several blog posts) is dispensing with "no true Scotsman" fallacies: if he claims language <X> is not OO per his formal definition, we can take it or leave it. For what it's worth, Alan Kay himself has said things like, "I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." He has declined to formally define what he means, but has said, "OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things."[1] Even without a formal definition, most languages purporting to be OO clearly fail a common sense interpretation of his criteria. Kay himself mentions Smalltalk and Lisp being the only systems he's aware of that meet his criteria; I tend to think Erlang is spiritually close, though would have to defer to Alan (I find it interesting, too, that the first Erlang VM was written in Prolog). [0]https://www.yegor256.com/2017/07/18/sexual-harassment.html [1]http://www.purl.org/stefan_ram/pub/doc_kay_oop_en |
|
For what it's worth, I suspect Yegor's view is somewhat closer to Erlang as well, given both end up collapsing into a model of both functional purity and message-dispatching, if I understand them both accurately.