謝謝
本帖總結了我們 2017 年度使用者調查的結果,並附有評論和見解。它還對 2016 年和 2017 年調查結果進行了關鍵比較。
今年我們有 6,173 名調查受訪者,比我們在Go 2016 年度使用者調查 中的 3,595 人多 70%。此外,問卷完成率(84% → 87%)和對大多數問題的回答率也略有提高。我們認為問卷長度是這次改進的主要原因,因為 2017 年的問卷在收到關於 2016 年問卷太長的反饋後得到了縮短。
我們感謝每一位透過調查提供反饋意見的人,感謝他們為塑造 Go 的未來做出的貢獻。
程式設計背景
這是首次有更多的調查受訪者表示他們靠寫 Go 來獲得報酬,而不是在工作之外寫 Go。這標誌著 Go 的使用者群發生了重大轉變,以及公司對其在專業軟體開發中的接受度不斷提高。
受訪者工作的領域與去年基本一致,但移動和桌面應用程式的使用率顯著下降。
另一個重要的轉變是:目前 Go 的首要用途是編寫 API/RPC 服務(65%,比 2016 年增長 5%),取代了編寫 Go 命令列工具(63%)的地位。這兩種用途都充分利用了 Go 的獨特功能,並且是現代雲計算的關鍵要素。隨著越來越多的公司採用 Go,我們預計這兩種 Go 的使用場景將繼續蓬勃發展。
大多數指標都重申了我們往年學到的東西。Go 程式設計師仍然壓倒性地偏愛 Go。隨著時間的推移,Go 使用者在 Go 方面的經驗日益豐富。儘管 Go 在 Go 開發者中的領先地位有所提升,但語言排名順序與去年基本保持一致。
The following apply to me: (multiple choice)
4,201 (67%)
I program at work in Go
3,935 (63%)
I program in Go outside of work
3,381 (54%)
I program at work in another language
1,001 (16%)
I manage a programming team
506 (8%)
I am a student
113 (2%)
Other
27 (0%)
No response
I've used Go for: (single choice)
686 (11%)
Less than 3 months
1,588 (26%)
3 - 12 months
1,338 (21%)
13 - 24 months
1,678 (27%)
2 - 4 years
809 (13%)
4+ years
102 (2%)
I've never used Go
25 (0%)
No response
I work in the following areas: (multiple choice)
3,807 (61%)
Web development
2,319 (37%)
Systems programming
2,250 (36%)
DevOps
1,969 (32%)
Network programming
1,751 (28%)
Databases
848 (14%)
Security
777 (12%)
Finance/Commerce
724 (12%)
Data Science
696 (11%)
Mobile
694 (11%)
Desktop/GUI applications
647 (10%)
Embedded devices/Internet of Things
581 (9%)
Academic/Scientific/Numeric
581 (9%)
Machine Learning/Artificial Intelligence
334 (5%)
Gaming
381 (6%)
Other
111 (2%)
No response
I write the following in Go: (multiple choice)
4,071 (65%)
API/RPC services (returning non-HTML)
3,921 (63%)
A runnable/interactive program (CLI)
3,027 (49%)
Web services (returning HTML)
2,766 (44%)
Agents and daemons (e.g, monitoring)
2,394 (38%)
Libraries or Frameworks
2,038 (33%)
Automation/scripts (e.g, deployment, configuration management)
2,030 (33%)
Data processing (pipeline, aggregation)
167 (3%)
I don't write in Go
176 (3%)
Other
70 (1%)
No response
I write in Go: (single choice)
3,019 (48%)
As part of my daily routine
1,802 (29%)
Weekly
557 (9%)
Monthly
679 (11%)
Infrequently
118 (2%)
I've never written in Go
51 (1%)
No response
Rank the following languages in terms of your expertise
5,540 (30 , 27 , 17 , 9 , 6 %)
Go
3,638 (9 , 16 , 15 , 11 , 7 %)
JavaScript
3,369 (13 , 12 , 12 , 10 , 7 %)
Python
2,706 (11 , 8 , 8 , 9 , 7 %)
Java
2,402 (7 , 8 , 8 , 8 , 8 %)
C
2,020 (2 , 5 , 9 , 10 , 7 %)
Bash
1,631 (4 , 4 , 5 , 7 , 6 %)
C++
1,475 (7 , 5 , 4 , 4 , 4 %)
PHP
1,042 (4 , 3 , 4 , 3 , 3 %)
C#
1,034 (4 , 3 , 3 , 3 , 3 %)
Ruby
460 (1 , 1 , 1 , 2 , 2 %)
Perl
284 (0.5 , 0.6 , 0.8 , 1 , 1 %)
Scala
278 (0.2 , 0.4 , 0.8 , 1 , 2 %)
Rust
260 (0.3 , 0.5 , 0.7 , 1 , 1 %)
Swift
223 (0.1 , 0.2 , 0.8 , 1 , 1 %)
Lua
185 (0.1 , 0.5 , 0.7 , 0.8 , 0.8 %)
Kotlin
139 (0.1 , 0.2 , 0.3 , 0.6 , 1 %)
Haskell
139 (0.2 , 0.2 , 0.4 , 0.8 , 0.6 %)
Clojure
136 (0.2 , 0.3 , 0.4 , 0.5 , 0.8 %)
R
124 (0.1 , 0.2 , 0.4 , 0.6 , 0.7 %)
Erlang
24 (0.0 , 0.1 , 0.0 , 0.1 , 0.1 %)
Julia
726 (3 , 2 , 3 , 2 , 2 %)
Other
173 (2.8%)
No response
Rank the following languages in terms of your preference
5,728 (65 , 18 , 6 , 2 , 1 %)
Go
3,156 (7 , 18 , 12 , 8 , 4 %)
Python
2,463 (3 , 9 , 12 , 8 , 7 %)
JavaScript
1,827 (2 , 7 , 8 , 7 , 6 %)
C
1,764 (2 , 6 , 7 , 7 , 6 %)
Java
1,240 (1 , 4 , 5 , 5 , 5 %)
C++
1,196 (0.6 , 3 , 6 , 5 , 5 %)
Bash
939 (2 , 4 , 4 , 3 , 2 %)
Rust
924 (2 , 4 , 4 , 3 , 2 %)
C#
859 (2 , 4 , 3 , 3 , 2 %)
Ruby
757 (0.8 , 3 , 3 , 3 , 3 %)
PHP
455 (1 , 2 , 2 , 2 , 0.9 %)
Kotlin
414 (0.7 , 1 , 2 , 2 , 1 %)
Swift
383 (1 , 1 , 1 , 2 , 1 %)
Haskell
335 (0.8 , 1 , 1 , 1 , 0.9 %)
Scala
305 (0.6 , 1 , 1 , 1 , 0.9 %)
Perl
279 (0.3 , 0.8 , 1 , 1 , 0.8 %)
Erlang
250 (0.1 , 0.5 , 1 , 1 , 1 %)
Lua
248 (0.6 , 0.8 , 1 , 0.9 , 0.6 %)
Clojure
113 (0.1 , 0.4 , 0.4 , 0.5 , 0.4 %)
R
71 (0.1 , 0.2 , 0.3 , 0.3 , 0.2 %)
Julia
709 (2 , 3 , 3 , 2 , 1 %)
Other
241 (3.9%)
No response
2016 2017 The following apply to me: (multiple choice) 4,201 (67%) I prog ram at work in Go 3,935 (63%) I prog ram in Go outside of work 3,381 (54%) I prog ram at work in another language 1,001 (16%) I manage a prog ramming team 506 (8%) I am a student 113 (2%) Other 27 (0%) No res ponse The following apply to me: (multiple choice) 2,386 (66%) I prog ram in Go outside of work 2,235 (62%) I prog ram at work in Go 2,004 (56%) I prog ram at work in another language 618 (17%) I manage a prog ramming team 337 (9%) I am a student 78 (2%) Other 10 (0%) No res ponse
2016 2017 I work in the following area s: (multiple choice) 2,272 (63%) Web development 1,359 (38%) Systems prog ramming 1,251 (35%) DevOps 1,169 (33%) Network prog ramming 1,006 (28%) Databases 533 (15%) Mobile 490 (14%) Desktop/GUI applications 457 (13%) Security 435 (12%) Data Science 417 (12%) Finance/Commerce 394 (11%) Embedded devices/Interne t of Things 379 (11%) Academic/Scientific/Numeric 228 (6%) Gaming 238 (7%) Other 74 (2%) No res ponse I work in the following area s: (multiple choice) 3,807 (61%) Web development 2,319 (37%) Systems prog ramming 2,250 (36%) DevOps 1,969 (32%) Network prog ramming 1,751 (28%) Databases 848 (14%) Security 777 (12%) Finance/Commerce 724 (12%) Data Science 696 (11%) Mobile 694 (11%) Desktop/GUI applications 647 (10%) Embedded devices/Interne t of Things 581 (9%) Academic/Scientific/Numeric 581 (9%) Machine Learni ng/Artificial Intelligence 334 (5%) Gaming 381 (6%) Other 111 (2%) No res ponse
2016 2017 I write the following in Go: (multiple choice) 2,247 (63%) A runnable/interactive prog ram 2,174 (60%) API/RPC services 1,886 (52%) Web services 1,583 (44%) Agents and daemons 1,417 (39%) Libraries or Frameworks 1,209 (34%) Data proc essing 1,120 (31%) Automation/scripts 107 (3%) I don't write in Go 137 (4%) Other 45 (1%) No res ponse I write the following in Go: (multiple choice) 4,071 (65%) API/RPC services 3,921 (63%) A runnable/interactive prog ram 3,027 (49%) Web services 2,766 (44%) Agents and daemons 2,394 (38%) Libraries or Frameworks 2,038 (33%) Automation/scripts 2,030 (33%) Data proc essing 167 (3%) I don't write in Go 176 (3%) Other 70 (1%) No res ponse
Go 的使用
在幾乎所有關於 Go 的使用和認知的問題上,Go 都比我們之前的調查有了顯著的改進。使用者對使用 Go 感到更加滿意,並且有更高比例的使用者表示在他們的下一個專案中更願意使用 Go。
當被問及個人使用 Go 的最大挑戰時,使用者明確表示缺乏依賴管理和缺乏泛型是他們最大的兩個問題,這與 2016 年一致。在 2017 年,我們為解決這些問題奠定了基礎。我們透過增加體驗報告 來改進我們的提案和開發流程,這使得專案能夠收集和獲得關鍵反饋,從而進行重大的變革。我們還在底層對 Go 如何獲取和構建包的方式進行了重大更改 。這是解決我們依賴管理需求的基礎性工作。
這兩個問題將繼續是專案在 2018 年的重點關注領域。
在本節中,我們詢問了兩個新問題。這兩個問題都圍繞著開發人員以比以往更細緻的方式使用 Go。我們希望這些資料能為 Go 專案和生態系統提供洞察。
與去年相比,將“Go 缺乏關鍵功能”視為不更多使用 Go 的原因的受訪者比例有所增加,而認為“Go 不適合”的比例有所下降。除此之外,其他選項列表與去年一致。
To what extent do you agree or disagree with the following statements:
(strongly disagree , disagree , somewhat disagree , neither agree nor disagree , somewhat agree , agree , strongly agree )
5,938 (2 , 0.8 , 1 , 2 , 5 , 21 , 64 %)
I would recommend using Go to others (26:1) [32:1]
5,928 (2 , 1 , 2 , 4 , 8 , 20 , 58 %)
I would prefer to use Go for my next new project (17:1) [23:1]
4,548 (1 , 0.8 , 1 , 7 , 9 , 23 , 31 %)
Go is working well for my team (21:1) [26:1]
4,716 (5 , 6 , 4 , 17 , 14 , 14 , 17 %)
Go is critical to my company’s success (3.1:1) [3.1:1]
解讀資料 :此問題詢問了受訪者對陳述的同意或不同意程度。每個陳述的響應顯示在一個條形圖的不同部分,從左端的“強烈不同意”(深紅色)到右端的“強烈同意”(深藍色)。條形圖使用了與其餘圖形相同的比例尺,因此它們可能(並且確實,尤其是在調查的後期)由於缺乏響應而總體長度不同。
文字後的比率比較了同意(包括“有點同意”和“非常同意”)的受訪者與不同意(包括“有點不同意”和“非常不同意”)的受訪者數量。例如,同意他們會向他人推薦 Go 的受訪者與不同意的受訪者之比為 19:1。第二個比率(括號內)只是一個加權比率,其中“有點”=1,“同意/不同意”=2,而“非常”=4。
What is the biggest challenge you personally face using Go today?
582 (9.3%)
lack
489 (7.9%)
generics
402 (6.5%)
management
277 (4.4%)
libraries
266 (4.3%)
dependency management
194 (3.1%)
lack of generics
159 (2.6%)
package
137 (2.2%)
gui
137 (2.2%)
library
132 (2.1%)
good
132 (2.1%)
work
122 (2.0%)
time
115 (1.8%)
enough
114 (1.8%)
error handling
113 (1.8%)
type
109 (1.8%)
learning
106 (1.7%)
projects
104 (1.7%)
hard
97 (1.6%)
team
91 (1.5%)
dependencies
91 (1.5%)
java
87 (1.4%)
c
82 (1.3%)
debugging
81 (1.3%)
no generics
81 (1.3%)
vendoring
79 (1.3%)
package management
79 (1.3%)
programming
77 (1.2%)
gopath
76 (1.2%)
features
76 (1.2%)
types
75 (1.2%)
people
74 (1.2%)
web
73 (1.2%)
python
73 (1.2%)
write
68 (1.1%)
development
67 (1.1%)
generic
67 (1.1%)
writing
66 (1.1%)
difficult
64 (1.0%)
interface
64 (1.0%)
tools
63 (1.0%)
missing
62 (1.0%)
performance
60 (1.0%)
interfaces
60 (1.0%)
standard
58 (0.9%)
community
58 (0.9%)
packages
56 (0.9%)
build
56 (0.9%)
well
55 (0.9%)
best
55 (0.9%)
cgo
55 (0.9%)
debugger
55 (0.9%)
ide
55 (0.9%)
other languages
55 (0.9%)
verbose
54 (0.9%)
boilerplate
54 (0.9%)
finding
54 (0.9%)
learn
53 (0.9%)
not enough
2,956 (47.5%)
No response
解讀資料 :此問題要求寫出答案。上面的條形圖顯示了調查中提到常見詞語或短語的比例。僅列出了在 20 次或更多次調查中出現的詞語或短語,並省略了無意義的常用詞語或短語,如“the”或“to be”。顯示的響應確實有重疊:例如,提到“management”的 402 條響應包括單獨列出的提到“dependency management”的 266 條和單獨列出的提到“package management”的 79 條。
但是,幾乎或完全冗餘的較短條目已被省略:沒有 20 次或更多次調查列出了“dependency”但未提及“dependency management”,因此沒有單獨列出“dependency”的條目。
If it were not for the following reasons I would use Go more:
3,077 (31 , 14 , 4 %)
I work on an existing project written in another language
2,152 (14 , 16 , 5 %)
My project / team / TL prefers another language
1,218 (10 , 5 , 4 %)
Go lacks critical features
1,100 (6 , 7 , 4 %)
Go lacks critical libraries
1,056 (6 , 6 , 4 %)
Go isn't appropriate for what I'm working on
643 (4 , 4 , 3 %)
Not enough education or support resources for Go
311 (2 , 2 , 1 %)
Go lacks critical performance
790 (5 , 4 , 3 %)
Other
1,309 (21%)
No response
Which of the following functionality have you implemented (multiple choice)
3,262 (52%)
Writing logs/metrics
3,123 (50%)
Reading/updating configuration
2,771 (45%)
User login and authentication
2,748 (44%)
Process to process communication
2,504 (40%)
Service authentication/authorization
2,056 (33%)
Health checking
1,138 (18%)
Keys & secret maintenance
831 (13%)
Distributed caching
532 (9%)
Distributed tracing
1,269 (20%)
No response
Which of the following do you access from Go: (multiple choice)
3,784 (61%)
Open Source Relational DB (MySQL/PostgreSQL/CockroachDB)
2,400 (39%)
Memory Cache (Redis/memcache)
2,005 (32%)
Cloud Storage (S3/Google Cloud Storage/Azure Storage/Minio)
1,891 (30%)
Open Source NoSQL DB (MongoDB/Cassandra)
1,606 (26%)
Authentication and federation (SSO/LDAP/OAuth)
1,546 (25%)
Distributed Key-Value store (etcd/consul)
657 (11%)
Proprietary Relational DB (Oracle/DB2/MSSQL/Sybase)
459 (7%)
Distributed Lock Service (zookeeper)
1,367 (22%)
No response
2016 2017 If it were not for the following rea sons I would use Go more: 3,077 ( 31 , 14 , 4 %) I work on an existing proj ect written in another lang 2,152 ( 14 , 16 , 5 %) My proj ect / team / TL pref ers another language 1,218 ( 10 , 5 , 4 %) Go lacks critical features 1,100 ( 6 , 7 , 4 %) Go lacks critical libraries 1,056 ( 6 , 6 , 4 %) Go isn't approp riate for what I'm working on 643 ( 4 , 4 , 3 %) Not enough education or support res ource s for Go 311 ( 2 , 2 , 1 %) Go lacks critical performance 790 ( 5 , 4 , 3 %) Other 1,309 (21%) No res ponse If it were not for the following rea sons I would use Go more: 1,485 ( 24 , 14 , 4 %) I work on an existing proj ect written in another lang 1,160 ( 16 , 12 , 4 %) My proj ect / team / TL pref ers another language 841 ( 11 , 8 , 5 %) Go isn’t an approp riate fit for what I’m working on 596 ( 6 , 6 , 4 %) Go lacks critical libraries 412 ( 6 , 3 , 2 %) Go lacks critical features 319 ( 3 , 3 , 3 %) Not enough education or support res ource s for Go 121 ( 1 , 1 , 0.8 %) Go lacks critical performance 374 ( 4 , 3 , 3 %) Other 1,042 (29%) No res ponse
開發和部署
我們詢問了程式設計師在哪些作業系統上開發 Go;他們的響應比例與去年基本一致。64% 的受訪者表示他們使用 Linux,49% 使用 MacOS,18% 使用 Windows,允許選擇多個選項。
VSCode 繼續爆炸式增長,現已成為 Gophers 中最受歡迎的編輯器。IntelliJ/GoLand 的使用量也顯著增加。這主要以 Atom 和 Sublime Text 的使用量下降為代價。與去年相比,此問題的響應率提高了 6%。
與 2016 年相比,調查受訪者對編輯器中 Go 支援的滿意度顯著提高,滿意與不滿意的比例翻倍(9:1 → 18:1)。感謝所有為 Go 編輯器支援辛勤工作的人。
Go 的部署大約平均分配在私有託管伺服器和雲託管伺服器之間。對於 Go 應用程式,與 2016 年相比,Google Cloud 服務的使用量顯著增加。對於非 Go 應用程式,AWS Lambda 的使用量增長最大。
I primarily develop Go on: (multiple choice)
3,973 (64%)
Linux
3,048 (49%)
MacOS
1,151 (18%)
Windows
112 (2%)
Other
328 (5%)
No response
My preferred code editor
2,449 (27 , 13 %)
VSCode
2,288 (22 , 14 %)
Vim
1,628 (19 , 7 %)
IntelliJ/GoLand
912 (7 , 8 %)
Sublime Text
791 (6 , 7 %)
Atom
490 (6 , 2 %)
Emacs
274 (2 , 2 %)
Visual Studio
154 (1 , 1 %)
LiteIDE
88 (0.5 , 0.9 %)
Eclipse
67 (0.6 , 0.4 %)
Acme
256 (3 , 2 %)
Other
382 (6.1%)
No response
How satisfied are you with Go support in your preferred editor:
(very dissatisfied , dissatisfied , somewhat dissatisfied , neither satisfied or unsatisfied , somewhat satisfied , satisfied , very satisfied )
5,730 (1 , 0.9 , 3 , 3 , 16 , 38 , 29 %)
(18:1) [24:1]
My team deploys Go programs to: (multiple choice)
2,664 (43%)
Self/Company Owned Servers
1,689 (27%)
AWS EC2
799 (13%)
None
732 (12%)
AWS Container
631 (10%)
Digital Ocean
596 (10%)
Google Compute Engine
485 (8%)
Google Container Engine (GKE)
328 (5%)
Google App Engine
262 (4%)
AWS Lambda
255 (4%)
Heroku
255 (4%)
Microsoft Azure
183 (3%)
Linode
61 (1%)
Azure Container Service
51 (1%)
Google Cloud Functions
13 (0%)
Azure Functions
601 (10%)
Other
652 (10%)
No response
My team deploys Non-Go programs to: (multiple choice)
2,865 (46%)
Self/Company Owned Servers
2,076 (33%)
AWS EC2
806 (13%)
AWS Container
644 (10%)
AWS Lambda
528 (8%)
Google Compute Engine
527 (8%)
Digital Ocean
442 (7%)
None
402 (6%)
Microsoft Azure
340 (5%)
Heroku
327 (5%)
Google Container Engine (GKE)
188 (3%)
Google App Engine
159 (3%)
Linode
95 (2%)
Google Cloud Functions
85 (1%)
Azure Container Service
50 (1%)
Azure Functions
524 (8%)
Other
825 (13%)
No response
2016 2017 My pref erred code editor 2,449 ( 27 , 13 %) VSCode 2,288 ( 22 , 14 %) Vim 1,628 ( 19 , 7 %) IntelliJ/GoLand 912 ( 7 , 8 %) Sublime Tex t 791 ( 6 , 7 %) Atom 490 ( 6 , 2 %) Emacs 274 ( 2 , 2 %) Vis ual Studio 154 ( 1 , 1 %) LiteIDE 88 ( 0.5 , 0.9 %) Eclipse 67 ( 0.6 , 0.4 %) Acme 256 ( 3 , 2 %) Other 382 (6.1%) No res ponse My pref erred code editor 1,359 ( 25 , 13 %) Vim 814 ( 14 , 9 %) VSCode 676 ( 10 , 9 %) Atom 687 ( 13 , 6 %) IntelliJ 655 ( 10 , 8 %) Sublime Tex t 305 ( 6 , 2 %) Emacs 137 ( 2 , 2 %) Vis ual Studio 153 ( 3 , 2 %) LiteIDE 99 ( 1 , 2 %) Eclipse 37 ( 0.5 , 0.5 %) Acme 238 ( 4 , 3 %) Other 425 (12%) No res ponse
2016 2017 My team deploys Go prog rams to: (multiple choice) 1,489 (41%) Self/Company Owned Servers 928 (26%) AWS EC2 503 (14%) None 412 (11%) Digital Ocean 292 (8%) AWS Container 221 (6%) Google Compute Engine 188 (5%) Google App Engine 161 (4%) Google Container Engine (GKE) 121 (3%) Herok u 114 (3%) Micros oft Azure 104 (3%) Linode 94 (3%) AWS Lambda 301 (8%) Other 639 (18%) No res ponse My team deploys Go prog rams to: (multiple choice) 2,664 (43%) Self/Company Owned Servers 1,689 (27%) AWS EC2 799 (13%) None 732 (12%) AWS Container 631 (10%) Digital Ocean 596 (10%) Google Compute Engine 485 (8%) Google Container Engine (GKE) 328 (5%) Google App Engine 262 (4%) AWS Lambda 255 (4%) Herok u 255 (4%) Micros oft Azure 183 (3%) Linode 61 (1%) Azure Container Service 51 (1%) Google Cloud Functions 13 (0%) Azure Functions 601 (10%) Other 652 (10%) No res ponse
2016 2017 My team deploys Non-Go prog rams to: (multiple choice) 1,714 (48%) Self/Company Owned Servers 1,122 (31%) AWS EC2 360 (10%) Digital Ocean 343 (10%) AWS Container 249 (7%) None 233 (6%) AWS Lambda 210 (6%) Micros oft Azure 186 (5%) Google Compute Engine 185 (5%) Herok u 115 (3%) Google Container Engine (GKE) 100 (3%) Linode 94 (3%) Google App Engine 297 (8%) Other 660 (18%) No res ponse My team deploys Non-Go prog rams to: (multiple choice) 2,865 (46%) Self/Company Owned Servers 2,076 (33%) AWS EC2 806 (13%) AWS Container 644 (10%) AWS Lambda 528 (8%) Google Compute Engine 527 (8%) Digital Ocean 442 (7%) None 402 (6%) Micros oft Azure 340 (5%) Herok u 327 (5%) Google Container Engine (GKE) 188 (3%) Google App Engine 159 (3%) Linode 95 (2%) Google Cloud Functions 85 (1%) Azure Container Service 50 (1%) Azure Functions 524 (8%) Other 825 (13%) No res ponse
有效工作
我們詢問了人們在多大程度上同意或不同意關於 Go 的各種陳述。所有問題都重複了去年的內容,並增加了一個新問題,旨在進一步闡明使用者如何能夠找到和使用 Go 庫。
所有響應要麼表明有所改進,要麼與 2016 年持平。
與 2016 年一樣,最常被請求的 Go 缺失庫是用於編寫 GUI 的庫,儘管需求不如去年那麼明顯。沒有其他缺失的庫獲得顯著的響應數量。
查詢 Go 問題答案的主要來源是 Go 網站、Stack Overflow 和直接閱讀原始碼。與去年相比,Stack Overflow 的使用量略有增加。
Go 新聞的主要來源仍然是 Go 部落格、Reddit 的 /r/golang 和 Twitter;與去年一樣,這裡可能存在一些偏見,因為這些也是調查釋出的方式。
To what extent do you agree or disagree with the following statements:
(strongly disagree , disagree , somewhat disagree , neither agree nor disagree , somewhat agree , agree , strongly agree )
5,555 (1 , 2 , 4 , 7 , 27 , 34 , 13 %)
I have a good understanding of Go best practices (9.5:1) [11:1]
5,549 (0.4 , 0.9 , 3 , 4 , 17 , 42 , 23 %)
I am able to quickly find answers to my questions (21:1) [31:1]
5,528 (0.4 , 0.4 , 1 , 2 , 6 , 32 , 47 %)
Go's performance meets my needs (48:1) [80:1]
4,614 (1 , 2 , 4 , 12 , 15 , 26 , 13 %)
Go's support for language interoperability meets my needs (6.8:1) [8.8:1]
5,478 (0.8 , 2 , 5 , 6 , 24 , 36 , 13 %)
I am able to quickly find libraries that I need (8.9:1) [12:1]
5,443 (0.9 , 2 , 5 , 7 , 23 , 37 , 12 %)
The Go libraries I use have the stability and features I need (9.1:1) [12:1]
5,521 (0.8 , 2 , 4 , 5 , 17 , 37 , 22 %)
Go language, library, and tool documentation meet my needs (11:1) [16:1]
To what extent do you agree or disagree with the following statements:
(strongly disagree , disagree , somewhat disagree , neither agree nor disagree , somewhat agree , agree , strongly agree )
5,446 (0.8 , 2 , 6 , 6 , 21 , 37 , 14 %)
I am able to effectively diagnose bugs in my Go programs (8.7:1) [12:1]
4,968 (0.7 , 2 , 6 , 13 , 22 , 27 , 9 %)
I am able to effectively diagnose performance issues in Go programs (6.7:1) [8.7:1]
5,319 (0.7 , 2 , 3 , 6 , 16 , 35 , 24 %)
I am able to effectively use Go’s concurrency features (goroutines, channels, select) (14:1) [21:1]
5,096 (2 , 5 , 8 , 15 , 24 , 21 , 7 %)
I am able to effectively debug uses of Go’s concurrency features (goroutines, channels, select) (3.6:1) [3.9:1]
Which Go libraries do you need that aren’t available today?
306 (4.9%)
gui
221 (3.5%)
library
185 (3.0%)
libraries
90 (1.4%)
native
83 (1.3%)
good
60 (1.0%)
ui
59 (0.9%)
machine learning
54 (0.9%)
framework
48 (0.8%)
gui library
48 (0.8%)
orm
48 (0.8%)
processing
47 (0.8%)
desktop
44 (0.7%)
web
41 (0.7%)
cross-platform
39 (0.6%)
client
39 (0.6%)
platform
37 (0.6%)
standard
35 (0.6%)
audio
34 (0.5%)
image
34 (0.5%)
mobile
33 (0.5%)
sql
32 (0.5%)
soap
31 (0.5%)
pdf
30 (0.5%)
api
30 (0.5%)
package
4,578 (73.5%)
No response
Rank the following in terms of where you get Go answers from:
4,337 (28 , 20 , 13 , 6 , 2 %)
Stack Overflow
3,791 (29 , 17 , 9 , 4 , 1 %)
golang.org
3,362 (13 , 17 , 14 , 8 , 2 %)
Reading source code (e.g., standard library, open-source packages)
2,428 (4 , 11 , 13 , 8 , 3 %)
GitHub
1,408 (5 , 6 , 6 , 5 , 2 %)
Coworkers
1,071 (2 , 4 , 5 , 4 , 2 %)
golang-nuts mailing list (groups.google.com/d/forum/golang-nuts)
895 (1 , 2 , 4 , 4 , 3 %)
Reddit (r/golang)
569 (1 , 2 , 2 , 2 , 2 %)
Gopher Slack (invite.slack.golangbridge.org)
432 (0.9 , 1 , 2 , 2 , 2 %)
Friends
283 (0.5 , 0.7 , 0.9 , 1 , 1 %)
Twitter
214 (0.2 , 0.8 , 0.8 , 1 , 0.6 %)
Go Forum (forum.golangbridge.org)
186 (0.5 , 0.7 , 0.7 , 0.6 , 0.5 %)
IRC
386 (2 , 1 , 1 , 0.9 , 0.7 %)
Other
844 (14%)
No response
Rank the following in terms of where you get Go news from:
2,809 (16 , 14 , 9 , 4 , 2 %)
blog.Golang.org
1,838 (15 , 7 , 4 , 3 , 1 %)
Twitter
1,703 (12 , 7 , 4 , 2 , 1 %)
Reddit (r/golang)
1,617 (13 , 7 , 3 , 2 , 0.7 %)
Golangweekly.com
1,578 (9 , 8 , 5 , 3 , 1 %)
Hacker News
1,051 (2 , 5 , 5 , 3 , 2 %)
Community Blogs
859 (2 , 4 , 4 , 2 , 2 %)
GitHub
798 (4 , 4 , 3 , 1 , 0.6 %)
Coworkers
704 (1 , 3 , 3 , 2 , 1 %)
Just For Func
516 (2 , 2 , 2 , 1 , 0.7 %)
golang-nuts mailing list (groups.google.com/d/forum/golang-nuts)
428 (1 , 2 , 2 , 1 , 0.6 %)
Go Time podcast
393 (2 , 2 , 1 , 1 , 0.4 %)
Golangnews.com
333 (1 , 1 , 1 , 1 , 0.7 %)
Gopher Slack (invite.slack.golangbridge.org)
287 (1 , 1 , 1 , 0.7 , 0.4 %)
golang-announce (groups.google.com/d/forum/golang-announce)
120 (0.5 , 0.5 , 0.4 , 0.2 , 0.3 %)
Facebook
86 (0.1 , 0.4 , 0.4 , 0.2 , 0.2 %)
Go Forum (forum.golangbridge.org)
205 (1 , 1 , 0.7 , 0.3 , 0.1 %)
Other
1,040 (17%)
No response
I have attended: (multiple choice)
2,497 (40%)
None
1,618 (26%)
A Go meetup
947 (15%)
A Go themed conference (GopherCon, GothamGo, etc)
506 (8%)
A Go remote meetup / online event
363 (6%)
Go training
228 (4%)
A technical conference for it's Go content
65 (1%)
A Women Who Go event
64 (1%)
A GoBridge event
58 (1%)
Other
1,440 (23%)
No response
Go 專案
59% 的受訪者表示有興趣以某種方式為 Go 社群和專案做出貢獻,高於去年的 55%。受訪者還表示,與 2016 年相比,他們感覺更容易為社群做出貢獻。不幸的是,受訪者表示,在理解如何做出貢獻方面只取得了非常微小的進步。我們將與社群及其領導者積極合作,使這個過程更容易。
受訪者對 Go 專案領導層的信心有所提高(9:1 → 11:1)。他們還表示,對專案領導層理解他們的需求(2.6:1 → 2.8:1)以及對能夠舒適地向專案領導層提出問題和反饋(2.2:1 → 2.4:1)的認同度略有提高。儘管有所改進,但這一領域仍將是專案及其領導層未來關注的重點。我們將繼續努力提高我們對使用者需求的理解和可接近性。
我們在 2017 年嘗試了一些新的方式 來與使用者互動,雖然取得了一些進展,但我們仍在努力使這些解決方案能夠適應我們不斷增長的社群。
I contribute to open source projects written in Go: (single choice)
382 (6.1%)
As part of my daily routine
463 (7.4%)
Weekly
603 (9.7%)
Monthly
2,180 (35.0%)
Infrequently
1,792 (28.8%)
Never
806 (12.9%)
No response
I have or am interested in contributing in the following ways to the Go community and projects: (multiple choice)
1,785 (29%)
Standard library
1,331 (21%)
Tools (go guru, go vet, go doc, etc)
1,129 (18%)
Documentation
1,115 (18%)
Tutorials
967 (16%)
Community support via Stack Overflow, Slack, mailing list, etc
863 (14%)
Being a technical mentor
829 (13%)
Community involvement (workgroups, meetup attendance)
727 (12%)
Toolchain (compiler, linker, etc)
514 (8%)
Go Project maintenance (issue triage)
474 (8%)
Event planning (meetup, conference, etc)
433 (7%)
Language translation
337 (5%)
General UX & Design contributions
309 (5%)
golang.org website (code, UX, IA, content, etc)
148 (2%)
Other
2,553 (41%)
No response
To what extent do you agree or disagree with the following statements:
(strongly disagree , disagree , somewhat disagree , neither agree nor disagree , somewhat agree , agree , strongly agree )
4,091 (1 , 3 , 4 , 19 , 12 , 18 , 8 %)
I feel welcome to contribute to Go (compiler, standard library, documentation, website) (4.3:1) [5.0:1]
4,083 (3 , 8 , 10 , 17 , 11 , 11 , 5 %)
The process of contributing to the Go project is clear to me (1.3:1) [1.3:1]
3,657 (2 , 3 , 5 , 23 , 10 , 13 , 4 %)
The Go project leadership understands my needs (2.8:1) [2.8:1]
3,860 (2 , 5 , 6 , 20 , 10 , 14 , 6 %)
I feel comfortable approaching the Go project leadership with questions and feedback (2.4:1) [2.7:1]
4,351 (1 , 2 , 2 , 12 , 10 , 26 , 18 %)
I am confident in the leadership of Go (11:1) [13:1]
在調查結束時,我們詢問了一些人口統計學問題。
響應的國別分佈與去年基本相似,略有波動。與去年一樣,國家分佈與 golang.org 的訪問量相似,但一些亞洲國家的調查參與度仍然偏低。
與 2016 年相比,也許最重要的進步來自於詢問受訪者在多大程度上同意“我感到在 Go 社群中受歡迎”這一陳述的問題。去年,同意與不同意的比例為 15:1。2017 年,這一比例幾乎翻倍,達到 25:1。
社群的重要組成部分是讓每個人都感到受歡迎,特別是來自代表性不足群體的成員。我們詢問了一個關於識別少數群體身份的可選問題。與去年相比,我們的響應率提高了 4%。每個少數群體的百分比都高於 2016 年,其中一些比例顯著提高。
與去年一樣,我們根據對“我感到在 Go 社群中受歡迎”這一陳述的響應,將其細分到對各種代表性不足群體的響應。與整體情況一樣,大多數被認為是代表性不足的受訪者也比 2016 年感覺在 Go 社群中更受歡迎。被認為是女性的受訪者表現出最顯著的改進,同意:不同意比例增加了 400% 以上(3:1 → 13:1)。被認為是種族或民族代表性不足的人,其比例增加了 250% 以上(7:1 → 18:1)。與去年一樣,那些認為自己不屬於代表性不足群體的人,對這一陳述的同意比例仍然遠高於那些來自代表性不足群體的人。
我們對這一進展感到鼓舞,並希望這種勢頭能夠持續下去。
調查的最後一個問題只是為了好玩:你最喜歡的 Go 關鍵字是什麼?也許毫不奇怪,最受歡迎的回答是 go
,其次是 defer
、func
、interface
和 select
,與去年相比沒有變化。
Did you take last year's survey (single choice)
1,569 (25%)
Yes
2,892 (46%)
No
952 (15%)
I don't remember
813 (13%)
No response
To what extent do you agree or disagree with the following statement:
(strongly disagree , disagree , somewhat disagree , neither agree nor disagree , somewhat agree , agree , strongly agree )
4,970 (0.5 , 0.8 , 1 , 10 , 10 , 34 , 22 %)
I feel welcome in the Go community (25:1) [33:1]
List of Countries (multiple choice)
1,561 (25%)
United States of America
436 (7%)
Germany
343 (6%)
United Kingdom
211 (3%)
Canada
200 (3%)
France
174 (3%)
Russia
130 (2%)
Australia
113 (2%)
India
110 (2%)
Sweden
103 (2%)
China
99 (2%)
Netherlands
95 (2%)
Spain
94 (2%)
Brazil
89 (1%)
Japan
84 (1%)
Poland
62 (1%)
Ukraine
58 (1%)
Italy
57 (1%)
Switzerland
48 (1%)
Taiwan
42 (1%)
Israel
873 (14%)
Other
1,244 (20%)
No response
We want the Go community to be inclusive; we want to see how we're doing and how to improve. Plea... (multiple choice)
2,591 (42%)
I do not identify as part of an underrepresented group
790 (13%)
I prefer not to answer
197 (3%)
I identify as LGBTQIA
191 (3%)
I identify as ethnically or racially underrepresented
164 (3%)
I identify as neurodiverse or as having a disability
156 (3%)
I identify with an underrepresented group not listed (please specify)
101 (2%)
I identify as a woman
81 (1%)
I identify as part of an underrepresented group, but I prefer not to specify
2,085 (33%)
No response
Just for fun: What is your favorite Go keyword? (multiple choice)
1,627 (26%)
go
856 (14%)
defer
539 (9%)
func
384 (6%)
select
375 (6%)
interface
242 (4%)
range
222 (4%)
chan
215 (3%)
struct
114 (2%)
fallthrough
96 (2%)
goto
90 (1%)
switch
89 (1%)
type
82 (1%)
for
71 (1%)
map
48 (1%)
import
39 (1%)
if
33 (1%)
package
32 (1%)
return
27 (0%)
var
24 (0%)
continue
22 (0%)
const
15 (0%)
break
10 (0%)
case
5 (0%)
else
969 (16%)
No response
Is there anything else you would like to share with us?
130 (2.1%)
great
119 (1.9%)
generics
104 (1.7%)
love
104 (1.7%)
thank you
99 (1.6%)
thanks
87 (1.4%)
community
58 (0.9%)
programming
56 (0.9%)
simple
52 (0.8%)
awesome
51 (0.8%)
i love
48 (0.8%)
people
44 (0.7%)
team
40 (0.6%)
golang
38 (0.6%)
keep up the good work
38 (0.6%)
time
37 (0.6%)
hard
37 (0.6%)
languages
36 (0.6%)
job
35 (0.6%)
features
35 (0.6%)
great work
30 (0.5%)
3
30 (0.5%)
amazing
30 (0.5%)
c
30 (0.5%)
google
5,167 (83.0%)
No response
最後,我謹代表整個 Go 專案,感謝所有為我們專案做出貢獻的人,無論是作為我們偉大社群的一員、參與本次調查,還是對 Go 感興趣。