Go 2016 年用户调查结果
Steve Francia,代表 Go 团队 2017 年 3 月 6 日
感谢
这篇文章总结了我们 2016 年 12 月用户调查的结果,以及我们的评论和见解。我们感谢所有通过调查提供反馈的人,帮助塑造 Go 的未来。
编程背景
在 3595 名调查受访者中,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%。本文中的所有图表都显示了总数以及 3595 份已完成调查的相应百分比。
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;他们没有看到它的价值,并且担心采用和寻找开发人员。”
我们感谢用户提供的反馈,以识别用户和社区面临的这些挑战。在 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 网站访问量的国家/地区分布相匹配,但回复中低估了一些亚洲国家。特别是,印度、中国和日本在 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