Anecdotally I keep hearing the overuse/abuse of OOP (Object Oriented Programming paradigm), especially in Java, has proved to be counter productive over the last two+ decades. This obviously is a religious topic; but clearly the heavy push for OOP seems to be waning as can be seen from the approach languages like Go have taken and their success.<p>Are there any studies/good articles that looked into quality of software systems that relied too much on OOP, how not doing so could have been better, and if the trend of moving away from heavy OOP is here to stay ?
I think the main thing has been to avoid deep inheritance hierarchies. Otherwise the principles are still sound and used where O/O is the right paradigm.