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

Nobody follows Kay's definition of OOP.

And I bet you're going to say "But he coined the term!". Yes. He's still making up his own definition twenty years after the industry gave its own, so whatever he says on the topic is moot.



Several things to note here.

Firstly, I don't know at what exact point did Kay come out in demystifying OO (1998 or so?), but the design principles of Smalltalk and messaging date back to publishing in 1974, with many references to it afterwards.

Secondly, the idea that there is one singular definition of OO that the industry has standardized on is absurd. Object models differ semantically from language to language, even if some general motif of "encapsulation/inheritance/polymorphism" is present (though again, important subtleties abound - is encapsulation enforced or merely convention, how structural and nominal subtyping are modeled [mixins], etc.).

But would you say that's the definition of OO? In fact, Kristen Nygaard who was the creator of the Simula language, an ALGOL extension, and now considered to be the first OO language (semantically in that it beefed up structs and other procedural nuances) considered object orientation to be a property of any system in general as opposed to language constructs. Thus, Erlang definitely does count as OO under that, too.

So what definition do we follow, then? Who do we trust?

Apparently this is a difficult problem: http://c2.com/cgi/wiki?DefinitionsForOo

But by all means, Erlang embodies many OO design principles by certain important taxonomies - both Nygaard's and Kay's. If you're going to reject both, then you're going down murky waters.


> But by all means, Erlang embodies many OO design principles

That's interesting because Armstrong himself thinks that OO sucks:

http://harmful.cat-v.org/software/OO_programming/why_oo_suck...




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

Search: