{"id":14271,"url":"\/distributions\/14271\/click?bit=1&hash=51917511656265921c5b13ff3eb9d4e048e0aaeb67fc3977400bb43652cdbd32","title":"\u0420\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043d\u0430\u0442\u0438\u0432\u043e\u043a \u0438 \u0441\u043f\u0435\u0446\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 vc.ru \u2014 \u043d\u0430\u0439\u0434\u0438\u0441\u044c!","buttonText":"","imageUuid":""}

Почему C++ крут, актуален и бессмертен

Колонка от образовательного портала GeekBrains, автора курса «Разработчик С++».

В начале 80-х годов прошлого века сотрудник Bell Labs Бьёрн Страуструп после долгих мучений с существующими языками программирования провёл эксперимент со скрещиванием C и Simula. Он даже не рассчитывал, что его детище, получившее название C++, привлечёт столько внимания.

Однако тогда язык произвёл настоящий фурор: компилируемый, структурированный, объектно-ориентированный, невероятно упрощающий работу с большими программами и при этом имеющий огромный потенциал для развития. Такой, что ещё почти десятилетие потребовалось Страуструпу, чтобы наделить C++ всеми характерными особенностями. Развитие же продолжается до сих пор. К примеру, стандарт C++17 был принят в конце прошлого года.

Поэтому, если вы думаете, что C++ безнадёжно устарел, у нас для вас новость – отправить на пенсию его может только какая-нибудь невероятная технологическая революция. И вот почему.

Он быстр

Откройте любой тест производительности языков программирования (к примеру, этот), и в топе вы увидите C++, лишь С однозначно быстрее. Скорость исполнения кода — пожалуй, главный аргумент в пользу того, почему C++ был, есть и будет востребован в ИТ.

Да, для реализации локальных нужд могут подойти C, Go или Rust, но если вы хотите изучить один язык, с помощью которого можно писать программы любой сложности, ваш выбор — C++.

В противовес этому часто ставится скорость написания кода, которая, например, у интерпретируемых языков на порядок выше. В этом есть доля истины — C #, Java и конечно же Python даже визуально занимают меньше места, с их помощью можно создавать сложные программы, затратив минимум времени. Однако подумайте, что лучше для конечного пользователя: время разработки приложения или его медленная работа? Ответ очевиден.

Он универсален

Компиляторы C++ есть на каждой операционной системе, большинство программ легко переносится с платформы на платформу, со средой разработки и библиотеками у вас точно не возникнет проблем. C++ — это демонстрация идеи классического программирования, когда 90% мыслей связано с кодом и лишь 10% с используемой периферией.

Достаточно просто вспомнить, где он используется: микроконтроллеры, IoT, роботы, десктопные и мобильные приложения, веб, игры, системы моделирования, прогнозирования, обработки статистики и в нейронных сетях. Везде. Просто не существует такой области программирования, где C++ был бы бесполезен.

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

Он активно поддерживается

Речь не только об обновлениях стандартов и постоянном внедрении улучшений. C++ имеют колоссальное сообщество программистов, которые постоянно делятся библиотеками, шаблонами и кодами, приходят на помощь новичкам и опытным коллегам. При этом, в силу того, что C++ достаточно сложный язык, оно не изобилует лентяями и людьми, которые могут по 10 раз наступать на одни и те же грабли, подталкивая туда же новичков.

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

Он полезен в качестве фундамента для обучения

Java, JavaScript, C #, как и огромное количество других популярных языков программирования, содержит в основе принципы C++. Именно поэтому учебные программы многих вузов содержат курс «плюсплюс», который идёт сразу за получением основ на C.

К примеру, принцип работы Java, одного из мощнейших языков современности, достаточно сложно понять, если не начать обучение с основ, которые впервые появились именно в C++.

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

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

Он востребован

Всё вышеописанное является причиной тому, что программисты C++ востребованы по всему миру, что не в последнюю очередь сказывается на зарплатах. Так, средняя зарплата по России составляет 75 тысяч рублей. Более того, в отличие от многих популярных языков, офисная работа с которыми предполагает переезд в крупный город, востребованность программистами C++ имеет распределённый характер.

Перейдя по ссылке выше, вы узнаете, что максимальная зарплата предлагается не в Москве, а в Самарской области (средняя — свыше 100 тысяч рублей), в топе — Калужская и Липецкая.

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

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

С++ позволяет писать как в процедурном стиле, так и в объектно-ориентированном и функциональном. Так как язык используется всеми крупными компаниями, то они же его и поддерживают — есть целый комитет по стандартизации С++, в который входят все самые крупные ИТ-компании.

Каждые три года принимается новый стандарт, в котором добавляются все новые и новые возможности языка, его конструкции усложняются, но при этом код становится более читабельным.

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

Алексей Кузнецов, программист Mail.Ru Group

Благодаря корням низкоуровневого языка C, С++ позволяет проводить агрессивную оптимизацию такого уровня, который просто недоступен на языках высокого уровня. Правда, за это приходится платить сложностью управления ресурсами, которая в отличие от языков высокого уровня ложится на программиста.

Я бы сказал, что C++ скорее не универсален, а широко распространён. Да, действительно, компиляторы есть под большинство существовавших и существующих платформ. Но найти приложение, которое «от и до» написано на C++, вовсе не так сложно.

C++ активно поддерживается — тут всё верно: есть очень большое сообщество программистов, десятки книг, сотни форумов. Ищущий всегда найдёт ответ. Язык действительно позволяет многое понять, цена — сложность, а значит время на изучение.

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

Вакансий действительно много: практически везде, где жёсткие требования к производительности, требуются программисты С++. «Работая с ним, ты ощущаешь, что куда больше создаёшь, чем используешь», – увы, это так, но это один из его недостатков. Я бы не стал преподносить это как достоинство.

Игорь Семенов, ведущий программист Mail.Ru Group
0
197 комментариев
Написать комментарий...
Pavel Ivanov

Зачем это на VC?

Ответить
Развернуть ветку
Roman Taranenko

VC растет, сюда с хабра переезжают люди, блоги компаний и т.д., в аудитории портала давно не один программист.

Ответить
Развернуть ветку
Борис Ларионов

Вот интересно, а почему с хабра бегу? Надоевшая псевдоэлитарность?

Ответить
Развернуть ветку
Sam Beckett

Потому что хабр давно сдулся. По моим меркам - примерно когда разделился на Habr, Geektimes и еще какую-то лабуду. Тогда оттуда ушло много народа, который писал интересные статьи, еще часть непонятно за что забанили. Теперь хабр слил обратно все проекты в единую платформу, но былого величия там уже нет, и все это больше похоже на предсмертные конвульсии. Думаю еще год-два-три, а дальше они либо кардинально что-то поменяют, либо закроются.

Ответить
Развернуть ветку
Антон Тихомиров

Таки недавно он уже обратно собрался в Хабр, ога)

Ответить
Развернуть ветку
Sam Beckett

Таки в моем комментарии об этом тоже написано )

Ответить
Развернуть ветку
Антон Тихомиров

Оу, извиняюсь, читаю комменты всегда внимательно (как минимум чтобы такого не было), но тут отвлекся на напоминалку)

P. S. А закрыться не закроется, как говорится не дождетесь, на самом хабре статья была, где какой-то стартап решил посчитать выручку от своих будущих проектов, но так увлеклись, что нечаянно посчитали выручку хабра :D Дак вот там лямы в месяц доход, лямов пять, если не ошибаюсь, понятно что никто не будет закрывать такой клондайк. Неспроста Крючков его покупал на пару с Яндексом. Ну не на пару, а Яндекс ему в долг дал, типа отдашь когда сможешь.

Ответить
Развернуть ветку
Sam Beckett

Так о том и речь, что чем больше хабр будет "умирать", тем меньший доход он будет приносить. Опять же, 5 миллионов в месяц дохода не то, чтобы сильно много. Это ведь и зарплаты штату, и оплата технических штук, вроде серверов, да хоть даже аренда офиса.

Ответить
Развернуть ветку
Антон Тихомиров

Не-не, в том-то и прикол, что это на руки чистыми, уже за вычетом амортизации. Это данные из налоговой. Вообще, я сам психологически не могу поверить что все подобного рода - не сайты на коленках, которые работают лишь бы работать, а крупные бизнесы :/

Ответить
Развернуть ветку
Sam Beckett

А, ну в таком случае да, если это чистая прибыль - это уже интереснее звучит )

Ответить
Развернуть ветку
Антон Тихомиров

Во-воооо, во-во)))

Ответить
Развернуть ветку
194 комментария
Раскрывать всегда