C++

На вопросы о языке C++ отвечали только те, кто выбрал его в качестве одного из трех основных языков программирования.

Какие стандарты C++ вы регулярно используете?

12%41%39%46%13%C++20C++17C++14C++11C++98 / C++03

Разработчики продолжают переходить на новые стандарты C++. Доля респондентов, использующих C++20, подскочила до 12%.

11%36%44%47%18%C++20C++17C++14C++11C++98 / C++03

Ответы на некоторые вопросы, включая этот, мы распределили по трем группам в зависимости от того, какое ПО разрабатывают респонденты и к каким сферам относятся их компании. Эти группы отражают три основных направления C++-разработки: встраиваемые системы, финансы и игры.

Планируете ли вы перейти на другой стандарт C++ в ближайшем году?

50%14%10%19% 8%Не планируюна C++11на C++14на C++17на C++20

Примерно половина пользователей C++ в этом году планируют перейти на другой стандарт.

Какую IDE или редактор вы используете чаще всего для разработки на C++?

26%22%22% 7% 4% 4% 3% 3% 2% 2% 1% 3%Visual StudioCLionVisual Studio CodeVi/VimQtCreatorSublimeXcodeAtomEmacsEclipse CDTNetBeansДругое

26%25%22% 6% 4% 4% 4% 3% 2% 2% 1% 1%Visual StudioVisual Studio CodeCLionVi/VimAtomEmacsQtCreatorXcodeNetBeansSublimeEclipse CDTДругое

Мы недавно представили ознакомительную версию Rider для Unreal Engine и надеемся увидеть ее в этом списке инструментов для разработки игр в следующем году.

Какие фреймворки вы регулярно используете для юнит-тестирования?

31%14% 6% 6% 3% 1%15%34% 4%Google TestCatchBoost.TestCppUnitdoctestCppUTestЯ не использую фреймворкиЯ не пишу юнит-тесты для C++Другое

Catch переместился на второе место, обогнав Boost.Test и CppUnit.

31%12% 5% 6% 2% 2%19%32% 2%Google TestCatchBoost.TestCppUnitdoctestCppUTestЯ не использую фреймворкиЯ не пишу юнит-тесты для C++Другое

Какие менеджеры зависимостей вы используете в своих проектах?

23%10% 8% 6% 3% 1% 4%49%Я использую системный менеджер пакетовNugetvcpkgConanbuild2HunterДругоеНет

Половина C++-разработчиков не используют никаких средств управления зависимостями.

23%10% 7% 6% 5% 2% 6%46%Я использую системный менеджер пакетовNugetvcpkgConanbuild2HunterДругоеНет

Какие методы сообщения об ошибках разрешены в вашем текущем проекте (рабочем или учебном)?

79%Исключения (throw, try,catch)
51%Числовые коды ошибок(например, errc,error_code, HRESULT)
22%Классы, хранящиерезультат и ошибки(например,Boost.Expected,Boost.Outcome)

Какие модели проектов или системы сборки вы регулярно используете?

53%35%29% 7% 7% 5% 3% 3% 2% 1% 4%13%CMakeПроектная модель Visual StudioMakefilesПроект XcodeСобственная система сборкиQmakeAutotoolsBazelBoost.BuildSConsДругоеНет

Как и в предыдущие годы, лидирующими системами сборки остаются CMake, проектная модель Visual Studio и Makefiles.

54%35%34%11% 7% 7% 4% 3% 3% 2% 4% 8%CMakeMakefilesПроектная модель Visual StudioСобственная система сборкиQmakeПроект XcodeAutotoolsBazelBoost.BuildSConsДругоеНет

Какие компиляторы вы регулярно используете?

74%43%32% 9% 5% 3%GCCClangMSVCIntelСобственная разработкаДругое

Популярность Clang неуклонно растет, а доля GCC увеличилась впервые за 4 года.

79%42%33% 8% 7% 5%GCCClangMSVCIntelСобственная разработкаДругое

Какие инструменты вы используете для соблюдения стандартов или контроля качества кода?

36%23%20%13% 9% 6% 2% 2%Инструмент, встроенный в IDE (Visual Studio, ReSharper C++, CLion и т. п.)Clang-tidyClang-analyzer / Clang Static AnalyzerCppcheckCpplintCoverityParasoft C/C++testStack
Все результаты

Растущая популярность Clang влечет за собой востребованность таких инструментов, как Clang-tidy и Clang-analyzer.

Какие рекомендации или руководства вы или ваша команда активно используете?

29%26%24% 9% 5% 5% 3% 3%Эффективное использование C++ (серия книг Скотта Мейерса)Стилистическое руководство Google по C++C++ Core Guidelines — основной проект (github.com/isocpp/CppCoreGuidelines)Стандарты программирования на С++ (книга Герба Саттера и Андрея Александреску)Guru of the Week / Exceptional C++ (блог и книги Герба Саттера)C++ Core Guidelines — специальная ветка компании, дополненная внутренними правиламиAbseil: советы неделиHigh Integrity C++ Coding Standard (Programming Research)
Все результаты

Спасибо, что уделили время!

Если результаты исследования показались вам интересными, поделитесь ими с друзьями и коллегами.

Присоединяйтесь к JetBrains Tech Insights Lab

Участвуйте в опросах и UX-исследованиях JetBrains, чтобы помочь нам улучшить наши продукты. Среди участников исследований разыгрываются призы.

Если у вас есть вопросы или пожелания, свяжитесь с нами по адресу surveys@jetbrains.com.

© JetBrains s.r.o., 2000—2020. Все права защищены.