© А.И. Легалов

Итоги экспансии объектно-ориентированной парадигмы

На дворе третье тысячелетие. По десктопам, серверам и мэйнфреймам победоносно шествует объектно-ориентированное программирование (в простонародье ООП). За какие-то 15 лет оно воплотилось в господствующую религию, подчинившую умы миллионов программистов. Популярность ООП и его доминирование уже ни у кого не вызывает сомнений. В настоящее время оно фактически стало стандартом де-факто. С использованием объектно-ориентированной методологии (ООМ) осуществляется разработка огромного числа программных проектов, а ООП является основным инструментом для построения кода. Повышение эффективности кодирования осуществляется путем автоматизации процессов объектно-ориентированного проектирования за счет применения соответствующих CASE средств. Наиболее известным инструментом проектирования является Rational Rose [Буч98]. Языки программирования, методологии, приложения, операционные системы, базы данных... Куда не плюнь - кругом "объективная реальность". Вот только основные ее достижения.

Объектно-ориентированные языки программирования

Объектно-ориентированные расширения, в той или иной форме, были добавлены в ряд ранее известных языков программирования, что продлило их существование. Среди них наиболее известны следующие "гермафродиты": С++ (расширение C) [Страуструп], Delphi (расширение Pascal) [Гофман], MS Visual Basic (расширение Basic) [Райтингер]. Они потеснили на рынке средств разработки такого однополого корифея ООП, как Smalltalk [Goldberg]. В каждом из этих языков объектно-ориентированные расширения были проведены в различном объеме. Наиболее продвинутым в этом направлении оказался C++. Популярность C у программистов, лидерство во времени плюс качество введенных конструкций способствовали тому, что C++ стал одним из наиболее известных языков объектно-ориентированного программирования. Delphi и VB также занимают достаточно устойчивые позиции. Во многом это связано не с их объектной ориентированностью, а тесной интеграцией с методами быстрой разработки, базами данных и компонентными технологиями, что позволяет достаточно быстро строить приложения средней сложности. Такие инструменты существуют и для С++ (C++ Builder [Архангельский]). Однако, ООМ считает их использование в разработке больших программных систем неэффективным [Васкевич]. Следует также отметить язык программирования Оберон-2 [MoessenboeckWirth], разработанный под руководством Н. Вирта. Данный язык обладает простой структурой, компактен. Он сохраняет понятие типа, используемое в процедурном подходе. Для придания языку свойств объектного, предложен механизм связанных процедур.

Последовавшая затем "кастрация" механизмов процедурного порождения программ привела к появлению новых, чисто объектных (как и Smalltalk) языков, тесно интегрированных с современной информационной средой. Наиболее популярным из них оказался язык Java [Нортон], ориентированный на кросс платформенную виртуальную машину, адаптированную к функционированию в среде Internet. Поддерживаемая агрессивной маркетинговой политикой, ОО Java-технология заняла на рынке средств разработки одно из ведущих мест. А последним "писком" является C# [Hejlsberg] - объектно-ориентированный кастрат от Microsoft в пику Java. Фрагмент генеалогического дерева, отражающего особенности развития объектно-ориентированных языков, представлен на рис. 1.

Объектно-ориентированная эпидемия коснулась и языков сценариев, изначально ориентированных на написание небольших скриптов и не нуждающихся в поддержке технологий, связанных с разработкой очень больших программных систем. ОО "прибамбасы" существуют в Java Script [Дарнел], их также предлагается ввести и в VB Script [Хиллер]. Как всегда, на высоте оказался идиоматический Perl [Маслов], который и без того включает много наворотов.

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

Объектная модель

Популярность ОО технологии проявилась и в концептуальной трактовке разрабатываемых программ. Почти каждое современное приложение имеет объектную модель, доступ к элементам которой возможен из других приложений. Сочетание объектной модели с компонентными технологиями позволило реализовать совместную работу различных приложений. Для управления поведением совместно функционирующих приложений стали использоваться языки сценариев. Применение объектной модели приложения привело к восприятию любой информации как совокупности данных и кода. Базы данных и электронные таблицы, почтовые сообщения и текстовые документы оказались обильно усыпанными вируссодержащими скриптами - разносчиками заразных компьютерных заболеваний.