天天看點

C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐

作者:不秃頭程式員
C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐

本月初,C++ 官方宣布開啟一年一度的全球 C++ 開發者調查。曆經一周時間,全球共有 1200+ 位開發者參與了本次調查。對本次問卷資料進行統計分析後,日前 C++ 正式公布了此次調查的結果報告《2024 年 C++ 開發者年度調查“精簡版”》,并已将調查結果送出給 C++ 标準委員會,以幫助指導 C++ 的發展。

在公布本次調查報告時, C++ 官方補充說明了一點:“調查上線後,我們發現 SurveyMonkey(一款線上調查問卷工具)拒絕了來自某些國家/地區的回報。他們并沒有通知我們會發生這種情況,是以我們今年沒有收到來自往年都包含在内的某些國家/地區的問卷。我們承諾在明年解決這個問題,因為我們确實希望聽到全球所有 C++ 程式員的聲音。”

1、你在哪些地方使用 C++?(請選擇所有适用選項)

C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐

在這個問題中,大多數開發者(91.05%)表示會在工作中使用 C++,側面反映了 C++ 在商業和職業環境中的廣泛應用。另外,C++ 的靈活性和性能可涉及各種領域,包括遊戲開發、機器人、算法實作等,是以有相當數量的開發者(67.59%)會在其個人時間中使用 C++,用于業餘愛好項目或嘗試新事物。

2、 你具體有多少年的 C++ 程式設計經驗?

C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐

調查結果顯示,有 33.68% 的受訪者擁有 10-20 年的 C++ 程式設計經驗,其次是大于 20 年的開發者(26.55%)。這表明在此次調查中,超過六成的開發者具有超過 10 年的 C++ 程式設計經驗,他們可能長期從事與 C++ 相關的工作或項目,有着豐富的經驗和技能。

相較之下,具有 1-2 年 C++ 程式設計經驗的占比僅有 5.15%,這部分人群可能是新手程式員或對 C++ 還較為陌生的人群,近來才開始學習和使用這門語言。

3、你總共有多少年的程式設計經驗(所有語言)?

C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐

如果不局限于 C++,則近四成開發者(39.04%)擁有超過 20 年的程式設計經驗。這部分開發者可能早期就開始涉足程式設計并持續積累經驗,其中或許也包括了長期的 C++ 程式設計。

4、你從事哪些類型的項目?(請選擇所有适用選項)

C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐
C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐

作為一種功能強大的程式設計語言,C++ 被廣泛應用于各種領域,包括但不限于系統軟體開發、嵌入式系統、遊戲開發等。

資料顯示,在受訪者中有 31.51% 的人從事工程領域,涵蓋了例如航空電子裝置、電源管理等,往往需要高性能和可靠性。緊随其後的是硬體/物聯網項目,占比為 29.92%。這可能涉及到嵌入式系統的開發、傳感器技術、物聯網裝置等,在這類需要高效處理硬體互動的場景,C++ 的優越性能和具有底層控制能力的特點非常适用。另外,開發工具和遊戲開發也占據了較大比例,分别為 27.38% 和 20.87%。在這些項目中,C++ 是部分開發者的首選語言。

5、你為哪些平台進行開發?(請選擇所有适用選項)

C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐
C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐

在受訪者中,有最高比例的人(60.56%)為 Windows 桌面平台進行開發,這表明 C++ 在 Windows 桌面開發中占有主導地位。其次是 Linux 桌面平台和 Linux 伺服器平台,分别為56.75% 和 57.30%,即 C++ 在 Linux 系統上的廣泛應用,不僅涵蓋了桌面應用,也包括了伺服器端的開發,例如系統軟體、網絡服務等。另外,嵌入式系統也是 C++ 的一大開發領域,占比為 32.22%。

6、在 C++ 開發過程中,你覺得哪些問題最大?

C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐
C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐
C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐
C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐

對于 45.43% 的受訪者來說,管理應用程式所依賴的庫是他們在 C++ 開發中最為頭疼的主要問題,其次是建構時間(42.86%),還有 30% 的開發者認為從零開始建立持續內建管道(自動建構、測試......)以及管理 CMake 項目也是不容忽視的問題。

與上面的問題相比,近半數開發者(49.24%)指出,調試代碼中的 Bug 雖然也是難題,但算不上是主要痛點。

7、你如何管理你的 C++ 第一和第三方庫?(請選擇所有适用選項)

C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐

開發者在管理 C++ 第一和第三方庫時采取了多種方法,最常見的方法是将庫源代碼包含在項目中,将其與項目一起編譯,占比為 68.54%。這種方法的優點很明顯:可確定項目的可移植性和穩定性,同時也允許對庫進行定制和修改,以滿足項目特定的需求。

其次是用庫的說明單獨編譯庫,這部分占比 48.48%,可将庫的編譯過程與項目分離,也能夠提高代碼的複用性和可維護性。還有 37.80% 的受訪者用系統軟體包管理器,如 apt、brew 等,簡化了依賴關系的管理,更友善進行庫的更新和更新。

8、你使用哪些建構工具?(請選擇所有适用選項)

C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐
C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐

調查結果顯示,廣泛用于管理和建構 C++ 項目的 CMake 是最受歡迎的建構工具,其跨平台特性和豐富的功能使其成為了主流選擇——在 1200+ 名受訪者中超過 1000 人都選擇了 CMake,占比高達 83.24%。其次是 Ninja,占比為 45.41%,通常與 CMake 結合使用,用于加速項目的建構過程,在一些大型項目或需要頻繁建構的場景中備受青睐。Make/nmake 也是另一個常見的建構工具,開發者使用占比為 36.31%。

9、在你目前的項目(工作或學習)中,允許使用哪個版本的 C++?

C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐
C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐

在所有 C++ 版本中,目前 C++ 11 的使用範圍最廣,有 90.81% 的開發者表示 C++ 11 的功能幾乎可全部使用。而最新的 C++ 23 則有 61.17% 的人指出其所在環境不支援使用。

10、在未來 12 個月内,你目前的項目是否計劃開始允許使用更多較新的 C++ 标準功能?

C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐

針對這個問題,有 53.92% 的開發者計劃在未來 12 個月内使用更多較新的 C++ 标準功能,側面反映了對于采用最新 C++ 标準的需求和趨勢,充分利用這些新的功能,以保持其在競争激烈的市場中的競争力。

另一方面,也有 21.12% 的受訪者表示沒有這個計劃。這可能是出于項目的穩定性和安全性等方面的考慮,也可能是因為項目中的代碼基礎較大,引入新的 C++ 标準功能可能會帶來一些不必要的風險和複雜性。

11、特别是針對 C++20/23 的主要功能: 在未來 12 個月内,你目前的項目是否計劃允許在生産代碼中使用這些功能?

C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐

對于 C++20/23 的主要功能,開發者在未來 12 個月内計劃允許在生産代碼中使用的情況有所不同,主要集中在 Concepts、Coroutines 和 Modules 這三個方面。

Concepts 是 C++20 引入的一項重要特性,用于限制模闆的類型參數,進而提高代碼的清晰度和可讀性。這也是本次受訪者中最受關注的主要功能,占比為 60.45%。其次是 Coroutines(co_await 等),可用于編寫異步代碼,提高代碼的并發性和響應性,有 34.13% 的開發者計劃未來 12 個月内在生産代碼中使用該功能。29.25% 受訪者選擇的 Modules 也是 C++20 中引入的另一個重要特性,用于改進代碼的組織和建構效率。

12、除 C++ 外,你在目前和最近的項目中還使用哪些程式設計語言/環境?(請選擇所有适用選項)

C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐
C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐
C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐

除 C++ 外,Python 因其簡潔的文法、豐富的标準庫和廣泛的應用領域而備受歡迎,是受訪者中使用最多的其他程式設計語言,占比為 72.82%。使用第二多的是 C,常用于編寫作業系統、嵌入式系統、遊戲引擎等方面,第三則是 JavaScript ( 27.43%)。緊接着是 C# 和 Rust,分别占比 23.76% 和 18.37%,前者用于 Windows 平台的應用程式開發,後者因其安全性近年來也備受大廠青睐。

13、你使用哪些開發環境(IDE)或編輯器進行 C++ 開發?

C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐
C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐
C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐
C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐
C++ 11 接受度最廣!2024 年 C++ 開發者年度調查報告最新出爐

在進行 C++ 開發時,受訪者使用的開發環境(IDE)或編輯器主要包括 Visual Studio、Visual Studio Code、CLion、Vim、Emacs 等。

其中 Visual Studio 是受訪者中使用最多的開發環境(62.03%),在 Windows 平台上廣泛用于 C++ 開發。其次是 Visual Studio Code(簡稱 VS Code),占比為 50.27%,支援多種程式設計語言,通過插件可擴充其功能,使其成為了許多開發者的首選工具之一。

由 JetBrains 公司推出專門針對 C++ 開發的內建開發環境 CLion 也受到了 45.32% 開發者的喜愛,另外 Vim 和 Emacs 也分别占比為 36.96% 和 38.79%。

檢視完整報告,可詳見:https://isocpp.org/files/papers/CppDevSurvey-2024-summary.pdf

繼續閱讀