C++
Поделиться:
На вопросы о C++ отвечали только те, кто выбрал его в качестве одного из трех основных языков программирования.
Поделиться:
Диего Родригес-Лосада Гонсалес
Ведущий архитектор в JFrog
Уровни использования C++23 и более ранних стандартов не вызывает удивления: темпы перехода на новый стандарт в последние годы не сильно отличаются и просто сдвинуты во времени. В 2023 году доля C++23 составляет 10%, что несколько ниже уровня C++20 в 2020 году (12%), но это, скорее всего, связано тем, что в C++20 было больше нововведений по сравнению с C++23.
Инбал Леви
Ведущая разработчица в MPGC Services Ltd (Millennium), участница рабочей группы по стандартизации C++
Приятно видеть, что значительная часть разработчиков игр и встраиваемых систем уже работает с C++20. Эта версия расширяет возможности компиляции, что особенно важно в этих областях разработки, ведь там большое внимание уделяется производительности во время выполнения. Надеюсь, в ближайшие годы мы сможем наблюдать такие же темпы перехода на C++23.
Брайс Адельштейн Лельбах
Главный архитектор в NVIDIA
Резкий скачок C++20 вполне логичен, поскольку реализации стали гораздо более зрелыми, а функции завершенными. Думаю, в ближайшие несколько лет мы увидим, как C++20 заменит C++17 в качестве базового диалекта для большинства пользователей языка.
Диего Родригес-Лосада Гонсалес
Ведущий архитектор в JFrog
57% тех, кто использует C++98/03, не собираются переходить на другой стандарт? Звучит печально, но если учесть, что в целом только 8% респондентов все еще пишут на C++98/03, то получается, что только около 4% C++-кода во всем мире останется на старом стандарте. Это не так плохо и не сильно отличается от происходящего в других языках программирования.
Диего Родригес-Лосада Гонсалес
Ведущий архитектор в JFrog
Хотя за последнее время в системах сборки и в экосистеме многое было сделано для поддержки модулей C++20, то, что половина опрошенных планируют их использовать (я предполагаю, в продакшне) уже в следующем году, кажется мне чересчур оптимистичной оценкой. Я не думаю, что мы достигнем этого в ближайшие 12 месяцев.
Инбал Леви
Ведущая разработчица в MPGC Services Ltd (Millennium), участница рабочей группы по стандартизации C++
Меня очень радует быстрый темп принятия новых возможностей в области встраиваемых систем, в которой традиционно не спешат внедрять новое. Думаю, это также связано тем, какие важные преимущества может дать C++20 в этой области.
Брайс Адельштейн Лельбах
Главный архитектор в NVIDIA
Интересно, сколько людей в действительности попробовали использовать модули. Интерес к ним велик, но не так много кто их внедряет.
Диего Родригес-Лосада Гонсалес
Ведущий архитектор в JFrog
На рынке явно доминируют Microsoft и JetBrains. Похоже, быстрый рост VS Code наконец-то замедлился (по крайней мере, среди аудитории C++) и ситуация на рынке начала стабилизироваться в равных долях для трех основных игроков: CLion, VS и VS Code.
Диего Родригес-Лосада Гонсалес
Ведущий архитектор в JFrog
29% до сих пор не пишут юнит-тесты для C++-кода, что очень печально. Даже если с годами эта цифра продолжит постепенно снижаться, это будет происходить недостаточно быстро. Будущее языка также зависит от исправления подобных вещей.
Инбал Леви
Ведущая разработчица в MPGC Services Ltd (Millennium), участница рабочей группы по стандартизации C++
Меня удивляет количество разработчиков, пишущих юнит-тесты без фреймворков. В комитете ведется работа по продвижению менеджеров зависимостей, что, я надеюсь, повлияет на снижение этих показателей в ближайшие годы как среди тех, кто вообще не пишет юнит-тесты, так и среди тех, кто делает это без фреймворка.
Диего Родригес-Лосада Гонсалес
Ведущий архитектор в JFrog
Приятно видеть, что все меньше разработчиков компилируют библиотеки вручную по инструкциям. Есть надежда, что использование автоматизированных решений позволит еще больше сократить эту практику, уникальную для экосистем C и C++.
Инбал Леви
Ведущая разработчица в MPGC Services Ltd (Millennium), участница рабочей группы по стандартизации C++
Я думаю, что это отличный признак того, что в сообществе C++ необходима широкая поддержка менеджеров зависимостей.
Брайс Адельштейн Лельба х
Главный архитектор в NVIDIA
Рано или поздно настанет поворотный момент, когда менеджеры зависимостей (vcpkg, Conan и т.п.) станут достаточно зрелыми и широко используемыми, чтобы стать стандартом дефакто. Но пока мы к этому не пришли.
Брайс Адельштейн Лельбах
Главный архитектор в NVIDIA
Интересно наблюдать за падением доли CMake и ростом Ninja. Такой тенденции я не замечал. Возможно, это просто шум, но, учитывая быстрый рост CMake до этого момента, эти данные могут говорить о том, что он достиг максимального уровня проникновения на рынок.
Диего Родригес-Лосада Гонсалес
Ведущий архитектор в JFrog
Python — еще один полезный инструмент в арсенале C++-разработчика.
Брайс Адельштейн Лельбах
Главный архитектор в NVIDIA
Похоже, активное использование JavaScript и Rust в сочетании с C++ — это новый тренд. Учитывая растущую популярность Rust, странно, что мы не наблюдаем еще более быстрого роста комбинации Rust и C++. Это говорит о том, что использовать Rust в существующих проектах (в отличие от новых) может быть сложнее.
Брайс Адельштейн Лельбах
Главный архитектор в NVIDIA
Я думаю, что уменьшение доли инструментов анализа, предоставляемых IDE, говорит о том, что люди включают статический анализ в процессы CI, например, запускают статический анализатор Clang-tidy/ClangFormat/Clang в GitHub Actions.
Диего Родригес-Лосада Гонсалес
Ведущий архитектор в JFrog
Пять-десять лет назад на рынке IDE для С++ по сути доминировал один продукт — Visual Studio, ориентированная на Windows. Люди работали в Windows только для того, чтобы иметь доступ к хорошей IDE. Сегодня здесь есть два основных игрока, JetBrains и Microsoft, и это очень хорошо для пользователей. Благодаря Visual Studio Code и CLion IDE стали гораздо доступнее для тех, кто не пользуется Windows.
Спасибо, что уделили время!
Если результаты исследования показались вам интересными, поделитесь ими с друзьями и колле гами.
Если у вас есть вопросы или пожелания, свяжитесь с нами по адресу surveys@jetbrains.com.