honestly by far the greatest argument against object-oriented programming that I've seen is the fact that 95% of examples of most OOP features are situations in which they are completely unnecessary and result in larger, harder to understand programs.
in my (admittedly rather limited!) experience, the only time creating and using classes is actually worth the trouble is when you have a data structure in which changing one piece of data necessitates changing other pieces of data, which, in fairness, is often the case with more complex structures. once you've started using classes as anything more than spicy structs, though, you're likely at the end of a long chain of terrible decisions.
