ActiveState 今年再次面對開發人員進行了年度調查。這次調查共收到來自 88 個國家的 1250 份回覆。ActiveState 將此次調查結果與 2018 年基線指標進行比較,以便更明確的瞭解編碼人員(開發人員,工程師,資料科學家等)在不斷變化的挑戰中是如何使用開源技術的。
今年的調查問卷相比去年還增加了一些問題,這樣可以更好地理解編碼人員在 2018 年使用開源技術時獲得的一些見解。由此產生的調查資料是衡量和跟蹤編碼人員遇到的開源執行難題的重要工具。
ActiveState 已經在開源領域工作了 20 多年,熱衷於為企業提供開源,並通過優雅的解決方案激發編碼人員的熱情。
以下是 SegmentFault 對此次調查結果的編譯,希望可以幫助到廣大的開發者群體。
Job Function Questions
今年 ActiveState 要求受訪者首先選擇他們的主要角色。在收到的 1250 份回覆中,專業開發人員成為最大的受訪者群體佔比 65.4%,其餘的受訪者中愛好者開發者佔比5.3%,學生開發者佔比10.2%,其他人員佔比 9.1%。
在對其工作角色的描述中,最大的受訪者群體(37.5%)將開發人員或程式設計師確定為其工作角色的描述。人數第二多的受訪群體選擇了將其他人和開發或工程經理作為他們對其工作角色的描述,選擇這兩個描述的受訪者數量都達到了 9.6%。
調查結果顯示,絕大多數受訪者(74.4%)已經花費了6年甚至更長的時間擔任技術角色,其中受訪者中有超過十年技術工作背景的人數佔比 62.4% 這與 2018 年(77%)的結果非常相似.
同樣與 2018 年開發者調查結果類似,受訪者中人數佔比最多(23.28%)的群體來自軟體行業,其餘的人員交錯分佈在多個行業中。
受訪者被要求按全職員工的數量來表明其組織的規模。超過一半的受訪者(53.3%)分佈在100多名員工的組織中。38.2%的員工表示其組織總人數少於100人。
Demographic Questions
在問及他們居住在哪個國家時,結果顯示這次接受調查的 1250 人遍佈全球的 88 個國家(2018年調查結果為 92 個國家)。接近一半的受訪者(47.36%)表示居住在美國,其次收到迴應較多的國家是加拿大和德國,中國也有部分開發人員參與了此次調查。
如圖,從受訪者的年齡跨度之大可以看出編碼事業真的是老少皆宜,其中佔比最大(14.96%)的受訪者群體年齡在 41-45歲,有 37.84% 的受訪者年齡在40歲及以下,47.2% 的受訪者年齡在46歲及以上。可見因為國外人員接觸開發者行業要比我們早,所以國外開發者人群的年齡普遍較大。
Productivity Questions
受訪者被問到他們在一天中用多少小時程式設計。在 1250 份回覆中,受訪者中最大部分(38.8%)每天僅花費 2-4 小時程式設計,這類似於 2018 年的結果,37% 的受訪者每天花費 2-4 小時程式設計。
相比之下,只有 27.92% 的受訪者每天花費 5-7 小時程式設計,而 2018 年的受訪者中每天花 5-7 小時程式設計的人數佔比 31%。
最值得注意的是,ActiveState 的 2019 年開發者調查結果表明,多達 61.52% 的受訪者現在花費 4 小時甚至更少時間進行程式設計,而在2018年,這樣的人群只佔總人數的 51%。
調查中還涉及到,受訪者在沒有程式設計時把大部分時間花費在了哪裡? 其中最大的響應群體(44%)表示不得不花時間參與各種活動(包括會議、測試、維護以及社交)。然而,11.36% 的受訪者表示開發人員需要花費時間程式設計的最大單項活動是軟體設計/架構,其次是佔比 8.24% 的出席會議。
今年還調查了受訪者們設定新開發環境的頻率。 幾乎 69% 的受訪者會在一年或一季度之內建立一個新的開發環境,在每個季度都會建立 1-2 個新的開發環境的人群佔比僅僅略多於 31%。
為了理解建立一個新的開發環境對生產力的影響,這次調查還了解了受訪者建立一個開發環境平均需要多長時間。43.68% 的受訪者表示一般需要 2-4 個小時,只有 28.72% 的受訪者可以花費少於一個小時的時間去建立一個新的開發環境,還有 27.6% 的開發者表示需要 5 個小時或更長時間去完成一個開發環境的建立。
從上面的問題來看,如果每年建立一個新的開發環境的時間只花費不到一個小時,那麼對生產力的影響可以忽略不計。相比之下,有人每月都要建立新的開發環境,假如每年建立 13 次,每次花費 18 個小時,那麼在一年 2000 小時的工作時長中,設定開發環境總共要花費掉 234 小時,這就要佔掉總開發時間的10%。
接下來詢問了受訪者開始新軟體專案的頻率。總體而言,61.4% 的受訪者至少每季度開始一個新專案,這個結果幾乎與2018年的61%相同。然而,2019年的結果顯示,每週啟動一次專案的受訪者比例從 12% 上升到 8.24%,每季度啟動一次專案的受訪者比例從 26% 增加到 29.2%。雖然有大約 32% 的受訪者以月度或更頻繁的節奏開始新專案,但調查顯示只有約 14% 的受訪者會為該專案構建新的開發環境。
去年我們詢問受訪者在一週內,他們花了多少時間來管理依賴關係和處理開發工具。(注意:73% 的受訪者將大部分時間用於管理依賴項和開發工具,只有 25% 的受訪者花很少的時間管理依賴項和開發工具。)今年我們希望更好地瞭解開發者們是如何分配時間去處理以下問題:
•安全要求
•構建庫或包
•管理依賴關係
•許可證合規性或開源許可證
以下是四個問題的加權結果。
加權結果表明,受訪者在與安全性或程式碼相關的問題上花費的時間最多,在與構建庫或包相關的問題上花費的時間與管理依賴關係花費的時間幾乎相等,分別為 1.77 和 1.72。受訪者僅花費 70% 的時間專注於解決許可證合規性問題的安全性。
72.81% 的受訪者表示他們幾乎從不花時間在許可證合規性和開源許可證上。相反,61.67% 的受訪者表示他們將所有時間用於管理依賴項,還應該指出的是,與去年相比,這是一個顯著的下降,當時是有 75% 的受訪者表示他們花了很多時間來管理依賴項和開發工具。
2018 年和 2019 年結果之間的差異可能是由於考慮了每個管理依賴項和開發工具所花費的總時間。最後,ActiveState 的 2018 年開發者調查在詢問受訪者構建庫或包時遇到問題的頻率時,71% 的受訪者表示在構建庫或包時始終會遇到問題。今年有 61.19% 的受訪者表示他們花費大部分時間來構建庫或包。
Language Questions
當受訪者被問及他們使用哪種程式語言時,最受歡迎的三種語言是 SQL(80.4%),Javascript(76.8%)和Python(72.08%)
Python是第三大最流行的語言,也有著最高的滿意度,76.58% 的受訪者對 Python 是滿意的,這個資料相比 2018 年的結果是顯著增長的,2018 年只有 68% 的受訪者對 Python 表示滿意。SQL 作為受訪者們當下使用最多的語言,有 66.09% 的受訪者對其表示滿意。相反,大家對 Clojure 的滿意度最低,只有 42.26% 的受訪者表示對其很滿意。Elm 是最不受歡迎的語言,只有 43.94% 的受訪者表示對其滿意。
關於是否要新增新的程式語言這個問題,63.5% 的受訪者表示不會新增語言,只有 36.5% 的受訪者會選擇新增語言。這類似於2018年的結果,其中 67% 的受訪者選擇不新增新的程式語言,因為新增語言的痛苦將超過使用該工具的好處。
Setup, Deployment, Runtime
受訪者被要求對開發時可能遇到的問題從 5(非常困難)到 1(不困難)進行排列,用以更好地提煉開源執行時開發人員面臨的挑戰。在 2018 年,有 56% 的受訪者認為“將一種語言新增或組合到一個組織中”是難度最大的挑戰,今年也仍有 52.14% 的受訪者認為這是很困難的。
此次調查還要求受訪者按照從 5(很多)到 1(根本不是)的等級對安全性,穩定性和瓶頸等方面是否會導致問題進行排名。如圖所示,安全性和穩定性分別以 41.43% 和 40.49% 的高比率成為受訪者考慮最多的問題。
接下來受訪者還要按 1(不重要)到 5(非常重要)的等級來評估包質量的重要性、共享環境配置的簡易性,使用特定配置和包許可資訊的開源語言構建。有關包裝質量和易於共享環境配置的資訊的結果在受訪者中排名接近重要,分別為 58.58% 和 55.95%。其在開發者心中的重要性相比去年 61% 和 60% 的百分比略有下降。
Open Source
今年的調查結果顯示超過三分之一的受訪者參與了開源專案,近三分之二的受訪者沒有參與開源專案。
作為一個後續問題,今年還詢問了哪些因素會影響受訪者為開源專案做出更多貢獻。絕大多數受訪者(49.2%)選擇了“時間”。有趣的是,幾乎四分之一的受訪者(24.08%)以工具或設定的形式表明了具體的專案要求,這將對他們對開源專案的貢獻產生積極的影響。