當前位置: 妍妍網 > 碼農

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

2024-04-19碼農

整理 | 鄭麗媛

出品 | 程式人生(ID:coder_life)

本月初,C++ 官方宣布開啟一年一度的全球 C++ 開發者調查。歷經一周時間,全球共有 1200+ 位開發者參與了本次調查。對本次問卷數據進行統計分析後,日前 C++ 正式公布了此次調查的結果報告【2024 年 C++ 開發者年度調查「精簡版」】,並已將調查結果送出給 C++ 標準委員會,以幫助指導 C++ 的發展。

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

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

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

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

調查結果顯示,有 33.68% 的受訪者擁有 10-20 年的 C++ 編程經驗,其次是大於 20 年的開發者(26.55%)。這表明在此次調查中,超過六成的開發者具有超過 10 年的 C++ 編程經驗,他們可能長期從事與 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++ 開發過程中,你覺得哪些問題最大?

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

與上面的問題相比,近半數開發者(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 這三個方面。

Concepts 是 C++20 引入的一項重 特性,用於約束樣版的型別參數,從而提高程式碼的解析度和可讀性。這也是本次受訪者中最受關註的主要功能,占比為 60.45%。其次是 Coroutines(co_await 等),可用於編寫異步程式碼,提高程式碼的並行性和響應性,有 34.13% 的開發者計劃未來 12 個月內在生產程式碼中使用該功能。29.25% 受訪者選擇的 Modules 也是 C++20 中引入的另一個重要特性,用於改進程式碼的組織和構建效率。

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

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

13、你使 用哪些開發環境(IDE)或編輯器進行 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://is ocpp.org/files/papers/CppDevSurvey-2024-summary.pdf

推薦閱讀:

4 月 25 ~ 26 日,由 CSDN 和高端 IT 咨詢和教育平台 Boolan 聯合主辦的「 全球機器學習技術大會 」將在上海環球港凱悅酒店舉行,特邀近 50 位技術領袖和行業套用專家,與 1000+ 來自電商、金融、汽 車、智慧制造、通訊、工業互聯網、醫療、教育等眾多行業的精英參會聽 眾,共同探討人工智慧領域的前沿發展和行業最佳實踐。 歡迎所有開發者朋友存取官網 http://ml-summit.org、點選「閱讀原文」或 掃碼 進一步了解詳情。