Найти в Дзене

Как появился и развивался C++?

Оглавление

Прежде чем говорить о том, откуда же взялся C++? Нам придется окунуться немного глубже в историю С-подобных языков программирования.

Ладно, ладно, не сильно глубже, до того как появился C++, и впоследствии дал начало таким языкам, как C#, Java, Perl и многим многим другим, из C-подобных языков был только С.

Совсем немного истории

Язык С был разработан в Bell Telephone. Его создал Деннис Ричи, в 1972 году. И прежде всего, целью его создания было получить язык системного программирования. Иначе говоря, получить такой ЯП, на котором можно будет писать современные (по тем меркам) операционные системы.

Ричи, создавая C, желал получить легко компилируемый эффективный код. Кроме того, в C были заложены возможности простого доступа и легкого управления памятью компьютера. И еще одно свойство, которое получил будущий родитель огромной группы языков — это автономность. Без преувеличения, C стал языком программирования не зависящим от других программ и аппаратных средств операционных систем.

Код C/C++ не нужно переписывать под разные виды процессоров и других аппаратных средств.

Ричи был поражен портируемостью, гибкостью и эффективностью своего детища. Через год после создания языка, он переписал c ассемблера на C большую часть популярной в то время операционной системы Unix. Во многом, успех C впоследствии был связан именно с успехом этой операционной системы.

Портируемость (переносимость) — это свойство языка программирования, выраженное в его способности запускать код на разных платформах, без изменений внутри исходного кода языка.

В 1978 году появился и первый, неофициальный стандарт для языка C — книга "Язык программирования Си", написанная Ричи и Керриганом. Внутри книги содержалась неофициальная спецификация языка, ставшая для многих программистов того времени ключом к максимальной переносимости собственных программ.

Первый официальный стандарт для С появился намного позже в 1990 и получил название C90.

Когда появился C++?

В 1979 году Бьярн Страуструп начинает работу над расширением языка C, которое он называет "С with Classes" (Си с классами).

«Моей целью было создать мультикомпьютерную платформу с коммуникационной системой, в качестве которой могли бы выступать либо общая память, либо сеть», — говорит о начале работы над C++ Страуструп.

Страуструп, работая над одним из проектов компании Bell и пользуясь языком C, обнаружил что для решения его задачи требуются функции, которые есть в языке Simula и BCPL (из этого языка родился язык C).

Тогда Бьярн решил объединить нужное ему из этих языков и создать расширение для C под названием "C with Classes". Именно эта идея толчок к появление в C принципов ООП — объектно-ориентированного программирования. И в последствии породила C++.

Объектно-ориентированное программирование — это набор правил и критериев (парадигма), суть которой в том, что весь код ЯП состоит из объектов, которые взаимодействуют друг с другом.

Первый официальный стандарт для C++ появился в 1998 году (был ратифицирован комитетом ISO). С тех пор, С++ получил уже 4 официальных обновления языка C++11, 14, 17 и 20 (они названы по годам их ратификации).

Философия С++ (кратко)

Основным постулатом языка C++ выступает "Доверие программисту". О, кажется это хорошо, да? Ну, как сказать: С++ дает высокую степень свободы тому, кто пишет на нем, но при этом он же не мешает вам делать то, что не имеет смысла или вредит вашему коду.

Почему так получается? Просто C++ считает, что если вы что-то делаете, значит вы понимаете что делаете. А то что это не понял он — это дело десятое.

Знание о том, чего не стоит делать в C++ является основополагающим для написания правильного (без ошибок и уязвимостей) работающего кода.

В чем же действительно хорош C++?

Этот ЯП отлично справляется с ситуациями, в которых от программиста требуется получить производительность высокого уровня и максимально точный контроль над памятью компьютера или другими ресурсами.

Чаще всего на C++ пишут:

  • видеоигры;
  • финансовые программы с требованием к высокой производительности;
  • системы с реакцией в реальном времени (для производства, транспортировки и т.д.);
  • графические редакторы и приложения для моделирования;
  • офисные программы, требующие высокую производительность;
  • программы для работы с аудио и видео файлами;
  • встроенное программное обеспечение.

В заключение, скажу что для того, чтобы изучить C++ вам не нужно сначала изучать C. Начинать изучение программирование именно с плюсов — это нормально. И, по моему скромного мнению именно C++ является тем языком, с помощью которого вы действительно сможете понять программирование и его суть максимально точно и глубоко.