• 首次有一半的受訪者表示 Go 是他們日常使用的程式語言之一。此外,在工作中用到 Go 語言以及在工作之餘使用 Go 語言的受訪者人數也顯著增加。
  • Go 最常見的用途仍然是編寫 API/RPC 服務和 CLI 工具。雖然用於自動化任務領域不像前兩者那麼常見,但也處於快速發展階段。
  • Web 開發仍然是受訪者最普遍的工作領域。與此同時, DevOps 保持著年度最高的同比增長率,整體比例僅次於 Web 開發。
  • 絕大多數受訪者表示 Go 是他們最喜愛的程式語言,儘管熟練度不如其他語言高。
  • VS Code 和 GoLand 越來越受開發者歡迎,兩者都是他們最喜愛的編輯器。
  • 許多 Go 開發者的主力開發系統不止一個 —— Linux 和 macOS 尤其受歡迎。大多數受訪者表示使用這兩者之一或全部來編寫 Go 程式碼。
  • 受訪者正在逐漸放棄在將 Go 應用程式部署到本地,轉而選擇容器和無伺服器(serverless)的雲部署。
  • 大多數受訪者對 Go 社群的氛圍評價是友好,而且絕大部分改進 Go 社群的想法都是給新手提供更好的入門體驗

調查報告的內容摘要如上,相關的具體資料以及細節請繼續閱讀(比較物件是 2016 和 2017 的調查資料)。

開發背景

本次的調查結果顯示,在工作用 Go 語言開發的受訪者人數顯著增加(68%→72%),此外在工作之餘使用 Go 語言的受訪者人數也在不斷增加(64%→70%)。將 Go 作為日常使用的程式語言之一的受訪者數量比例更是首次達到 50%(2016 年為 44%)。通過這些資料我們不難發現,越來越多的公司開始接受使用 Go 進行核心業務開發,而且 Go 語言在開發者群體中也飽受歡迎。


▲使用 Go 語言的場景


▲使用 Go 語言的頻率


▲使用 Go 語言的時長

可以看到,受訪者普遍都有 2 年以上的 Go 開發經驗,且這個比例每年都保持增長,而 Go 新手的比例也在逐年下降(這裡新手的定義為使用 Go 語言的時間是 12 個月以內)。所以這就間接表明在入門 Go 語言後,大多數開發者不會選擇放棄。

開發領域

調查結果顯示,絕大多數受訪者(72%)在 2-5 個不同的開發領域工作。而 Web 開發是最常見的領域,高達 65%,佔據主導地位。DevOps 的比例也從 36% 增加到 41%,位居第二名。而系統程式設計則以 39% 的比例次於 DevOps。


▲受訪者的工作領域

自 2016 年以來,Go 的主要用途都是編寫 API/RPC 服務和開發 CLI 應用程式。雖然 CLI 的比例在三年內一直穩定保持在 63%,但 API/RPC 已從 2016 年的 60% 增加到 2017 年的 65%,再到今天的 73%。在這些領域,Go 都發揮著自己的核心優勢,這恰好也是雲原生應用程式開發的核心。另一個同比增長的趨勢表明,自動化任務也是 Go 在發力的一個領域,38% 的受訪者使用 Go 編寫指令碼和自動化任務(2016 年的比例為 31%)。


▲受訪者使用 Go 語言的具體領域

對 Go 語言的態度

本次調查增加了一個“你有多大可能將 Go 推薦給朋友或同事?”的問題,以此來計算淨推薦值(Net Promoter Score, NPS)。最終 Go 在 2018 年調查中的淨推薦值是 61 分(68% 的倡導者 – 7% 的貶低者)。


▲Go 的 NPS 分佈情況

除 NPS 之外,調查還包括其他幾個關於開發者對 Go 滿意度的問題。總體而言,受訪者表示滿意度很高,與前幾年結果一致。大多數人表示他們對 Go 感到滿意(89%),願意將 Go 用於他們的下一個專案(85%),並且認為 Go 對團隊有很大的價值(66%),同時也有不少人認為 Go 對公司的成功至關重要(44%)。

另外,報告顯示長期被 Go 使用者詬病的包管理和缺少泛型這兩個問題,依然是很多開發者使用 Go 時所面臨的最大挑戰。

開發環境

問到受訪者在哪個平臺進行 Go 開發時,大多數受訪者表示使用 Linux(65%),50% 表示使用 macOS,18% 使用 Windows,與去年結果基本一致,Linux 和 macOS 仍然是主導地位。總體而言,41% 的受訪者使用多作業系統進行 Go 開發,這也體現了 Go 的跨平臺特性。


▲進行 Go 開發的平臺

開發工具方面,VS Code 和 GoLand 分別在最受喜愛的 Go 編輯器排行榜上佔據第一、二名,Vim 排名第三。對於編輯器最期待的功能是改進對除錯的支援,包括實時除錯和整合除錯等,此外就是程式碼的自動補全可以更智慧。其他的需求包括與 Go CLI 工具鏈更好的整合,對模組/包提供更好的支援,以及效能方面的改進。


▲最喜愛的 Go 編輯器

部署和服務

2018 年,將 Go 應用程式部署到本地伺服器的受訪者比例從 43% 降至 32%,越來越多開發者選擇將 Go 應用部署到雲上,無伺服器和容器也正在變成越來越流行的部署平臺。


▲部署 Go 應用的平臺

Go 語言社群氛圍

維護社群的健康對開源專案的發展非常重要,所以在過去三年裡 Go 團隊一直在關注開發者在 Go 社群是否有得到足夠的到關注和尊重。本次的調查結果顯示,“我在 Go 社群中有被關注的感覺”這一說法的比例,從 66% 下降到了 59%。主要是 Go 新手得不到足夠的回應,從而對社群產生了疏遠感。被問到如何改進此問題時,官方整理的受訪者回答大致可分為:

  • 老手不應有過分的優越感,特別是面對 Go 新手時(例如不要表現出“不屑一顧”、和“放下防備心和傲慢的態度”)
  • 加大領導層的透明度(例如“公開討論未來方向和規劃”、“減少自上而下的領導”、“更民主”)
  • 增加更多的介紹性資源(例如“面向貢獻者提供更明確的介紹”、“最佳實踐的有趣挑戰”)
  • 舉辦更多活動和聚會,重點是覆蓋更廣的地理區域


▲我在 Go 社群中是否有被關注的感覺

最後

對 Go 語言 2018 調查報告的介紹到此為止,不知各位對 Go 語言的使用體驗如何,有怎樣的改進建議?不妨在留言區和我們分享一波~

官方: https://blog.golang.org/survey2018-results