I feel the problem is people go to extremes: either all handmade SQL or all ORM. Mixing both is pragmatic.<p>Take today&#x27;s example, using the Doctrine2 ORM. I needed something simple: For every user, find the number of articles belonging to them with a specific status code.<p>Seems simple. Except the dumb ORM way of count($user-&gt;articles) lost the JOIN conditions, and counted every article.<p>So the 50% way was to use COUNT(article.id) in the query via the ORM. Unfortunately, because it doesn&#x27;t know where to put the COUNT() value, the ORM destroys the easy usage, and returns a collection of the user object and a scalar value for the COUNT().<p>I worked with it, but TBH going back to raw SQL in this case would&#x27;ve been much easier.<p>Pragmatism, the lost art (TM)