Why OO Sucks by Joe Armstrong (2000)
The "problem" with OOP is that it was originally oversold for the wrong reasons, and it took the industry a while to learn when and where to use it and where not to.Around the late 1980's OOP was hyped as a way to do domain modelling. That is, modelling the nouns and verbs of the subject at hand (employees, invoices, etc.) While some still defend it for domain modeling, most have found it a poor fit for any non-trivial model.But it did turn out a handy way to present and manage APIs to "external" libraries or services. This is largely how it's used today.The lessons:1. Use the right tool for the job, and no one tool is right for everything.2. Test an idea in production for a while before drawing conclusions about what its good at and what its not.Microservices is currently making similar mistakes, I would note. Those who don't learn history are bound to repeat it.