ORM пытается устранить несоответствие между тем, как база данных работает, хранит и возвращает информацию, и тем, как мы хотим, чтобы наш код работал, сохранял данные и манипулировал этими же данными.
Это не решенная проблема, и инструменты меняются и улучшаются. Каждое решение в этой области обычно включает компромисс, и для того, чтобы сбалансировать компромиссы между проектами, вам нужно больше понять историю проблем, которые пытается решить каждый ORM, прежде чем списывать их как слишком сложные.
В конце концов, есть ORM, поэтому вы можете использовать код вместо того, чтобы писать его с нуля.
Подробнее об обсуждении такого типа читайте в этой статье Coding Horror .