Go 部落格

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,接下來依序是 deferfuncinterfaceselect

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

下一篇文章:HTTP/2 Server Push
上一篇文章:Go 1.8 發布了
部落格目錄