На форуме Королевства Дельфи Руслан Богатырев очень хорошо выступил со сравнением концепций модуля и класса, оценкой подхода Б. Мейера к их полному отождествлению, и т.п.:
http://www.delphikingdom.com/asp/talkto ... t=10&pNo=1

Рекомендую почитать.

Свое мнение на эту тему уже высказывал в соседней ветке:
> -- Цитата:
> Почему в Java единственной единицей инкапсуляции является класс? Класс - это абстракция из предметной области. А техническое средство для формирования связанного набора из функций, типов, переменных и т.п., с сокрытием некоторых из них - это модуль. Когда пытаются обойтись без модулей и переложить соответствующие обязанности на классы, получается изврат.Мое мнение - что модули и типы - сущности разные. А разные концепции должны выглядеть и использоваться по-разному. Лучше, когда "суп отдельно, мухи отдельно" При этом это должно закладываться в самой идеологии языка, дабы не было путаницы в головах и необходимости разбираться в наворотах излишне "творческих" писателей программ.Идея использовать классы вместо модулей мне напоминает знаете что? Когда люди, плохо понимающие ООП, начинают использовать вместо агрегации наследование. Ну раз есть, механизм, то, типа, почему бы не использовать? Аналогично: ну раз можно в классе инкапсулировать типы и процедуры класса, то почему бы не запихать их туда?Кстати, в ETH (Цюрихском технологическом) идет сейчас борьба между Обероном, который является там стандартным с 1989 года, и Eiffel, который продвигает Мейер.У Мейера подход к подготовке программистов очень оригинальный: в самом начале предоставлять новичку огромные билиотеки из "черных ящиков" и учить просто их совмещать между собой, как конструктор. Потом понемногу эти "черные ящики" вскрываются, и где-то через год доходят до изучения алгоритмики, то есть, "программирования в малом". Бывает "кидание контролов на форму", а тут "кидание вызовов библиотек".