Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

None of those Person/Employee examples are pure OOP, FWIW.

* https://wiki.c2.com/?AlanKaysDefinitionOfObjectOriented

* https://wiki.c2.com/?AlanKayOnMessaging

"OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme LateBinding of all things." ~ Alan Kay

"The key in making great and growable systems is much more to design how its modules communicate rather than what their internal properties and behaviors should be." ~ Alan Kay

The antithesis of OOP is exposing the name and age of a Person to the greater system at large.



Bringing up Alan Kay's definition of OOP is approximately worthless when it comes to discussions of mainstream OOP. Yes, Erlang is "more OOP" than Java by Kay's definition. But that ship has sailed. People will (justifiably) look at you funny if you claim your functional language is OO, and when asked to name an Object Oriented language will say C#, Java, or maybe C++.

That definition is dead. Wish it well, then bid it farewell. "OOP" means "Java" and we can just call Erlang and co "Agent Model".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: