Конкуренты прочили этому языку бесславный конец
Бьорн Строустрап, создатель C++ |
Но есть и немало других, которые стали возможны благодаря кропотливой работе и предвидению. Язык программирования C++, впервые предложенный лабораторией Bell Labs университетам в 1985 году, безусловно, относится ко второй категории.
В 1979 году исследователь из Bell Labs Бьорн Строустрап попробовал написать для себя и нескольких друзей небольшую программу моделирования. Simula67, которая, по мнению Строустрапа, была на тот момент единственным действительно объектно-ориентированным языком, отличалась слишком низкой скоростью. Basic Combined Programming Language (BCPL) не обладал средствами абстрагирования, которые казались программисту необходимыми. Язык Си — производный от BCPL — имел те же ограничения.
Поэтому Строустрап решил написать свою версию языка Си, которую он назвал «Си с классами». Язык стал развиваться, усложняться, и в 1983 году Строустрап дал ему новое название — С++.
По словам коллеги Строустрапа Энди Кенига, тот не сомневался в шумном успехе нового языка. (Впоследствии Кениг совместно с Барбарой Му напишет книгу «Рассуждения о C++».) Строустрап разработал свой язык таким образом, чтобы он препроцессировался в Си, а не компилировался в машинный язык, что открывало к нему доступ сотням тысяч пользователей Си, имевших соответствующий компилятор.
«Препроцессирование в Си обусловило повсеместное применение нового языка», — подчеркнул Кениг.
Первыми, кому Bell Labs предложила С++, причем практически безо всякой поддержки, стали университеты. Это произошло в 1985 году. Для того чтобы смягчить положение, Строустрап одновременно опубликовал книгу «Язык программирования С++», которая выдержала вот уже третье издание.
Язык быстро нашел свою аудиторию. В 1987 году на конференции по С++ собралось 200 человек. На следующий год, по словам Кенига, число участников выросло до 600, а в начале 90-х число пользователей, по его же оценкам, приближалось к полумиллиону. Это делало язык мировым лидером по скорости распространения.
Изюминка С++ в том, что он позволяет программистам писать приложения всевозрастающей сложности с простыми как никогда интерфейсами. С++ доминирует среди объектно-ориентированных языков и служит фундаментом для программных приложений, ориентированных на любые машины — от ПК до суперкомпьютеров.
Поддержка C++ была встроена в средства передачи, коммутации и операционную систему корпорации AT&T, на этом же языке были написаны многие из ее Internet-служб WorldNet.
Строустрап тем временем продолжал работать в AT&T Bell Labs, где возглавлял подразделение широкомасштабных программных исследований и очень активно занимался совершенствованием своего языка.
«В середине 90-х многие представители Sun Microsystems не уставали твердить, что Java обладает такими потрясающими возможностями, что C++ теперь ничего не остается, как сойти со сцены за пару лет, — иронизирует Кениг. — Однако прошло не два, а три года, и число пользователей этого языка все прибывает».
Кениг считает, что причина этого — в естественном нежелании человека запасаться слишком большим набором инструментов, по одному для каждой операции: «Если есть достаточно хорошее средство, чтобы делать все необходимое, — зачем искать другие?»