C++

分享:

这些问题仅向选择 C++ 作为其三种主要编程语言之一的开发者显示。

您经常使用哪种(哪些)C++ 标准?

很高兴看到迁移稳步推进。我特别高兴看到游戏开发者接受 C++20,我期待所有游戏平台的支持。供应商实现起来将是一个挑战,但我相信,仅就概念和范围而言这都是值得的。

Guy Davidson

Creative Assembly 工程实践主管

C++20 的采用率让我相当惊讶。情况显然正在发生变化。可以看到,采用新标准的速度比过去快得多。

Jason Turner

C++ 培训师、演讲者、作者YouTuber

我很高兴看到绝大多数用户都在使用过去 5 年的版本。另外,C++11 之前的版本下降到 10% 以下也是个好消息。再过几年,我们就可以停止把它们添加到调查了!

Titus Winters

Google 首席工程师

C++ 标准迁移

始终记住,用户散布在标准时间轴上。这样的调查提醒我们编写适用于任何地方的代码,而不仅仅是最新的标准。

Guy Davidson

Creative Assembly 工程实践主管

这让我特别惊讶,因为我还没有看到很多公司要求 C++20 培训。许多人仍然对迁移到 C++17 感到幸运。

Jason Turner

C++ 培训师、演讲者、作者YouTuber

您当前的项目是否计划在未来 12 个月内使用这些 C++20 功能?

我觉得[模块]功能还需要进一步开发,但我期待有结果能证明我是错误的。

Guy Davidson

Creative Assembly 工程实践主管

我希望我们能看到工具赶上来,在接下来的 12 个月内轻松使用模块!

Jason Turner

C++ 培训师、演讲者、作者YouTuber

您最常使用哪款 IDE/编辑器进行 C++ 开发?

JetBrains 拥有一系列 C++ IDE,有助于避免通常与 C++ 编码相关的典型陷阱和麻烦:用于跨平台和嵌入式开发的 CLion、适用于 Visual Studio 用户的 ReSharper C++,以及适用于 Unreal Engine 和 C++ 游戏开发者的 Rider

您经常使用哪种(哪些)单元测试框架?

工程师更喜欢编写代码而不是为这些代码编写测试,而且编写测试花费的时间超过真正的长期收益。

Guy Davidson

Creative Assembly 工程实践主管

四分之一的开发者不编写单元测试的统计数据让我很吃惊。我不太在乎您如何表达或您使用什么框架,但我们都需要编写测试。

Titus Winters

Google 首席工程师

您在 C++ 中如何管理第三方库?

这里反映了为第三方使用打包 C++ 代码的情况。我期待这个问题得到解决,但我并不乐观。

Guy Davidson

Creative Assembly 工程实践主管

依赖项管理和软件包管理的现状让我很难过。可重现的构建和清晰的依赖链很有价值。这个领域有太多“碰巧有用”的东西。

Titus Winters

Google 首席工程师

您经常使用哪种(哪些)项目模型或构建系统?

我把 CMake 比作 C++ 工程师的斯德哥尔摩综合征。无论如何,它都已经成为事实上的标准,明显领先于竞争对手。

Guy Davidson

Creative Assembly 工程实践主管

您经常使用哪种(哪些)编译器?

在 CLion 中,您可以使用基于 GCC 的编译器,以及 Clang、MSVC 和 IAR 编译器。对于罕见或自定义的情况,自定义编译器功能支持 CLion 中的任意编译器。

除 C++ 外,您在项目中还使用哪种(哪些)编程语言?

Python 作为 AI 和 ML 的编程语言无处不在,因此这里没有惊喜。Numpy 和 Pandas 等优质库的存在使其成为显而易见的选择。也许他们需要标准库中的类似内容,或者我们需要解决打包问题。

Guy Davidson

Creative Assembly 工程实践主管

您或您的团队使用以下哪种(哪些)工具来执行准则或进行其他代码质量或分析?

只有 30% 的人避免静态分析,我有理由相信开源代码将变得更加安全。

Guy Davidson

Creative Assembly 工程实践主管

您或您的团队如何运行代码分析?

您使用哪种(哪些)工具或技术来优化您的 C++ 项目构建时间?

在这种情况下,小就是美。我很想知道预编译的头、模块和 unity 构建在未来一年左右里如何相互作用。

Guy Davidson

Creative Assembly 工程实践主管

感谢您的参与!

我们真诚地希望您能发现我们的报告有用。与您的朋友和同事分享这份报告。

如果您有任何疑问或建议,请发送电子邮件至 surveys@jetbrains.com