Следующий шаг: язык С++

В конце 70-х — начале 80-х гг. С стал превалирующим компьютерным языком программирования, и он продолжает широко применяться и в настоящее время. Поскольку С — удачный и удобный язык, может возникнуть вопрос, чем обусловлена потребность в чем-либо еще. Ответ: растущей сложностью. На протяжении всей истории развития программирования все возрастающая сложность программ порождала потребность в более совершенных способах преодоления этой сложности. Язык С++ явился ответом на эту потребность. Чтобы лучше понять, почему потребность преодоления сложности программ является главной побудительной причиной создания языка С++, рассмотрим следующие факторы.

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

Первым языком программирования, который получил широкое распространение, был, конечно же, FORTRAN. Хотя этот язык и явился первым ВПЕЧАТЛЯЮЩИМ шагом, его вряд ли можно считать языком, который способствует созданию четких и легких для понимания программ. 60-е гг. знаменовались рождением структурного программирования. Этот метод программирования наиболее ярко проявился в таких языках, как С. Использование структурированных языков впервые предоставило программистам возможность достаточно легко создавать программы средней сложности. Однако даже при использовании методов структурного программирования по достижении проектом определенного размера его сложность начинала превышать ту, с которой программист мог справиться. К началу 80-х гг. сложность многих проектов начала превышать такую, с которой можно было справиться с использованием структурного подхода. Для решения этой проблемы был изобретен новый способ программирования, получивший название объектно-ориентированного программирования (ООП). Объектно-ориентированное программирование подробно рассматривается далее, но мы все же приведем краткое определение: ООП — это методология программирования, которая помогает организовывать сложные программы за счет использования наследования, ин-капсуляции и полиморфизма.

Поведем итоги сказанному. Хотя С — один из основных мировых языков программирования, существует предел его способности справляться со сложностью программ. Как только размеры программы превышают определенное значение, она становится слишком сложной, чтобы ее можно было охватить как единое целое. Хотя точное значение этого предела зависит как от структуры самой программы, так и от подходов, используемых программистом, начиная с определенного момента, любая программа становится слишком сложной для понимания и внесения изменений. Язык С++ предоставил возможности, которые позволили программисту преодолевать этот барьер и понимать и управлять крупными по размерам программами.

Язык С++ был изобретен Бьярном Страуструпом в 1979 г. во время его работы в компании Bell Laboratories в городе Мюррей-Хилл, шт. Нью-Джерси. Вначале Страуструп назвал новый язык "С with Classes" ("С с классами"). Однако в 1983 г. это название было изменено на С++. Язык С++ расширяет функциональные возможности С, добавляя в него объектно-ориентированные свойства. Поскольку С++ построен на основе С, он поддерживает все его возможности, атрибуты и преимущества. Это обстоятельство явилось главной причиной успешного распространения С++ в качестве языка программирования. Изобретение С++ не было попыткой создания совершенно нового языка программирования. Напротив, все усилия были направлены на усовершенствование уже существующего очень удачного языка.