在公布本次调查报告时,C++官方补充说明了一点:“调查上线后,我们发现SurveyMonkey(一款线上调查问卷工具)拒绝了来自某些国家/地区的反馈。他们并没有通知我们会发生这种情况,所以我们今年没有收到来自往年都包含在内的某些国家/地区的问卷。我们承诺在明年解决这个问题,因为我们确实希望听到全球所有C++程序员的声音。”
1、你在哪些地方使用C++?(请选择所有适用选项)
2、你具体有多少年的C++编程经验?
相较之下,具有1-2年C++编程经验的占比仅有5.15%,这部分人群可能是新手程序员或对C++还较为陌生的人群,近来才开始学习和使用这门语言。
3、你总共有多少年的编程经验(所有语言)?
如果不局限于C++,则近四成开发者(39.04%)拥有超过20年的编程经验。这部分开发者可能早期就开始涉足编程并持续积累经验,其中或许也包括了长期的C++编程。
4、你从事哪些类型的项目?(请选择所有适用选项)
作为一种功能强大的编程语言,C++被广泛应用于各种领域,包括但不限于系统软件开发、嵌入式系统、游戏开发等。
数据显示,在受访者中有31.51%的人从事工程领域,涵盖了例如航空电子设备、电源管理等,往往需要高性能和可靠性。紧随其后的是硬件/物联网项目,占比为29.92%。这可能涉及到嵌入式系统的开发、传感器技术、物联网设备等,在这类需要高效处理硬件交互的场景,C++的优越性能和具有底层控制能力的特点非常适用。另外,开发工具和游戏开发也占据了较大比例,分别为27.38%和20.87%。在这些项目中,C++是部分开发者的首选语言。
5、你为哪些平台进行开发?(请选择所有适用选项)
在受访者中,有最高比例的人(60.56%)为Windows桌面平台进行开发,这表明C++在Windows桌面开发中占有主导地位。其次是Linux桌面平台和Linux服务器平台,分别为56.75%和57.30%,即C++在Linux系统上的广泛应用,不仅涵盖了桌面应用,也包括了服务器端的开发,例如系统软件、网络服务等。另外,嵌入式系统也是C++的一大开发领域,占比为32.22%。
6、在C++开发过程中,你觉得哪些问题最大?
与上面的问题相比,近半数开发者(49.24%)指出,调试代码中的Bug虽然也是难题,但算不上是主要痛点。
7、你如何管理你的C++第一和第三方库?(请选择所有适用选项)
开发者在管理C++第一和第三方库时采取了多种方法,最常见的方法是将库源代码包含在项目中,将其与项目一起编译,占比为68.54%。这种方法的优点很明显:可确保项目的可移植性和稳定性,同时也允许对库进行定制和修改,以满足项目特定的需求。
其次是用库的说明单独编译库,这部分占比48.48%,可将库的编译过程与项目分离,也能够提高代码的复用性和可维护性。还有37.80%的受访者用系统软件包管理器,如apt、brew等,简化了依赖关系的管理,更方便进行库的更新和升级。
8、你使用哪些构建工具?(请选择所有适用选项)
调查结果显示,广泛用于管理和构建C++项目的CMake是最受欢迎的构建工具,其跨平台特性和丰富的功能使其成为了主流选择——在1200+名受访者中超过1000人都选择了CMake,占比高达83.24%。其次是Ninja,占比为45.41%,通常与CMake结合使用,用于加速项目的构建过程,在一些大型项目或需要频繁构建的场景中备受青睐。Make/nmake也是另一个常见的构建工具,开发者使用占比为36.31%。
9、在你当前的项目(工作或学习)中,允许使用哪个版本的C++?
在所有C++版本中,目前C++11的使用范围最广,有90.81%的开发者表示C++11的功能几乎可全部使用。而最新的C++23则有61.17%的人指出其所在环境不支持使用。
10、在未来12个月内,你当前的项目是否计划开始允许使用更多较新的C++标准功能?
针对这个问题,有53.92%的开发者计划在未来12个月内使用更多较新的C++标准功能,侧面反映了对于采用最新C++标准的需求和趋势,充分利用这些新的功能,以保持其在竞争激烈的市场中的竞争力。
另一方面,也有21.12%的受访者表示没有这个计划。这可能是出于项目的稳定性和安全性等方面的考虑,也可能是因为项目中的代码基础较大,引入新的C++标准功能可能会带来一些不必要的风险和复杂性。
11、特别是针对C++20/23的主要功能:在未来12个月内,你当前的项目是否计划允许在生产代码中使用这些功能?
对于C++20/23的主要功能,开发者在未来12个月内计划允许在生产代码中使用的情况有所不同,主要集中在Concepts、Coroutines和Modules这三个方面。
12、除C++外,你在当前和最近的项目中还使用哪些编程语言/环境?(请选择所有适用选项)
除C++外,Python因其简洁的语法、丰富的标准库和广泛的应用领域而备受欢迎,是受访者中使用最多的其他编程语言,占比为72.82%。使用第二多的是C,常用于编写操作系统、嵌入式系统、游戏引擎等方面,第三则是JavaScript(27.43%)。紧接着是C#和Rust,分别占比23.76%和18.37%,前者用于Windows平台的应用程序开发,后者因其安全性近年来也备受大厂青睐。
13、你使用哪些开发环境(IDE)或编辑器进行C++开发?
在进行C++开发时,受访者使用的开发环境(IDE)或编辑器主要包括VisualStudio、VisualStudioCode、CLion、Vim、Emacs等。
其中VisualStudio是受访者中使用最多的开发环境(62.03%),在Windows平台上广泛用于C++开发。其次是VisualStudioCode(简称VSCode),占比为50.27%,支持多种编程语言,通过插件可扩展其功能,使其成为了许多开发者的首选工具之一。
由JetBrains公司推出专门针对C++开发的集成开发环境CLion也受到了45.32%开发者的喜爱,另外Vim和Emacs也分别占比为36.96%和38.79%。