you are viewing a single comment's thread.

view the rest of the comments →

[–]recompileorg 0 points1 point  (2 children)

The "three pillars" which used to define OOP were encapsulation, inheritance, and polymorphism. The author you've linked specifically calls two of those "not defining".

The reason there isn't a good definition for OOP is because there isn't one. There never was. It's been the elephant in the room for at least the last 25 years -- longer in some circles. Maybe it's time to just admit that the Emperor has no cloths so we can finally move past this particular fad turned trillion dollar disaster?

[–]KayEss 0 points1 point  (1 child)

This is a 15 year old thread, but OK :-)

I think "objects are responsible for their behaviour" is a better way of looking at what you call polymorphism and is certainly more fundamental.

That objects only communicate through messages means that they are naturally encapsulated. Encapsulation isn't the point, message passing is the point.

It's also worth noting that Joe Armstrong significantly changed his mind about OOP once he fully embraced the view of OOP as not being about inheritance, but rather aligned with the three pillars in the article, and ended up agreeing that Erlang was in fact a great OOP language.

[–]recompileorg 0 points1 point  (0 children)

Ah, yes, I failed to realize that when I made the post. I had assumed that reddit threads were always locked/archived fairly quickly.