C++

Поделиться:

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

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

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

Гай Дэвидсон

Руководитель отдела разработки в Creative Assembly

Меня удивило, как широко используется C++20. Времена меняются: люди переходят на новые стандарты гораздо быстрее, чем раньше.

Джейсон Тернер

Преподаватель C++, спикер, автор, видеоблогер

Очень радует, что подавляющее большинство использует релизы последних пяти лет. И то, что количество пользователей версий до C++11 упало ниже 10%, — тоже отличные новости. Еще пара лет — и можно будет вообще не включать их в опросы!

Тайтус Уинтерс

Ведущий инженер в Google

Переход на новые стандарты C++

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

Гай Дэвидсон

Руководитель отдела разработки в Creative Assembly

Меня удивляют эти цифры, потому что пока еще мало кто заказывает обучение по C++20. Многие радуются, когда переходят на C++17.

Джейсон Тернер

Преподаватель C++, спикер, автор, видеоблогер

Планируете ли вы в ближайший год использовать в текущем проекте какие-либо из этих возможностей C++20?

Мне кажется, Modules еще нуждаются в доработке, но буду рад ошибаться.

Гай Дэвидсон

Руководитель отдела разработки в Creative Assembly

Надеюсь, инструментарий подтянется, и в ближайшем году пользоваться Modules станет удобно.

Джейсон Тернер

Преподаватель C++, спикер, автор, видеоблогер

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

JetBrains предлагает несколько IDE для разработки на C++: CLion для разработки кросс-платформенного и встраиваемого ПО, ReSharper C++ для пользователей Visual Studio и Rider для разработчиков игр на Unreal Engine и C++. Они помогут вам разобраться с тонкостями языка и облегчат взаимодействие с ним.

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

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

Гай Дэвидсон

Руководитель отдела разработки в Creative Assembly

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

Тайтус Уинтерс

Ведущий инженер в Google

Как вы управляете сторонними библиотеками в C++?

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

Гай Дэвидсон

Руководитель отдела разработки в Creative Assembly

Ситуация с управлением зависимостями и пакетами меня расстраивает. Воспроизводимость сборки и прозрачность цепочек зависимостей — это очень важно, но пока что очень многое ограничивается отношением «вроде работает».

Тайтус Уинтерс

Ведущий инженер в Google

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

Я давно уже говорю, что использование CMake сродни стокгольмскому синдрому. Как бы то ни было, де-факто она стала стандартом, и безоговорочное лидерство в этом опросе только подтверждает это.

Гай Дэвидсон

Руководитель отдела разработки в Creative Assembly

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

В CLion можно использовать компиляторы на основе GCC, а также Clang, MSVC и IAR. В особых случаях функция Custom Compiler позволяет использовать вообще любой компилятор.

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

В сфере искусственного интеллекта и машинного обучения повсеместно используется Python, так что здесь никаких сюрпризов. Вполне естественный выбор благодаря таким отличным библиотекам, как numpy и pandas. Возможно, нужно что-то похожее в стандартной библиотеке, или же надо решать проблему с управлением зависимостями.

Гай Дэвидсон

Руководитель отдела разработки в Creative Assembly

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

Только 30% людей избегают статического анализа, так что я уверен, что открытый код станет надежнее и безопаснее.

Гай Дэвидсон

Руководитель отдела разработки в Creative Assembly

Как вы или ваша команда выполняете анализ кода?

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

В данном случае мало — это хорошо. Интересно посмотреть, как в ближайшем году будут взаимодействовать предварительно скомпилированные заголовки, модули и сборки Unity.

Гай Дэвидсон

Руководитель отдела разработки в Creative Assembly

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

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

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