В чистом ООП инкапсуляция поддерживается на уровне объектов. В виртовстких же языках единицей инкапсуляции является модуль. Это различие мне представляется настолько фундаментальным, что я рискну утверждать, что линейка виртовских языков (начиная с Оберон 2) -- этоне ООП, это гораздолучше, чем ООП
В своё время, помню, накувыркался в Delphi с одним проектом. Как раз из-за этого, там мне нужно было использовать группу тесно взаимодействующих классов. Я тогда никак не мог понять, почему использовать ООП так не удобно, все же используют, ещё и хвалят. Теперь давно уже в голове всё встало на свои места. Пожалуй, ничто уже не заставит меня перейти обратно на DelphiХотя дело, конечно, не в инструментальных средствах, а в голове. Можно работать и в Delphi, только зачем себя насиловать, если есть средства получше.