Though, I'll point out that my problem is not necessarily with OOP, but OOD. OOP can be quite useful in
some situations, such as modeling and simulation :)
Of course the design of the Java language is predicated around the idea that OOD is the one true way to design large software systems and thus must be forced by the language itself, and that is the primary reason I hate it.