Экспертиза

Несмотря на имеющиеся недостатки и сложность языка, его позиции остаются весьма прочными

Питер Коффи (PC Week Labs)

Учитывая, что при разработке ПО слишком часто приходится сталкиваться с отставанием от графика, выходом за рамки бюджета и недостаточным соответствием продукта своим спецификациям, можно задаться вопросом: чем же в большей степени являются инструменты поддержки программирования на Си++, подобные Object Construction Suite корпорации Genitor,  -  лекарством от болезни или ее симптомом?

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

Создатели Си++ считали важным дать Си-программистам возможность постепенного перехода к использованию объектно-ориентированных методов. Они также предпочли сохранить для применения в крупных, написанных в основном на Си++ проектах предоставляемые Си низкоуровневые средства манипуляции с оборудованием. Некоторые же объектно-ориентированные языки (например, Смоллток и Java), напротив, максимально используют заложенные в объектах (с их четко определяемыми взаимодействиями) организационные преимущества, просто запрещая описывать в программе что-либо, не являющееся объектом или атрибутом объекта.

Полная объектная ориентированность упрощает работу создателей инструментальных средств для языков программирования  -  они получают возможность опираться на иерархию объектов для точного определения и классификации каждого аспекта приложения. Такие инструменты, как интегрированный редактор Java-проектов из пакета JBuilder фирмы Borland International, иллюстрируют всю мощь этого подхода.

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

Несмотря на подобные недостатки, существует множество причин, позволяющих ожидать сохранения роли Си++ как жизненно важного инструмента разработки приложений. Си и Си++ глубоко укоренились в средах Unix и Windows. Производители инструментов программирования, в том числе такие приверженцы Java, как Sun Microsystems и Borland, продолжают вкладывать силы в инструменты разработки на Си++ (Borland, например, выпустила новую версию C++ Builder 3) и вспомогательные средства программирования, подобные имеющимся в продукте Genitor.

Кроме того, массовое преподавание этого языка обеспечивает устойчивый приток молодых разработчиков, которые готовы (или думают, что готовы) принять вызов программирования на Си++.    

Взвесим достоинства и недостатки Си++

За

Широкая поддержка со стороны инструментов разработки

Эффективность и зрелость в использовании системных ресурсов

Налаженная схема обучения.

Против

Сложность синтаксиса вследствие обратной совместимости с Си

Подверженность ошибкам из-за отсутствия автоматического управления памятью

Трудность управления, обуславливаемая слабой дисциплиной объектной иерархии.