&quot;This is silly. Everything has a learning curve, but once you understand that everything exists inside an object you are good to go. The rest is just design patterns that are proven to make your life easier!&quot;<p>Maybe it&#x27;s just me but this is my main gripe with OO. I sometimes need to write involved data processing tasks and it&#x27;s much simpler if I first think in graphs or through a relational model. The objects are light and either a way to encapsulate state (as in parser), a simple structure (as in a vector xyz) or a container.<p>Complex data lives in relationships between the data - as opposed to &#x27;encapsulating into an object&#x27; - this keeps the system small, easy to understand and modify.<p>Sure, objects are a nice way to offer an interface to something but I&#x27;ve found the statement &#x27;objects all the way down&#x27; usually means poor design.<p>This gripe is of course mainly pedagogical - students (like I was, once) are exposed to a subotimal abstraction of software composition when objects are introduced as <i>the way</i> to design and implement software.<p>Sure, they are nice in some places, I don&#x27;t deny that.