2016 Go 調查結果
Steve Francia,Go 團隊 2017 年 3 月 6 日
感謝您
這篇文章總結了 2016 年 12 月使用者調查結果及我們的評論與見解。感謝透過本次調查提供回饋的每個人,幫助我們形塑 Go 的未來。
程式背景
在 3,595 名調查受訪者中,89% 表示他們在工作或下班後使用 Go 進行程式設計,其中 39% 在家裡和工作場所都會使用 Go,27% 僅在家裡使用 Go,23% 僅在工作場所使用 Go。
我們詢問受訪者其工作領域。63% 表示從事 Web 開發,但僅 9% 將 Web 開發視為唯一領域。事實上,77% 選擇兩個或兩個以上的領域,53% 選擇三個或三個以上的領域。
我們也詢問受訪者使用 Go 編寫的程式類型。63% 的受訪者編寫指令列程式,60% 編寫 API 或 RPC 服務,52% 編寫 Web 服務。如同前一個問題,大部分受訪者做了多種選擇,85% 選擇兩個或兩個以上,72% 選擇三個或三個以上。
我們詢問人們在程式語言方面的專業知識和喜好。毫不意外地,Go在受訪者的第一選擇中,在專業知識(26%)和喜好(62%)中排名最高。排除Go後,語言專業知識的前五順位選擇為Python(18%)、Java(17%)、JavaScript(13%)、C(11%)和PHP(8%);而語言喜好方面的前五個首選為Python(22%)、JavaScript(10%)、C(9%)、Java(9%)和Ruby(7%)。Go顯然吸引了許多動態語言的程式設計師。
The following apply to me: (multiple choice)
2,386 (66%)
I program in Go outside of work
2,235 (62%)
I program at work in Go
2,004 (56%)
I program at work in another language
618 (17%)
I manage a programming team
337 (9%)
I am a student
78 (2%)
Other
10 (0%)
No response
解讀資料 :此題為「複選題」,因此百分比加總遠超過100%。本文章中的所有圖表都會同時顯示總計數和已完成之3,595份問卷的相對應百分比。
I work in the following areas: (multiple choice)
2,272 (63%)
Web development
1,359 (38%)
Systems programming
1,251 (35%)
DevOps
1,169 (33%)
Network programming
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/Internet of Things
379 (11%)
Academic/Scientific/Numeric
228 (6%)
Gaming
238 (7%)
Other
74 (2%)
No response
I've used Go for: (single choice)
432 (12%)
Less than 3 months
1,009 (28%)
3 - 12 months
829 (23%)
13 - 24 months
903 (25%)
2 - 4 years
321 (9%)
4+ years
77 (2%)
I've never used Go
24 (1%)
No response
I write the following in Go: (multiple choice)
2,247 (63%)
A runnable/interactive program (CLI)
2,174 (60%)
API/RPC services (returning non-HTML)
1,886 (52%)
Web services (returning HTML)
1,583 (44%)
Agents and daemons (e.g, monitoring)
1,417 (39%)
Libraries or Frameworks
1,209 (34%)
Data processing (pipeline, aggregation)
1,120 (31%)
Automation/scripts (e.g, deployment, configuration management)
107 (3%)
I don't write in Go
137 (4%)
Other
45 (1%)
No response
I write in Go: (single choice)
1,567 (44%)
As part of my daily routine
1,054 (29%)
Weekly
486 (14%)
Infrequently
368 (10%)
Monthly
77 (2%)
I've never written in Go
43 (1%)
No response
Rank the following languages in terms of your expertise: (ordered choice, up to 5)
3,111 (26 , 26 , 19 , 10 , 5 %)
Go
2,048 (8 , 15 , 14 , 11 , 8 %)
JavaScript
1,896 (12 , 12 , 10 , 10 , 7 %)
Python
1,618 (13 , 8 , 8 , 8 , 8 %)
Java
1,512 (8 , 8 , 9 , 9 , 7 %)
C
1,064 (2 , 4 , 7 , 8 , 8 %)
Bash
1,039 (5 , 5 , 7 , 6 , 6 %)
C++
830 (6 , 4 , 4 , 5 , 4 %)
PHP
668 (5 , 4 , 3 , 4 , 3 %)
Ruby
622 (5 , 3 , 3 , 4 , 3 %)
C#
294 (2 , 1 , 2 , 2 , 2 %)
Perl
184 (1 , 1 , 1 , 1 , 1 %)
Scala
156 (0 , 0 , 1 , 1 , 2 %)
Rust
142 (0 , 0 , 1 , 1 , 1 %)
Lua
136 (0 , 0 , 0 , 1 , 2 %)
Haskell
94 (0 , 0 , 0 , 1 , 1 %)
R
93 (0 , 0 , 0 , 1 , 1 %)
Clojure
72 (0 , 0 , 0 , 0 , 1 %)
Erlang
18 (0 , 0 , 0 , 0 , 0 %)
Julia
499 (2 , 3 , 3 , 3 , 3 %)
Other
134 (3.7%)
No response
解讀資料 :此題為「排序題」。第一、二、三、四和第五名選項以漸漸變淺的區塊顯示在長條圖中。長條圖旁顯示的總計數為所有選項;百分比清單顯示這些選項的分配方式。
Rank the following languages in terms of your preference: (ordered choice, up to 5)
3,248 (62 , 19 , 6 , 2 , 1 %)
Go
1,796 (7 , 17 , 12 , 9 , 5 %)
Python
1,482 (3 , 9 , 13 , 10 , 8 %)
JavaScript
1,235 (2 , 8 , 9 , 9 , 6 %)
C
1,167 (3 , 7 , 8 , 7 , 7 %)
Java
809 (2 , 4 , 6 , 6 , 5 %)
C++
647 (1 , 3 , 5 , 5 , 5 %)
Bash
563 (3 , 5 , 4 , 3 , 2 %)
Ruby
557 (2 , 4 , 4 , 3 , 2 %)
C#
475 (2 , 4 , 3 , 3 , 2 %)
Rust
449 (1 , 2 , 3 , 3 , 3 %)
PHP
278 (1 , 2 , 2 , 2 , 1 %)
Haskell
215 (1 , 1 , 1 , 1 , 1 %)
Perl
214 (1 , 1 , 1 , 1 , 1 %)
Scala
178 (0 , 1 , 2 , 2 , 1 %)
Lua
168 (0 , 1 , 1 , 1 , 1 %)
Erlang
156 (1 , 1 , 1 , 1 , 1 %)
Clojure
79 (0 , 0 , 0 , 1 , 1 %)
R
43 (0 , 0 , 0 , 0 , 0 %)
Julia
507 (3 , 4 , 4 , 2 , 1 %)
Other
166 (4.6%)
No response
Go使用狀況
使用者對Go的滿意度極高:他們認同他們會以19:1的比例向其他人推薦Go,並表示他們較傾向於在下一項計畫中使用Go(14:1),而且認為Go對於他們的團隊而言運作良好(18:1)。較少的使用者認同Go對於他們公司的成功至關重要(2.5:1)。
當被問及他們最喜歡Go的哪些功能時,使用者最常提到Go的簡潔、易用性、併發功能和效能。當被問及哪些變更會讓Go大幅提升時,使用者最常提到泛型、套件版本化和依賴性管理。其他熱門回應包括圖形使用者介面(GUI)、除錯和錯誤處理。
當被問及個人使用Go時面臨的最大挑戰,使用者提到了在前一個問題中建議的許多技術變更。非技術挑戰中最常見的主題是說服他人使用Go,並傳達Go的價值給他人,包括管理階層。另一個常見主題是學習Go或協助他人學習,包括尋找入職訓練說明、教學、範例和最佳實務之類的文件。
一些代表性的共同回饋,為保密起見已進行改寫
「文件對初學者而言不夠清楚。它需要更多範例,而且通常假設讀者具備其他程式語言和各種電腦科學主題的經驗。」
「我想在工作中使用Go,但在說服我的團隊甚至試試Go時遇到困難。」
「我無法取得管理層核准使用Go;他們不認為Go有價值,而且擔心採用和尋找開發人員的問題。」
感謝您提供的回饋,讓我們能了解使用者與社群所面對的挑戰。在 2017 年,我們專注於解決這些問題,希望能夠盡量做出許多重大改善。我們歡迎社群提供建議和貢獻,將這些挑戰轉化成 Go 的優勢。
To what extent do you agree or disagree with the following statements:
(strongly disagree , disagree , somewhat disagree , neutral , somewhat agree , agree , strongly agree )
3,250 (2 , 1 , 1 , 2 , 5 , 21 , 57 %)
I would recommend using Go to others (19:1)
3,219 (3 , 1 , 2 , 4 , 8 , 19 , 52 %)
I would prefer to use Go for my next new project (14:1)
2,325 (1 , 1 , 1 , 7 , 8 , 25 , 22 %)
Go is working well for my team. (18:1)
2,336 (4 , 7 , 3 , 14 , 12 , 12 , 12 %)
Go is critical to my company's success. (2.5:1)
讀取資料 :此問題詢問受訪者有多麼同意或不同意該陳述。各個陳述的回答顯示為單一長條圖的一部分,從左端的「強烈不同意」(深紅色)到右端的「強烈同意」(深藍色)。這些長條圖使用與其他圖形相同的比例,因此它們的整體長度可能(而且確實會,尤其是在調查的後半)因回答不足而有所不同。文字後的比率比較同意(包括「有點同意」和「強烈同意」)與不同意(包括「有點不同意」和「強烈不同意」)的受訪者人數。例如,受訪者同意推薦 Go 給其他受訪者的比率為 19 比 1。
What do you like most about Go?
595 (17%)
simplicity
543 (15%)
easy
523 (15%)
concurrency
495 (14%)
simple
454 (13%)
fast
293 (8%)
syntax
287 (8%)
standard library
286 (8%)
tooling
270 (8%)
static
266 (7%)
performance
235 (7%)
speed
202 (6%)
interfaces
184 (5%)
channels
183 (5%)
community
180 (5%)
good
177 (5%)
compilation
177 (5%)
goroutines
167 (5%)
binary
156 (4%)
great
148 (4%)
tools
146 (4%)
compiled
137 (4%)
compile
127 (4%)
type
124 (3%)
small
118 (3%)
c
114 (3%)
gofmt
114 (3%)
libraries
88 (2%)
clean
87 (2%)
easy to learn
82 (2%)
deployment
78 (2%)
memory
78 (2%)
strong
76 (2%)
concise
76 (2%)
single binary
73 (2%)
low
73 (2%)
static typing
71 (2%)
build
68 (2%)
easy to read
63 (2%)
fast compilation
56 (2%)
simple syntax
55 (2%)
type system
54 (2%)
simple language
51 (1%)
easy concurrency
47 (1%)
static binaries
46 (1%)
go fmt
45 (1%)
fast compile
43 (1%)
small language
41 (1%)
error handling
39 (1%)
concurrency model
39 (1%)
go routines
38 (1%)
easy to use
38 (1%)
statically typed
36 (1%)
cross platform
35 (1%)
concurrency primitives
35 (1%)
goroutines channels
33 (1%)
easy to write
27 (1%)
great standard library
23 (1%)
ease of use
940 (26%)
No response
讀取資料 :此問題要求填寫答案。上方的長條圖顯示了提到常用單字或片語的調查問卷比例。只會列出於 20 份以上的調查問卷中出現的單字或片語,而且會省略無意義的常用單字或片語,例如「the」或「to be」。顯示的結果會有重疊情況:例如,有 287 份答案提到「標準函式庫」,其中包含另外列出的 27 份答案提到「很棒的標準函式庫」。但會省略接近或完全重複的較短項目:沒有 20 份以上的調查問卷列出「標準」,卻沒提到「標準函式庫」,因此「標準」沒有個別項目。
What changes would improve Go most?
572 (16%)
generics
451 (13%)
management
330 (9%)
dependency
314 (9%)
package
266 (7%)
dependency management
164 (5%)
library
159 (4%)
gui
134 (4%)
package management
134 (4%)
vendoring
128 (4%)
debugger
126 (4%)
libraries
122 (3%)
standard
117 (3%)
type
109 (3%)
error
94 (3%)
system
89 (2%)
types
88 (2%)
official
85 (2%)
tools
84 (2%)
c
82 (2%)
gopath
78 (2%)
performance
70 (2%)
error handling
70 (2%)
ide
69 (2%)
package manager
66 (2%)
documentation
66 (2%)
faster
64 (2%)
good
63 (2%)
simple
63 (2%)
tool
62 (2%)
mobile
60 (2%)
debugging
57 (2%)
build
56 (2%)
packages
55 (2%)
easier
55 (2%)
standard library
55 (2%)
tooling
54 (2%)
interface
51 (1%)
dependencies
51 (1%)
generic
48 (1%)
programming
48 (1%)
versioning
47 (1%)
syntax
45 (1%)
compile
45 (1%)
solution
44 (1%)
framework
43 (1%)
examples
43 (1%)
gc
43 (1%)
type system
42 (1%)
gui library
41 (1%)
templates
40 (1%)
android
40 (1%)
community
40 (1%)
function
40 (1%)
native
40 (1%)
ui
40 (1%)
web
39 (1%)
functions
21 (1%)
cross platform
1,215 (34%)
No response
What is the biggest challenge you personally face using Go today?
249 (6.9%)
lack
206 (5.7%)
management
146 (4.1%)
libraries
129 (3.6%)
generics
127 (3.5%)
dependency management
84 (2.3%)
work
78 (2.2%)
package
76 (2.1%)
hard
68 (1.9%)
time
67 (1.9%)
good
67 (1.9%)
java
66 (1.8%)
gui
61 (1.7%)
web
60 (1.7%)
c
60 (1.7%)
debugging
59 (1.6%)
vendoring
58 (1.6%)
projects
56 (1.6%)
lack of generics
56 (1.6%)
library
51 (1.4%)
type
51 (1.4%)
write
50 (1.4%)
finding
49 (1.4%)
ide
49 (1.4%)
packages
48 (1.3%)
dependencies
46 (1.3%)
package management
45 (1.3%)
debugger
44 (1.2%)
adoption
42 (1.2%)
people
41 (1.1%)
learning
41 (1.1%)
team
40 (1.1%)
convincing
40 (1.1%)
tools
39 (1.1%)
error handling
39 (1.1%)
interfaces
39 (1.1%)
other languages
39 (1.1%)
writing
38 (1.1%)
interface
38 (1.1%)
others
37 (1.0%)
python
35 (1.0%)
find
35 (1.0%)
gopath
35 (1.0%)
programming
34 (0.9%)
can't
34 (0.9%)
standard
33 (0.9%)
build
33 (0.9%)
tooling
32 (0.9%)
generic
31 (0.9%)
boilerplate
30 (0.8%)
applications
30 (0.8%)
developers
30 (0.8%)
having
30 (0.8%)
types
30 (0.8%)
working
26 (0.7%)
at work
26 (0.7%)
using go
22 (0.6%)
no generics
20 (0.6%)
not enough
1,581 (44.0%)
No response
If it were not for the following reasons I would use Go more: (ordered choice, up to 3)
1,485 (24 , 14 , 4 %)
I work on an existing project written in another language
1,160 (16 , 12 , 4 %)
My project / team / TL prefers another language
841 (11 , 8 , 5 %)
Go isn’t an appropriate fit for what I’m working on (eg. iOS, JS)
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 resources for Go
121 (1 , 1 , 1 %)
Go lacks critical performance
374 (4 , 3 , 3 %)
Other
1,042 (29%)
No response
If you desire, please elaborate on your reasons above.
58 (1.6%)
c
58 (1.6%)
java
58 (1.6%)
libraries
50 (1.4%)
python
47 (1.3%)
web
45 (1.3%)
generics
45 (1.3%)
work
40 (1.1%)
projects
34 (0.9%)
languages
33 (0.9%)
hard
32 (0.9%)
lack
32 (0.9%)
team
31 (0.9%)
library
31 (0.9%)
people
29 (0.8%)
gui
25 (0.7%)
good
25 (0.7%)
performance
24 (0.7%)
mobile
24 (0.7%)
written
23 (0.6%)
programming
23 (0.6%)
time
22 (0.6%)
golang
20 (0.6%)
company
20 (0.6%)
existing
20 (0.6%)
great
20 (0.6%)
php
20 (0.6%)
tools
3,033 (84.4%)
No response
開發和佈署
被問及使用哪些作業系統開發 Go 時,63% 的受訪者表示使用 Linux,44% 使用 MacOS,19% 使用 Windows,允許多個選項,而且有 49% 的受訪者在多個系統上開發。選擇單一系統的 51% 回答分為:Linux 29%,MacOS 17%,Windows 5%,其他系統 0.2%。
Go 的佈署大致上平均分佈在私人管理的伺服器和託管的雲端伺服器之間。
I primarily develop Go on: (multiple choice)
2,263 (63%)
Linux
1,592 (44%)
MacOS
682 (19%)
Windows
82 (2%)
Other
434 (12%)
No response
My preferred code editor: (ordered choice, up to 2)
1,359 (25 , 13 %)
Vim
814 (14 , 9 %)
VSCode
676 (10 , 9 %)
Atom
687 (13 , 6 %)
IntelliJ
655 (10 , 8 %)
Sublime Text
305 (6 , 2 %)
Emacs
137 (2 , 2 %)
Visual Studio
153 (3 , 2 %)
LiteIDE
99 (1 , 2 %)
Eclipse
37 (1 , 1 %)
Acme
238 (4 , 3 %)
Other
425 (12%)
No response
How satisfied are you with Go support in your preferred editor: (single choice)
69 (1.9%)
Very Dissatisfied
52 (1.4%)
Dissatisfied
164 (4.6%)
Somewhat Dissatisfied
134 (3.7%)
Neither Satisfied or Unsatisfied
609 (16.9%)
Somewhat Satisfied
1,258 (35.0%)
Satisfied
838 (23.3%)
Very Satisfied
471 (13.1%)
No response
What one addition would make the biggest improvement to Go editing in your preferred editor?
180 (5.0%)
debugging
136 (3.8%)
debugger
116 (3.2%)
refactoring
79 (2.2%)
integration
72 (2.0%)
tools
68 (1.9%)
completion
58 (1.6%)
editor
46 (1.3%)
debug
43 (1.2%)
code completion
43 (1.2%)
work
41 (1.1%)
vim
40 (1.1%)
autocomplete
40 (1.1%)
vscode
37 (1.0%)
package
37 (1.0%)
plugin
36 (1.0%)
definition
36 (1.0%)
easier
36 (1.0%)
good
36 (1.0%)
ide
36 (1.0%)
intellij
35 (1.0%)
faster
35 (1.0%)
function
34 (0.9%)
atom
34 (0.9%)
interface
33 (0.9%)
vim-go
32 (0.9%)
gopath
31 (0.9%)
integrated
30 (0.8%)
working
29 (0.8%)
auto
28 (0.8%)
refactoring support
27 (0.8%)
delve
27 (0.8%)
type
26 (0.7%)
guru
26 (0.7%)
syntax
25 (0.7%)
error
25 (0.7%)
method
25 (0.7%)
packages
25 (0.7%)
plugins
24 (0.7%)
compile
24 (0.7%)
jump
23 (0.6%)
features
23 (0.6%)
find
23 (0.6%)
goimports
23 (0.6%)
navigation
23 (0.6%)
performance
23 (0.6%)
refactoring tools
23 (0.6%)
works
22 (0.6%)
autocompletion
22 (0.6%)
debugging support
22 (0.6%)
errors
22 (0.6%)
gofmt
22 (0.6%)
run
21 (0.6%)
highlighting
21 (0.6%)
save
21 (0.6%)
setup
21 (0.6%)
visual
20 (0.6%)
documentation
20 (0.6%)
great
2,291 (63.7%)
No response
My team deploys Go/non-Go programs to: (multiple choice)
1,489 (41%)
Self/Company Owned Servers (Go)
1,714 (48%)
(non-Go)
928 (26%)
AWS EC2
1,122 (31%)
503 (14%)
None
249 (7%)
412 (11%)
Digital Ocean
360 (10%)
292 (8%)
AWS Container
343 (10%)
221 (6%)
Google Compute Engine
186 (5%)
188 (5%)
Google App Engine
94 (3%)
161 (4%)
Google Container Engine (GKE)
115 (3%)
121 (3%)
Heroku
185 (5%)
114 (3%)
Microsoft Azure
210 (6%)
104 (3%)
Linode
100 (3%)
94 (3%)
AWS Lambda
233 (6%)
301 (8%)
Other
297 (8%)
639 (18%)
No response
660 (18%)
有效率地工作
我們詢問受訪者對於關於 Go 的各種陳述的贊同或反對強度。使用者最同意 Go 的效能符合他們的需求 (贊成與反對的比例是 57:1),他們可以快速找到問題的答案 (20:1),而且他們可以有效使用 Go 的並行功能 (14:1)。另一方面,使用者最不認同的是他們可有效除錯 Go 並行功能的使用 (2.7:1)。
使用者大多認同他們可以快速找到需要的函式庫 (7.5:1)。當被問到還缺少什麼函式庫時,迄今最常見的請求是撰寫 GUI 的函式庫。另一個受歡迎的主題是關於資料處理、分析及數值和科學運算的請求。
在 30% 建議改善 Go 文件的方式的使用者中,到目前最常見的建議是列出更多範例。
Go 新聞的主要來源是 Go 部落格、Reddit 的 /r/golang 和 Twitter;由於這些也是問卷調查發佈的方式,所以可能會有些偏見在這裡。
找出 Go 問題答案的主要來源是 Go 網站、Stack Overflow 和直接閱讀原始碼。
To what extent do you agree or disagree with the following statements:
(strongly disagree , disagree , somewhat disagree , neutral , somewhat agree , agree , strongly agree )
3,094 (1 , 2 , 5 , 6 , 27 , 32 , 12 %)
I have a good understanding of Go best practices. (9.6:1)
3,083 (0 , 1 , 3 , 4 , 17 , 41 , 20 %)
I am able to quickly find answers to my questions. (20:1)
3,053 (0 , 0 , 1 , 2 , 7 , 32 , 42 %)
Go's performance meets my needs. (57:1)
2,523 (1 , 3 , 5 , 14 , 15 , 26 , 8 %)
Go's support for language interoperability meets my needs. (6.0:1)
3,049 (1 , 2 , 6 , 7 , 24 , 34 , 11 %)
I am able to quickly find libraries that I need. (7.5:1)
3,083 (1 , 2 , 4 , 5 , 18 , 37 , 20 %)
Go language, library, and tool documentation meet my needs. (11:1)
What Go libraries do you need that aren't available today?
208 (5.8%)
gui
144 (4.0%)
library
121 (3.4%)
libraries
63 (1.8%)
native
60 (1.7%)
ui
53 (1.5%)
good
33 (0.9%)
orm
33 (0.9%)
standard
33 (0.9%)
web
32 (0.9%)
framework
32 (0.9%)
gui library
31 (0.9%)
mobile
28 (0.8%)
android
28 (0.8%)
database
28 (0.8%)
desktop
28 (0.8%)
libs
28 (0.8%)
sql
26 (0.7%)
cross platform
25 (0.7%)
processing
25 (0.7%)
xml
24 (0.7%)
api
24 (0.7%)
machine learning
24 (0.7%)
official
24 (0.7%)
windows
23 (0.6%)
soap
22 (0.6%)
toolkit
21 (0.6%)
pdf
21 (0.6%)
python
20 (0.6%)
bindings
20 (0.6%)
graphics
20 (0.6%)
package
2,498 (69.5%)
No response
What changes would most improve the Go documentation?
512 (14%)
examples
300 (8%)
more examples
134 (4%)
documentation
69 (2%)
example
62 (2%)
docs
49 (1%)
godoc
34 (1%)
usage
32 (1%)
functions
32 (1%)
package
31 (1%)
good
29 (1%)
function
29 (1%)
great
29 (1%)
packages
29 (1%)
search
28 (1%)
cases
26 (1%)
best practices
26 (1%)
libraries
23 (1%)
doc
23 (1%)
more example
22 (1%)
code examples
21 (1%)
syntax
20 (1%)
interface
2,532 (70%)
No response
To what extent do you agree or disagree with the following statements:
(strongly disagree , disagree , somewhat disagree , neutral , somewhat agree , agree , strongly agree )
3,002 (1 , 2 , 6 , 7 , 23 , 34 , 11 %)
I am able to effectively diagnose bugs in my Go programs. (7.2:1)
2,725 (1 , 2 , 6 , 13 , 22 , 24 , 7 %)
I am able to effectively diagnose performance issues in my Go programs. (5.8:1)
2,932 (1 , 2 , 3 , 5 , 17 , 33 , 22 %)
I am able to effectively use Go's concurrency features (goroutines, channels, select). (14:1)
2,801 (2 , 5 , 11 , 14 , 23 , 18 , 5 %)
I am able to effectively debug uses of Go's concurrency features (goroutines, channels, select). (2.7:1)
Rank the following in terms of where you get Go answers from: (ordered choice, up to 5)
2,226 (23 , 18 , 12 , 7 , 3 %)
Stack Overflow
2,101 (30 , 15 , 8 , 4 , 1 %)
golang.org
1,814 (13 , 17 , 12 , 7 , 2 %)
Reading source code (e.g., standard library, open-source packages)
1,200 (3 , 8 , 12 , 7 , 4 %)
GitHub
854 (3 , 7 , 7 , 5 , 3 %)
golang-nuts mailing list (groups.google.com/d/forum/golang-nuts)
682 (2 , 3 , 5 , 5 , 3 %)
Reddit (r/golang)
630 (3 , 4 , 5 , 3 , 2 %)
Coworkers
334 (2 , 2 , 2 , 2 , 2 %)
Gopher Slack (invite.slack.golangbridge.org)
214 (1 , 1 , 2 , 1 , 1 %)
Friends
161 (0 , 0 , 1 , 1 , 1 %)
Twitter
156 (1 , 1 , 1 , 1 , 0 %)
IRC
126 (0 , 1 , 1 , 1 , 1 %)
Go Forum (forum.golangbridge.org)
262 (2 , 2 , 1 , 1 , 1 %)
Other
643 (18%)
No response
Rank the following in terms of where you get Go news from: (ordered choice, up to 5)
1,659 (17 , 14 , 9 , 4 , 2 %)
blog.Golang.org
1,153 (17 , 8 , 4 , 2 , 1 %)
Reddit (r/golang)
1,053 (14 , 8 , 4 , 3 , 1 %)
Twitter
903 (6 , 8 , 6 , 3 , 1 %)
Hacker News
777 (9 , 6 , 4 , 2 , 0 %)
Golangweekly.com
633 (2 , 6 , 5 , 4 , 1 %)
Community Blogs
430 (2 , 3 , 4 , 2 , 1 %)
GitHub
418 (3 , 3 , 3 , 2 , 1 %)
golang-nuts mailing list (groups.google.com/d/forum/golang-nuts)
394 (3 , 3 , 3 , 1 , 1 %)
Coworkers
212 (1 , 1 , 2 , 1 , 1 %)
Gopher Slack (invite.slack.golangbridge.org)
203 (1 , 2 , 1 , 1 , 1 %)
Golangnews.com
199 (1 , 2 , 1 , 1 , 1 %)
golang-announce (groups.google.com/d/forum/golang-announce)
176 (1 , 1 , 1 , 1 , 1 %)
Go Time podcast
65 (0 , 0 , 0 , 1 , 0 %)
Go Forum (forum.golangbridge.org)
42 (0 , 0 , 0 , 0 , 0 %)
Facebook
160 (1 , 1 , 1 , 0 , 0 %)
Other
747 (21%)
No response
I have attended: (multiple choice)
1,315 (37%)
None
879 (24%)
A Go meetup
523 (15%)
A Go themed conference (GopherCon, GothamGo, etc)
276 (8%)
A Go remote meetup / online event
186 (5%)
Go training
165 (5%)
A technical conference for it's Go content
43 (1%)
A GoBridge event
37 (1%)
A Women Who Go event
65 (2%)
Other
993 (28%)
No response
Go 專案
55% 的受訪者表示有興趣以某種方式對 Go 社群和專案有所貢獻。但遺憾的是,相對來說,只有少數人表示受到歡迎 (3.3:1),甚至更少人覺得此流程很明確 (1.3:1)。在 2017 年,我們打算改善貢獻流程並繼續努力讓所有貢獻者都能感受到歡迎。
受訪者同意,他們對 Go 專案的領導階層有信心 (9:1),但他們不怎麼同意專案領導階層了解他們的需求 (2.6:1),而且他們更不認同他們對於用問題和回饋意見聯繫專案領導階層時感到自在 (2.2:1)。事實上,這是在調查中,超過一半的受訪者未標記「有點同意」、「同意」或「非常同意」的唯一一些問題 (許多人保持中立或未回答)。
我們希望問卷調查和這篇部落格貼文傳達給那些不方便主動聯繫的人:Go 專案領導階層有在傾聽。在整個 2017 年,我們將探索與使用者互動的新方式,以更瞭解他們的需求。
I contribute to open source projects written in Go: (single choice)
1,227 (34%)
Infrequently
890 (25%)
Never
345 (10%)
Monthly
295 (8%)
Weekly
234 (7%)
As part of my daily routine
604 (17%)
No response
I have contributed or am interested in contributing in the following ways to the Go community and Projects: (multiple choice)
892 (25%)
Standard library
663 (18%)
Tools (go guru, go vet, go doc, etc)
602 (17%)
Tutorials
560 (16%)
Documentation
557 (15%)
Community support via Stack Overflow, Slack, mailing list, etc
472 (13%)
Community involvement (workgroups, meetup attendance)
440 (12%)
Being a technical mentor
374 (10%)
Toolchain (compiler, linker, etc)
275 (8%)
Go Project maintenance (issue triage)
246 (7%)
Event planning (meetup, conference, etc)
236 (7%)
Language translation
165 (5%)
General UX & Design contributions
154 (4%)
golang.org website (code, UX, IA, content, etc)
92 (3%)
Other
1,621 (45%)
No response
To what extent do you agree or disagree with the following statements:
(strongly disagree , disagree , somewhat disagree , neutral , somewhat agree , agree , strongly agree )
2,091 (1 , 3 , 5 , 19 , 10 , 14 , 6 %)
I feel welcome to contribute to Go (compiler, standard library, documentation, website) (3.3:1)
2,168 (3 , 7 , 9 , 16 , 10 , 11 , 4 %)
The process of contributing to the Go project is clear to me (1.3:1)
1,900 (1 , 2 , 5 , 22 , 8 , 11 , 3 %)
The Go project leadership understands my needs (2.6:1)
2,114 (2 , 4 , 6 , 18 , 10 , 14 , 5 %)
I feel comfortable approaching the Go project leadership with questions and feedback (2.2:1)
2,374 (1 , 1 , 3 , 12 , 9 , 24 , 15 %)
I am confident in the leadership of Go (9.0:1)
What is the biggest challenge facing the Go project today?
71 (2.0%)
community
68 (1.9%)
google
63 (1.8%)
generics
62 (1.7%)
management
49 (1.4%)
adoption
45 (1.3%)
lack
43 (1.2%)
features
43 (1.2%)
people
40 (1.1%)
dependency management
37 (1.0%)
java
32 (0.9%)
languages
31 (0.9%)
keeping
29 (0.8%)
c
27 (0.8%)
developers
27 (0.8%)
leadership
24 (0.7%)
good
24 (0.7%)
libraries
24 (0.7%)
package
23 (0.6%)
simple
21 (0.6%)
core
21 (0.6%)
feature
20 (0.6%)
programming
20 (0.6%)
team
2,771 (77.1%)
No response
在問卷調查的最後,我們詢問了一些人口統計問題。回應者的國家分佈大致符合 golang.org 網站造訪者的國家分佈,但回應資訊不足以代表一些亞洲國家。特別是,印度、中國和日本分別約佔 golang.org 在 2016 年網站造訪者的 5%,但只佔問卷調查回應者的 3%、2% 和 1%。
社群中很重要的環節就是要讓每個人都覺得自己受歡迎,尤其是那些來自於少數族群的人們。我們在幾個多元化團體中詢問了有關身分的選填性問題。37% 的受訪者留白,12% 的受訪者選擇「我不想回答」,因此我們無法從資料中得出許多概括性的結論。然而,有一個比較顯著:9% 自認為是少數族群的人同意「我在 Go 社群中感到受歡迎」的說法,其比率為 7.5:1,與整體調查的 15:1 相比。我們的目標是讓 Go 社群更令人感到歡迎。我們支持像 GoBridge 和 Women Who Go 這樣的組織並且受到他們的努力所鼓舞。
調查中的最後一個問題只是為了好玩:你最喜歡的 Go 關鍵字是什麼?或許不太令人意外的是,最受歡迎的回應是 go
,接下來依序是 defer
、func
、interface
和 select
。
To what extent do you agree or disagree with the following statements:
(strongly disagree , disagree , somewhat disagree , neutral , somewhat agree , agree , strongly agree )
2,701 (1 , 1 , 2 , 11 , 10 , 31 , 19 %)
I feel welcome in the Go community. (15:1)
What changes would make the Go community more welcoming?
115 (3.2%)
community
52 (1.4%)
people
32 (0.9%)
r/golang
31 (0.9%)
go community
30 (0.8%)
google
30 (0.8%)
reddit
24 (0.7%)
welcoming
23 (0.6%)
official
23 (0.6%)
open
22 (0.6%)
code of conduct
21 (0.6%)
golang
21 (0.6%)
team
3,017 (83.9%)
No response
In which country do you currently reside? (single choice)
928 (26%)
United States of America
253 (7%)
Germany
168 (5%)
United Kingdom
148 (4%)
Russia
119 (3%)
France
112 (3%)
Canada
91 (3%)
India
73 (2%)
China
72 (2%)
Australia
55 (2%)
Netherlands
54 (2%)
Spain
45 (1%)
Sweden
43 (1%)
Poland
40 (1%)
Italy
36 (1%)
Brazil
36 (1%)
Switzerland
35 (1%)
Ukraine
27 (1%)
Japan
24 (1%)
Czech Republic
23 (1%)
Belgium
441 (12%)
Other
772 (21%)
No response
We want the Go community to be inclusive; we want to see how we're doing and how to improve.
Please select the groups you identify with: (multiple choice)
1,499 (42%)
I do not identify as part of an underrepresented group
438 (12%)
I prefer not to answer
101 (3%)
I identify as LGBTQIA
95 (3%)
I identify as ethnically or racially underrepresented
77 (2%)
I identify as neurodiverse or as having a disability
49 (1%)
I identify as a woman
47 (1%)
Write-in: objection to the question.
38 (1%)
I identify as part of an underrepresented group, but I prefer not to specify
34 (1%)
I identify with an underrepresented group not listed.
1,332 (37%)
No response
Just for fun: What is your favorite Go keyword?
854 (24%)
go
455 (13%)
defer
253 (7%)
func
240 (7%)
select
227 (6%)
interface
145 (4%)
struct
139 (4%)
chan
129 (4%)
range
67 (2%)
fallthrough
56 (2%)
switch
53 (1%)
for
48 (1%)
type
47 (1%)
map
44 (1%)
goto
36 (1%)
import
22 (1%)
if
20 (1%)
package
19 (1%)
var
17 (0%)
const
14 (0%)
continue
13 (0%)
return
12 (0%)
break
3 (0%)
else
2 (0%)
case
2 (0%)
default
678 (19%)
No response
Is there anything else you would like to share with us?
95 (2.6%)
thanks
94 (2.6%)
great
86 (2.4%)
thank you
47 (1.3%)
keep up the good work
47 (1.3%)
programming
43 (1.2%)
community
39 (1.1%)
c
37 (1.0%)
awesome
33 (0.9%)
i love
31 (0.9%)
people
29 (0.8%)
golang
27 (0.8%)
great work
27 (0.8%)
java
27 (0.8%)
languages
26 (0.7%)
fun
26 (0.7%)
job
26 (0.7%)
time
25 (0.7%)
love go
24 (0.7%)
generics
24 (0.7%)
team
23 (0.6%)
projects
22 (0.6%)
best
22 (0.6%)
wish
22 (0.6%)
years
21 (0.6%)
simple
2,886 (80.3%)
No response