Go 2016 年调查结果
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 非常满意:他们同意会向他人推荐 Go 的比例为 19:1,他们更倾向于在下一个项目中使用 Go (14:1),并且 Go 在他们的团队中运行良好 (18:1)。认为 Go 对公司成功至关重要的用户较少 (2.5:1)。
当被问及最喜欢 Go 的什么时,用户最常提到 Go 的简洁性、易用性、并发特性和性能。当被问及哪些改变能最大程度地改进 Go 时,用户最常提到泛型、包版本控制和依赖管理。其他热门回答包括 GUI、调试和错误处理。
当被问及个人使用 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
数据解读 :这个问题要求填写回答。上面的条形图显示了提到常见词语或短语的调查比例。仅列出出现在二十份或更多调查中的词语或短语,并省略了像“the”或“to be”这样无意义的常见词语或短语。显示的结果确实存在重叠:例如,提到“standard library”的 287 个回答确实包括单独列出的提到“great standard library”的 27 个回答。然而,几乎或完全冗余的较短条目被省略了:没有二十份或更多调查在提到“standard library”时只列出了“standard”,因此没有单独的“standard”条目。
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 的库。另一个热门话题是关于数据处理、分析以及数值和科学计算的请求。
在建议改进 Go 文档的 30% 用户中,最常见的建议是增加更多示例。
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 网站访问的国家分布相符,但对一些亚洲国家的代表性不足。特别是印度、中国和日本在 2016 年分别约占 golang.org 网站访问量的 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