六成開發者日編程不足4小時,半數認爲學習新語言很困難

調查機構 ActiveStates 今年調研了包括美國、中國在內的 88 個國家、1250 名開發者,得出了這份開發者調查報告。報告顯示:超過 61% 的受訪者每天花在編程上的時間不超過 4 小時,65% 的受訪者表示不參與或維護開源項目,其中近一半 (49%) 的人將此歸咎於時間不夠。52% 的受訪者認爲增加或融入一門新語言非常困難。

InfoQ 對該調查問卷進行了編譯、解讀,希望完整展示出一個客觀的開發者生態。與此同時,我們發起了國內版開發者調查問卷,如果您想了解國內開發者的羣體畫像,期待您的參加。我們將在樣本數足夠以後,製作一份國內版開發者調查報告,以饗讀者。


本次調查的 1250 個樣本數來自美國、加拿大、中國、德國、俄羅斯、印度等在內的 88 個國家,2018 年的調查樣本則來自 92 個國家。參與人數最多的國家是美國,其次爲加拿大、德國,中國也有部分開發者參與了本次調查問卷。

受訪者中,年齡分佈最大的區間是 41-45 歲,年齡小於 25 歲的部分只佔 7.76%(97 人),30 歲以上的開發者比例高達 84%。不難看出,國外開發者的年齡普遍比較大,這一方面是由於國外開發者接觸編程比較早,另一方面也顯示出國外的工作環境對大齡程序員相對較爲友好。

工作時間安排

在 1250 份調查樣本中,38.8% 的受訪者每天只花 2-4 小時編程。這與 2018 年的調查結果相似,37% 的受訪者每天花 2-4 小時編程。相比之下,27.92% 的受訪者每天花 5-7 小時編程,而 2018 年的調查結果顯示,31% 的受訪者每天花 5-7 小時編程。

最讓人驚訝的是,2019 年總計有多達 61.52% 的受訪者花 4 小時甚至更少的時間編程,而在 2018 年,只有 51% 的受訪者花 4 小時或更少的時間編程。10.56% 的受訪者花 8 小時或更長時間編程,而 2018 年這一比例爲 19%,幾乎減少了一半。

開發者們花在寫代碼的時間上越來越少,那麼時間都去哪兒了呢?

44% 的受訪者表示,他們必須把時間花在各種各樣的活動上,包括會議、測試、維護,甚至是社交活動。花費時間最多的單一活動是軟件設計/架構,佔 11.36%,其次是參加 standups / 會議,佔 8.24%。

開發環境設置的頻率與時間

調查中,接近 69% 的受訪者一年或者一個季度創建一次新的開發環境,只有約超過 31% 的人每個季度創建一到兩個新的開發環境。此外,43.68% 的開發者創建一個新的開發環境需要花 2-4 個小時,28.72% 的人只需不到一小時,27.6% 的人需要花費 5 個小時甚至更長時間。

從上面的問題可以看出,如果每年只需要不到一小時的時間配置一個新的開發環境,那麼對生產力的影響可以忽略不計。與此相反,有人每月都要建立新的開發環境,並且花費 18 個小時來完成。也就是說,一年 2000 個小時的工作時間裏,設置開發環境就可能佔到總開發時間的 10%。

新軟件項目的頻率

總體而言,61.4% 的受訪者至少每個季度啓動一次新項目,這一結果與 2018 年的 61% 幾乎相同。然而,2019 年的調查結果顯示,每週開工一次的受訪者比例從 12% 下降到了 8.24%,每季度開工一次的受訪者比例從 26% 上升到了 29.2%。雖然約 32% 的受訪者每月或更頻繁地啓動新項目,但調查顯示,只有約 14% 的受訪者爲該項目構建新的開發環境。

花在 issue 上的時間

加權結果顯示,開發者的大部分時間花在了與安全性或代碼相關的問題上,花費在構建庫或包、管理依賴關係相關問題上的時間幾乎相等,分別是 1.77 和 1.72。受訪者只花了 70% 的時間致力於解決許可證相關問題。

72.81% 的受訪者表示,幾乎從未花時間研究過開源許可證。61.67% 的受訪者將部分時間花在管理依賴關係上。應該指出的是,與去年相比,這一結果有顯著下降,當時 75% 的受訪者表示,部分時間花在了管理依賴關係和開發工具上。

此外,ActiveState 詢問了受訪者在構建庫或包時遇到問題的頻率。2018 年,71% 的受訪者在構建庫或包的過程中遇到了問題。而今年僅有 61.19% 的受訪者表示在這項工作上花費了不少時間。

開發語言

當受訪者被問及目前正在使用哪種編程語言時,前三種最流行的語言是 SQL(80.4%)Javascript(76.8%)Python(72.08%)。而在近日 Newly 聯合創始人 Indrek Lasn 的預測中,Rust 將成爲接下來兩年的主流編程語言,依據則是 Rust 連續三年在 StackOverflow 調查中成爲最受歡迎的語言,目前很多學校也開始考慮在授課中增加該語言,但就這份榜單而言,僅有 8.4% 的受訪者在使用 Rust,排名接近倒數,很難讓人相信這會在接下來兩年成爲主流。

在專爲科技專業人士提供見解和分析的 Dice Insights 網站看來,Ruby、Haskell、Objective-C、R 及 Perl 五種編程語言可能會逐漸走向衰落,而在這份榜單中,目前正在使用 Perl、Ruby 和 R 語言的受訪者不在少數,不清楚這部分使用者是否考慮在未來更換選擇。

滿意度

Python 是第三大受訪者採用最多的編程語言,同時也收穫了最高滿意度,76.58%的受訪者認爲 Python 基本是讓人滿意的,這相比 2018 年的結果有顯著增長,當時只有 68%的受訪者表示基本滿意。

作爲採用度最高的語言,對 SQL 感到滿意的受訪者達 66.09%,排名第四。JavaScript 的採用度雖然排名第二,但在滿意度榜單僅排到第 10 位,在《Cost of JavaScript In 2018》一書中,作者指出,如果一個交互式網站經常混合使用 CSS、JavaScript、圖像和字體,那麼“JavaScript 永遠是開銷最大的那一部分”。

事實上,JavaScript 的快速處理意味着更快地下載、解析、編譯和執行腳本。腳本下載時間主要由腳本大小和網絡性能決定,而解析和編譯時間則是由 JavaScript 引擎中使用的技術和設備性能(CPU 和內存性能)所決定,執行時間明顯受到 CPU 制約。這或許是造成 JavaScript 滿意度不高的原因之一,但近幾年已經有不少圍繞此問題的解決方案和討論。

對於是否考慮更換編程語言,尤其是滿意度較低的選擇,大部分受訪者依舊不想更換。換句話說,添加新語言的痛苦超過了使用該工具的好處。當痛苦大於收益時,這件事情的性價比就被降低了。

設置,部署,運行時

挑戰

爲了更好地提煉開發人員目前面臨的挑戰,榜單列舉了開發時可能遇到的問題,比如添加新的編程語言、開源代碼的安全問題、依賴、開源代碼的許可問題、複用性等。其中,添加一門新編程語言的難度連續兩年位居榜首,開源代碼的安全問題緊隨其後,54% 的受訪者認爲較爲困難。

構建問題

不難看出,安全性和穩定性是受訪者考慮最多的問題,分別爲 41.43%和 40.49%,這個數字相比去年有了明顯提升,說明過去一年並沒有出現非常好的方法解決這些問題,複雜程度還在持續上升,急需好的解決方案出現。

重要性

針對包質量(安全性、更新等問題),共享環境配置的簡易性,特定包配置的開源語言構建與許可信息等問題,前兩者在受訪者心目中的重要程度非常接近,分別爲 58.58%和 55.95%。

開源

近年來,開源技術得到越來越多的重視,國內開發者也在積極參與開源社區的建設。根據調查,受訪者中的 34.88% 對開源社區有所貢獻,而在影響貢獻的主要因素中,時間的佔比接近 50%,遠遠超過其他因素。換句話說,大部分受訪者在考慮是否參與開源時主要是看有沒有時間,難道大部分開發者受限於 996 的工作狀態而沒有精力做其他工作,比如貢獻開源嗎?

原報告下載鏈接:

https://www.activestate.com/wp-content/uploads/2019/05/ActiveState-Developer-Survey-2019-Open-Source-Runtime-Pains.pdf


InfoQ 希望可以完整展示出一個客觀的國內開發者生態。所以,我們發起了國內版開發者調查問卷,如果您想了解國內開發者的羣體畫像,期待您的參加(傳送門)。我們將在樣本數足夠以後,製作一份國內版開發者調查報告,以饗讀者。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章