Индустрия программирования

Перспективы



Очень хочется, чтобы стандарт языка был наконец принят. Это может подстегнуть разработчиков
систем программирования для Си++ на максимально полную поддержку новых возможностей
языка, которые в настоящий момент не реализованы. Хочется, чтобы язык был наконец
зафиксирован, и в него не добавлялись новые средства, противоречащие старой идеологии.

И, наконец, несколько замечаний по поводу продолжительных дискуссий на темы вроде "Что
лучше - Си или Си++" или "Является ли Си++ языком ООП".

Си++ изначально не был "академическим" языком программирования. Его часто подвергали и
подвергают критике за неклассический подход к реализации поддержки ООП, даже за то, что его
непосредственным предшественником был язык Си, который явно не подходил на роль
"академического" языка, но очень популярен в среде профессиональных разработчиков.

Бесполезно критиковать Си++ за недостаточно неполную или "неправильную" поддержку ООП.
Си++ вполне укладывается в формулировку парадигмы ООП, данную Страуструпом. Си++ не


является единственным языком ООП и имеет право на свои недостатки и своеобразие.

Сейчас ООП явно поддерживается в нескольких языках программирования, во многих не так как
Си++, и разработчик имеет возможность выбора (так, превосходно спроектированный объектно-
ориентированный язык Ada95 уже стандартизован). Постоянные упреки в адрес Си++ за
"неправильное" понимание ООП кажутся абсолютно несуразными. Даже такие столпы ООП, как
Грэди Буч [9] и Роберт Мартин [10] признают, что Си++ является вполне подходящим и неплохим
инструментом ООП.

Благодаря своим корням Си++ был быстро воспринят разработчиками, уже имеющими опыт
программирования на Си, но не избалованными дорогими и малоэффективными языками
"чистого" объектно-ориентированного программирования.

Противопоставлять Си и Си++ тоже не стоит. Один из них ортогонально расширяет другой по
нескольким направлениям, которые могут быть использованы независимо.



Си++ допускает использование в нескольких вариантах. Во-первых, он содержит язык
программирования Си, точнее, его стандартизованный диалект ANSI C почти целиком. При этом
Си++ обладает более мощными и строгими правилами проверки типов. Программист волен
использовать лишь часть возможностей Си++, не сталкиваясь при этом с неприятностями,
связанными с неполным знанием языка (то есть воспринимать Си++ как "улучшенный" Си).
Можно использовать только механизм классов и наследования, не пользуясь возможностями
обобщенного (generic) программирования, основанного на шаблонах. Наконец, многим
разработчикам приглянулась возможность обработки исключительных ситуаций, не зависящая от
других механизмов языка. Взятые вместе, эти возможности предлагают разработчику
современный, достаточно гибкий и мощный язык программирования высокого уровня с
поддержкой ООП.

Думаем, Си не нуждается в защите. По крайней мере, последние 20 лет показали, что он является
исключительно гибким и продуктивным языком, годным как для системного программирования,
так и для создания приложений широкого спектра. Почему Си имеет такой успех ? Прежде всего
потому, что вместо создания "чистого" языка Керниган и Ричи создали язык, который можно
использовать. И в этом они преуспели.

Почему успешен Си++ ? По той же причине.

Дополнительная информация по языку Си++ см.:


Содержание раздела