Lightning, я хочу кое-что специально пояснить - по-моему, я писал уже об этом - в-общем, есть такой закон: бытие определяет сознание. Можно не соглашаться, конечно - для кого-то не определяет. Но вообще-то для многих определяет. Это интересный вопрос - в интеллектуальной деятельности можно говорить и обратно: сознание определяет бытие. Вот в научной традиции есть много вещей - кросс-дисциплинарных - которые изучают именно эту связь, обычно это психология. И есть например вот какое направление - на стыке филологии и философии изучают, как язык вляет на сознание, вернее, как язык отражает сознание, и как разные языки отражают сознание разных культур (это что-то типа герменевтики - но я не большой специалист). Так вот я хотел бы подчеркнуть, что проблемы, которые я вижу - их нужно рассматривать исключительно с этих позиций. Готовы программисты к этому или нет - это второй вопрос.
Вот Вы пишете - "это не проблемы ООП". Конечно, это на самом деле проблемы человеческие, наши с вами. Но это "проблема ООП" в том же смысле в каком язык Эллочки Людоедки определяет её культурный уровень. вот чтобы далеко не ходить - берём PHP - вот позволили в PHP две вещи: мешать код и HTML, и "инклюд". Удобно? Ну, наверное, да. А к чему это приводит?
Вот Вы пишете - психологически инкапсуляция ни к чему не приводит плохому - всё это у значит у меня субъективно. Тогда я также могу написать: Ах, на PHP пишут ламеры? Как это субъективно! Для того, кто знает PHP по-настоящему не составит туда писать "правильный" код. Понятно, в чём ошибка подобных рассуждений, да?
Наконец, снова вернёмся к не-программистским вещам. У инженеров, исследователей, физиков там всяких очень практичный взгляд на природу - мы берем модель, мы меряем - если не сходится - выкинем к черту модель, берем другую - и так по кругу. Но уже у физиков-теоретиков другая страсть - они десятилетиями могут заниматься исключительно умозрительными штуками - причем в этих упражнениях многие теряют связь с физикой вовсе - становятся математиками. А математика ведь язык, при помощи которого описывается любое природное явление - но математики предпочитают не занимаются природой - они предпочитают забавляться своим языком. Переход от языка к природе - пусть этим занимается кто-то другой. Понимаете, я сейчас безусловно упрощаю - но вот это всё - классическая проблема в любом деле, в котором есть и практическая, и теоретическая составляющая. Казалось бы, программисту должно быть легче - какая уж тут теория, пиши программы. Ан нет - хорошие и гибкие языки позволяют так разойтись, что уже забыта конечная цель - полезная для пользователя программа. Вот я утверждаю, что объектно-ориентированные языки провоцируют этот сдвиг сознания - от природы к языку описания. И если математиков ничтожно мало - всё-таки это сложная интеллектуальная деятельность, куда сложнее программирования - то для программирования как отрасли промышленности - людей с такими наклонностями нужны ничтожные доли процента. Ни в коем случае я не говорю что нужны тупые кодеры. Но нужны люди, решающие проблемы, а не забавляющиеся языком.