Язык_C++_Оболенский.md 7.5 KB

Язык C++

Немного истории

Первые версии языка C++ появились в начале 1980-х годов благодаря датскому программисту Бьёрну Страуструпу. Он вдохновился возможностями Simula, одного из первых языков с объектно-ориентированными элементами, и решил добавить нечто подобное в C — низкоуровневый язык, в котором мало готовых инструментов. Так появился C с дополнениями, главным из которых стали классы. В 1983 году язык C++ получил окончательное название. «++» означает «добавить единицу»: к возможностям языка программирования C добавили ещё одну.

Использование языка C++ в программировании

В отличие от других языков, на C++ можно программировать всё что угодно. Это язык низкого уровня, то есть на нём можно сделать то, что требует каких-то специфических инструкций, например векторных, которые позволяют выполнять сразу несколько операций на одном ядре процессора. C++ спроектирован так, чтобы код мог компилироваться для разных платформ. Например, браузер Chrome, написанный преимущественно на языке C++, работает на Windows, Linux и macOS. Для языков, поддерживающих низкий уровень, это редкость.

Другого языка с такими же функциями нет. Некоторые пытаются к этому стремиться, например язык программирования Rust. А многие даже и не пытаются — заведомо не получится.

Примеров использования C++ много, потому что его кодовая база огромна. На нём написано всё, начиная от микрокода дефибриллятора до операционных систем и компиляторов других языков программирования. Например, при записи голосовых сообщений звук кодируется с помощью кодека, который написан на C++. Далее передаётся через сетевую карту по сети через маршрутизаторы и декодируется на сервере. Всё ПО для этого написано на C++.

Язык программирования C++ подходит для создания проектов 3D-визуализации, где нужно эффективное управление огромными объёмами данных. Благодаря своей производительности C++ используется для разработки игр, операционных систем, браузеров. На нём разработаны приложения и программы, которыми каждый пользовался хотя бы раз.

Плюсы и минусы языка программирования C++

Преимущества

  • Отсутствие overhead - нет потребления ресурсов на вспомогательные операции.
  • Метапрограммирование - возможность поручать большую часть работы компилятору. (C++ — строгий язык, в нём уже на этапе компиляции ясно, что будет делать программа. А значит, на этапе компиляции можно сделать ряд вычислений и оптимизаций, чтобы программа работала быстрее. Это позволяет писать гибкие и быстро работающие программы. В других языках приходится платить скоростью за сложность, универсальность, красоту, понятность. В C++ сложные выразительные конструкции превращаются в простой и быстрый микрокод.)

Недостатки

  • Довольно сложный язык для изучения.
  • В C++ сложно работать с зависимостями. (Есть некоторые системы контроля за пакетами — Conan например, но они менее удобны, чем аналоги для некоторых других языков.А если что-то не работает или нужного пакета нет, то получение нужной зависимости часто превращается в головную боль. Необходимо вручную скачивать исходники нужной библиотеки со всеми зависимостями. При этом следить за параметрами компиляции. Разные зависимости могут собираться разными системами сборки. Если ошибиться в параметрах компилятора или версии компилятора, программа не соберётся или будет работать неправильно. Также может возникнуть конфликт версий — когда разные зависимости имеют несовместимые ревизии.)

Подведем итоги

В C++ можно детально регулировать большинство операций. Например, указывать собственный аллокатор — контроллер операций с памятью. Чем больше возможностей, тем легче ошибиться и тем больше нужно знать, чтобы правильно пользоваться этими возможностями. Поэтому начать программировать на C++ может быть сложнее, чем на другом языке, который не позволяет производить такую тонкую настройку. Всё зависит от того, какую задачу необходимо решить. Например, для программирования высоконагруженных систем нужно понимать принципы работы процессора.Чтобы начать изучать C++, нужны те же базовые знания и умения, что и для изучения любого языка программирования: понимать, что такое алгоритм и как он работает.

Литература

https://practicum.yandex.ru/blog/yazyk-c-plus-dlya-chego-nuzhen/