Bryce took a strong position that OOP was evil and tables solve everything. He made it very hard to argue a middle-of-the-road view on the other side.
Java was a great example of both an implementation of OOP, and the pathology of taking it too far, eg: with factory factories. (Is that a joke? I was never quite sure.) I've been away from the pointy end for long enough that I can't speak to inheritance vs. composition, but your larger point that different things are good for different problems makes sense.
I've always been a bad evangelist for languages or methodologies, because I really care about why we're doing it this way and finding the right tool for the job, rather than just swinging the hammer harder.
Java was a great example of both an implementation of OOP, and the pathology of taking it too far, eg: with factory factories. (Is that a joke? I was never quite sure.) I've been away from the pointy end for long enough that I can't speak to inheritance vs. composition, but your larger point that different things are good for different problems makes sense.
I've always been a bad evangelist for languages or methodologies, because I really care about why we're doing it this way and finding the right tool for the job, rather than just swinging the hammer harder.