УДК 004

Исследование языка программирования С++, его особенностей и актуальности

Свищёв Андрей Владимирович – старший преподаватель кафедры Практической и прикладной информатики МИРЭА – Российского технологического университета.

Яковлев Андрей Максимович – студент МИРЭА – Российского технологического университета.

Аннотация: Данная статья посвящена исследованию языка программирования С++. Производится анализ его преимуществ и недостатков в сравнении с аналогами. Изучается востребованность С++ с использованием статистических данных. Отдельно рассматривается вопрос актуальности языка и его практической значимости на сегодняшний день.

Ключевые слова: языки программирования, С++, анализ, статистические данные.

Последние несколько десятков лет отличаются высокими темпами развития компьютерных технологий. Современные мобильные телефоны располагают объемами памяти, в кратное число раз превышающими объемы памяти ЭВМ образца второй половины прошлого столетия. В ногу со временем развиваются и языки программирования. Мощные компьютеры требуют более сложных программ, для которых, в свою очередь, необходимо решать новые задачи управления и сопровождения [2].

Большинство из наиболее востребованных сегодня языков программирования появились в начале 90-х годов и позднее. В это же время существует язык С++, который активно эксплуатируется уже на протяжении порядка 40 лет. Особое значение приобретает вопрос его актуальности и практической значимости в настоящее время.

Изначально Бьёрн Страуструп, разработчик С++, создавал его для собственных нужд. Существующие на тот момент языки были малоэффективны в решении прикладных задач его предметной области ввиду своей малой выразительности или близости к низкоуровневым. Концепция, сформированная Страуструпом, заключалась в совершенствовании языка C путем добавления элементов объектно-ориентированного программирования. Представленный миру в начале 80-х годов, «C с классами», позже переименованный в C++, в кратчайшие сроки завоевал всемирную популярность, чему способствовал расчет на переносимость – реализации С++ поддерживались на большинстве поддерживающих С систем.

Язык программирования открывает программисту возможности к реализации подлежащих выполнению операций, а также создает понятия, которыми программист оперирует, размышляя о выполняемой задачи.

К достоинствам, обосновывающим выбор С в качестве базового языка для С++ Страуструп относил [1]:

  • универсальность, краткость и относительно низкий уровень;
  • эффективность в решении задач системного программирования;
  • подходит для любой системы и для любой машины;
  • полностью подходит для программной среды UNIX.

К основным преимуществам С++ можно отнести:

  • Совместимость с С. С++ полностью поддерживает реализации своего базового языка;
  • Поддержка объектно-ориентированного подхода. Способствует упрощению работы с кодом, повышению надежности и уменьшению сложности программного обеспечения;
  • Система шаблонов. Многие алгоритмы и структуры данных устроены одинаково, независимо от типов. Шаблоны позволяют создать единый алгоритм, основанный только на общих свойствах. Это расширяет возможности для оптимизации исходного кода;
  • Активная поддержка. Стандарты для С++ до сих пор обновляются и дополняются, а сам язык активно поддерживается большим сообществом, разрабатывающими новые шаблоны и библиотеки;
  • Скорость исполнения кода. Позволяет разрабатывать приложения и программы с высокими показателями производительности.

Могут быть выделены следующие недостатки языка:

  • Повышенная сложность. Освоение С++ усложняется непростым синтаксисом. Он значительно строже и требовательнее в сравнении со многими аналогами, что делает код менее прозрачным и читаемым. Сюда же может быть отнесена указательная логика. Её понимание является обязательной частью программирования на С++, однако она также достаточно строгая по отношению к программисту. Тем не менее, само наличие указателей не является недостатком;
  • Унаследованные от C недостатки. К их числу можно отнести малую интуитивность синтаксиса, описанную ранее, а также примитивность системы метапрограммирования. Второй недостаток довольно критичен ввиду того, что устаревший препроцессор ограничивает программиста, а также создает для него дополнительную работу по обходу потенциальных проблем;
  • Отсутствие системы автоматического управления памятью. Механизм «сборки мусора», периодически удаляющий неиспользуемые объекты, предотвращает возникновение утечек памяти и висячих ссылок, способствуя повышению безопасности доступа к памяти. Его отсутствие увеличивает объем работы для программиста. Однако важно отметить, что ручное управление памятью также имеет некоторые преимущества.

С целью исследования востребованности С++ был проведен опрос среди 327 респондентов, окончивших или обучающихся в нескольких российских ВУЗах на направлениях, тесно связанных с компьютерными технологиями. Отбор производился таким образом, что каждый респондент располагает опытом использования от 2-х и более языков программирования. Вопрос, на который было предложено ответить респондентам, был сформулирован следующим образом: «Какой язык программирования является для вас наиболее предпочтительным?». Диаграмма, отражающая результаты опроса, представлена ниже:

1

Рисунок 1. Результаты опроса.

Перед анализом данных, приведенных на рис. 1, необходимо отметить факт того, что статистические данные не являются полностью репрезентативными. В иных условиях результаты могли быть иными. Однако этих данных достаточно для того, чтобы выполнить цель исследования. Данные позволяют утверждать, что С++ один из самых востребованных языков программирования среди респондентов. Этому есть объяснимые причины.

C++ является одним из лучших языков программирования как для начинающих, готовых столкнуться с трудностями, так и для опытных программистов за счёт того, что поддерживает ключевые концепции и методы, встречающиеся в программах на практике. Ввиду широкого распространения языка, программы, написанные на С++, могут встречаться в самых разных прикладных областях. Помимо этого, существует точный и полный международный стандарт языка С++, не защищенный патентом. Многие парадигмы программирования, изученные при его освоении, применимы и для других языков программирования, которые могут как относиться к семейству Си, так и выходить за его рамки [3].

Тем не менее важно отметить, что абсолютно универсальных языков не существует. Для решения различных прикладных задач наиболее подходящими будут и разные языки программирования. Выбор языка программирования аналогичен, к примеру, выбору автомобиля. Любитель чаще выбирает язык программирования, основываясь на собственных предпочтениях: кому-то симпатичен TypeScript, а кому-то JavaScript. Критерии выбора могут быть самые разные, начиная от синтаксиса и заканчивая указательной логикой. Профессионал в свою очередь делает выбор, исходя из прикладной области. Так специалист в области разработки серверных приложений выберет Java, а Data-аналитик предпочтет выбрать Python. C++ же лучше всего подойдет для разработки высокопроизводительных приложений. Такими приложениями могут быть операционные системы, драйверы, микроконтроллеры, браузеры, видеоигровые продукты, нейросети.

На сегодняшний день сомневаться в актуальности языка не приходится. Многие инструменты, фреймворки и приложения выстроены вокруг производительности и результативности С++. Им продолжают пользоваться доминирующие в IT-сфере компании, такие как Microsoft и Google. Рядовому пользователю язык поможет глубже понять компьютерную логику, что впоследствии применимо при освоении и других языков программирования.

Рынок программного обеспечения полнится продуктами, разработанными или перешедшими на С++. К их числу относятся Windows, Google Chrome, Microsoft Office, Blender, Adobe Photoshop, WinRAR и многие другие успешные продукты [6].

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

Список литературы

  1. Страуструп Б. Язык программирования С++ // Изд-во «Addison–Wesley», 1991.
  2. Прата С. С++ Лекции и упражнения 6-е издание // Москва: Изд-во «И.Д. Вильямс», 2012.
  3. Страуструп Б. Программирование: принципы и практика использования C++, исправленное издание C++. — Москва: Изд-во «И. Д. Вильямс», 2011. — С. 1248.
  4. wikipedia.org – сайт свободной энциклопедии.
  5. О ненависти к С++ [электронный ресурс] // https://habr.com/ru/post/111199.
  6. 22 важнейшие программы на С++ [электронный ресурс] // https://dzen.ru/media/poznyaevru/22-vajneishie-programmy-na-c-600493baf8011c4a01a95510.

Интересная статья? Поделись ей с другими: