Есть задачи, в которых ООП очень эффективно, например: UI, обертки вокруг абстракций операционной системы, такие, как сокеты, файловые потоки, таймеры и т.д, драйвера для БД и других внешних сервисов, как почтовые системы, смс шлюзы, шины событий, API внешних систем, особенно с установлением соединения и с состоянием, это очень хорошо ложится на ООП. Но вот для чего его плохо применять: вычисления, растровый рендеринг, обработка сигналов, различные алгоритмические задачи (подавляющее большинство, но не все) и ООП категорически не подходит для информационного моделирования предметной области. Для этого лучше всего использовать анемичные структуры данных (не содержащие поведения), а вся бизнес-логика должна быть вынесена в отдельный слой API. В ОРМ же 70% действий - это перекладывание из одних структур в другие.
пора начинать учить хаскель/фшарп/etc.))