Goブログ

Go 2017年調査結果

スティーブ・フランシア
2018年2月26日

ありがとうございます

この記事では、2017年のユーザー調査の結果を、解説と考察を加えてまとめています。また、2016年と2017年の調査結果の重要な比較も行っています。

今年は6,173人の回答者があり、Go 2016年ユーザー調査の3,595人よりも70%増加しました。さらに、完了率もわずかに高く(84%→87%)、ほとんどの質問に対する回答率も高くなりました。2017年の調査は、2016年の調査が長すぎたというフィードバックに応えて短縮されたため、調査の長さがこの改善の主な原因であると考えています。

Goの将来を形作るために、調査を通じてフィードバックを提供してくださった皆様に感謝いたします。

プログラミングの背景

初めて、調査回答者のうち、Goのコードを書くことに対して報酬を得ていると答えた人が、仕事以外で書いていると答えた人よりも多くなりました。これは、Goのユーザーベースと、プロフェッショナルなソフトウェア開発のための企業による受け入れに大きな変化を示しています。

調査に回答した人が働いている分野は、昨年とほぼ同じですが、モバイルおよびデスクトップアプリケーションは大幅に減少しました。

もう1つの重要な変化:Goの利用の第1位は、API / RPCサービスの作成(65%、2016年から5%増)になり、GoでCLIツールを作成するというトップの座を奪いました(63%)。どちらもGoの際立った機能を最大限に活用しており、現代のクラウドコンピューティングの重要な要素です。より多くの企業がGoを採用するにつれて、これらのGoの2つの用途が引き続き繁栄すると予想されます。

ほとんどの指標は、過去数年で学んだことを再確認しています。Goプログラマーは依然として圧倒的にGoを好んでいます。時間が経つにつれて、GoユーザーはGoでの経験を深めています。GoはGo開発者の中でリードを拡大していますが、言語ランキングの順位は昨年とほぼ一致しています。

The following apply to me: (multiple choice) 4,201 (67%) I program at work in Go 3,935 (63%) I program in Go outside of work 3,381 (54%) I program at work in another language 1,001 (16%) I manage a programming team 506  (8%) I am a student 113  (2%) Other 27  (0%) No response

I've used Go for: (single choice) 686 (11%) Less than 3 months 1,588 (26%) 3 - 12 months 1,338 (21%) 13 - 24 months 1,678 (27%) 2 - 4 years 809 (13%) 4+ years 102  (2%) I've never used Go 25  (0%) No response

I work in the following areas: (multiple choice) 3,807 (61%) Web development 2,319 (37%) Systems programming 2,250 (36%) DevOps 1,969 (32%) Network programming 1,751 (28%) Databases 848 (14%) Security 777 (12%) Finance/Commerce 724 (12%) Data Science 696 (11%) Mobile 694 (11%) Desktop/GUI applications 647 (10%) Embedded devices/Internet of Things 581  (9%) Academic/Scientific/Numeric 581  (9%) Machine Learning/Artificial Intelligence 334  (5%) Gaming 381  (6%) Other 111  (2%) No response

I write the following in Go: (multiple choice) 4,071 (65%) API/RPC services (returning non-HTML) 3,921 (63%) A runnable/interactive program (CLI) 3,027 (49%) Web services (returning HTML) 2,766 (44%) Agents and daemons (e.g, monitoring) 2,394 (38%) Libraries or Frameworks 2,038 (33%) Automation/scripts (e.g, deployment, configuration management) 2,030 (33%) Data processing (pipeline, aggregation) 167  (3%) I don't write in Go 176  (3%) Other 70  (1%) No response

I write in Go: (single choice) 3,019 (48%) As part of my daily routine 1,802 (29%) Weekly 557  (9%) Monthly 679 (11%) Infrequently 118  (2%) I've never written in Go 51  (1%) No response

Rank the following languages in terms of your expertise 5,540 (30, 27, 17, 9, 6%) Go 3,638 (9, 16, 15, 11, 7%) JavaScript 3,369 (13, 12, 12, 10, 7%) Python 2,706 (11, 8, 8, 9, 7%) Java 2,402 (7, 8, 8, 8, 8%) C 2,020 (2, 5, 9, 10, 7%) Bash 1,631 (4, 4, 5, 7, 6%) C++ 1,475 (7, 5, 4, 4, 4%) PHP 1,042 (4, 3, 4, 3, 3%) C# 1,034 (4, 3, 3, 3, 3%) Ruby 460 (1, 1, 1, 2, 2%) Perl 284 (0.5, 0.6, 0.8, 1, 1%) Scala 278 (0.2, 0.4, 0.8, 1, 2%) Rust 260 (0.3, 0.5, 0.7, 1, 1%) Swift 223 (0.1, 0.2, 0.8, 1, 1%) Lua 185 (0.1, 0.5, 0.7, 0.8, 0.8%) Kotlin 139 (0.1, 0.2, 0.3, 0.6, 1%) Haskell 139 (0.2, 0.2, 0.4, 0.8, 0.6%) Clojure 136 (0.2, 0.3, 0.4, 0.5, 0.8%) R 124 (0.1, 0.2, 0.4, 0.6, 0.7%) Erlang 24 (0.0, 0.1, 0.0, 0.1, 0.1%) Julia 726 (3, 2, 3, 2, 2%) Other 173 (2.8%) No response

Rank the following languages in terms of your preference 5,728 (65, 18, 6, 2, 1%) Go 3,156 (7, 18, 12, 8, 4%) Python 2,463 (3, 9, 12, 8, 7%) JavaScript 1,827 (2, 7, 8, 7, 6%) C 1,764 (2, 6, 7, 7, 6%) Java 1,240 (1, 4, 5, 5, 5%) C++ 1,196 (0.6, 3, 6, 5, 5%) Bash 939 (2, 4, 4, 3, 2%) Rust 924 (2, 4, 4, 3, 2%) C# 859 (2, 4, 3, 3, 2%) Ruby 757 (0.8, 3, 3, 3, 3%) PHP 455 (1, 2, 2, 2, 0.9%) Kotlin 414 (0.7, 1, 2, 2, 1%) Swift 383 (1, 1, 1, 2, 1%) Haskell 335 (0.8, 1, 1, 1, 0.9%) Scala 305 (0.6, 1, 1, 1, 0.9%) Perl 279 (0.3, 0.8, 1, 1, 0.8%) Erlang 250 (0.1, 0.5, 1, 1, 1%) Lua 248 (0.6, 0.8, 1, 0.9, 0.6%) Clojure 113 (0.1, 0.4, 0.4, 0.5, 0.4%) R 71 (0.1, 0.2, 0.3, 0.3, 0.2%) Julia 709 (2, 3, 3, 2, 1%) Other 241 (3.9%) No response

20162017The following apply to me: (multiple choice)4,201 (67%)I program at work in Go3,935 (63%)I program in Go outside of work3,381 (54%)I program at work in another language1,001 (16%)I manage a programming team506  (8%)I am a student113  (2%)Other27  (0%)No responseThe following apply to me: (multiple choice)2,386 (66%)I program in Go outside of work2,235 (62%)I program at work in Go2,004 (56%)I program at work in another language618 (17%)I manage a programming team337  (9%)I am a student78  (2%)Other10  (0%)No response

20162017I work in the following areas: (multiple choice)2,272 (63%)Web development1,359 (38%)Systems programming1,251 (35%)DevOps1,169 (33%)Network programming1,006 (28%)Databases533 (15%)Mobile490 (14%)Desktop/GUI applications457 (13%)Security435 (12%)Data Science417 (12%)Finance/Commerce394 (11%)Embedded devices/Internet of Things379 (11%)Academic/Scientific/Numeric228  (6%)Gaming238  (7%)Other74  (2%)No responseI work in the following areas: (multiple choice)3,807 (61%)Web development2,319 (37%)Systems programming2,250 (36%)DevOps1,969 (32%)Network programming1,751 (28%)Databases848 (14%)Security777 (12%)Finance/Commerce724 (12%)Data Science696 (11%)Mobile694 (11%)Desktop/GUI applications647 (10%)Embedded devices/Internet of Things581  (9%)Academic/Scientific/Numeric581  (9%)Machine Learning/Artificial Intelligence334  (5%)Gaming381  (6%)Other111  (2%)No response

20162017I write the following in Go: (multiple choice)2,247 (63%)A runnable/interactive program2,174 (60%)API/RPC services1,886 (52%)Web services1,583 (44%)Agents and daemons1,417 (39%)Libraries or Frameworks1,209 (34%)Data processing1,120 (31%)Automation/scripts107  (3%)I don't write in Go137  (4%)Other45  (1%)No responseI write the following in Go: (multiple choice)4,071 (65%)API/RPC services3,921 (63%)A runnable/interactive program3,027 (49%)Web services2,766 (44%)Agents and daemons2,394 (38%)Libraries or Frameworks2,038 (33%)Automation/scripts2,030 (33%)Data processing167  (3%)I don't write in Go176  (3%)Other70  (1%)No response

Goの使用状況

Goの使用と認識に関するほぼすべての質問で、Goは以前の調査よりも改善を示しました。ユーザーはGoの使用に満足しており、次のプロジェクトでGoを使用することを好む割合が大きくなっています。

Goの個人的な使用における最大の課題について尋ねられたとき、ユーザーは、依存関係管理の欠如とジェネリクスの欠如が最大の2つの問題であることを明確に伝えました。2017年には、これらの問題に対処するための基盤を築きました。経験レポートの追加により、提案と開発プロセスを改善し、プロジェクトがこれらの大きな変更を行うために不可欠なフィードバックを収集および取得できるようにしました。また、Goがパッケージを取得および構築する方法について、舞台裏で大きな変更を加えました。これは、依存関係管理のニーズに対処するために不可欠な基礎的な作業です。

これらの2つの問題は、2018年も引き続きプロジェクトの主要な焦点になります。

このセクションでは、2つの新しい質問をしました。どちらも、開発者がこれまでよりも詳細な方法でGoを使って何をしているかに焦点を当てています。このデータがGoプロジェクトとエコシステムへの洞察を提供することを願っています。

昨年から、「Goには重要な機能が欠けている」ことをGoをあまり使用しない理由として特定した人の割合が増加し、「Goが適切でない」ことを特定した人の割合が減少しました。これらの変更を除いて、リストは昨年と一致しています。

To what extent do you agree or disagree with the following statements: (strongly disagree, disagree, somewhat disagree, neither agree nor disagree, somewhat agree, agree, strongly agree) 5,938 (2, 0.8, 1, 2, 5, 21, 64%) I would recommend using Go to others (26:1) [32:1] 5,928 (2, 1, 2, 4, 8, 20, 58%) I would prefer to use Go for my next new project (17:1) [23:1] 4,548 (1, 0.8, 1, 7, 9, 23, 31%) Go is working well for my team (21:1) [26:1] 4,716 (5, 6, 4, 17, 14, 14, 17%) Go is critical to my company’s success (3.1:1) [3.1:1]

データの読み方:この質問では、回答者がステートメントにどの程度同意または反対したかを尋ねました。各ステートメントへの回答は、左端の濃い赤色の「強く反対」から、右端の濃い青色の「強く同意」まで、単一のバーのセクションとして表示されます。バーは残りのグラフと同じスケールを使用しているため、応答がないために全体的な長さが(特に調査の後半で)変化する可能性があります。

テキストの後の比率は、「同意する」(「どちらかと言えば同意する」と「強く同意する」を含む)と回答した人の数を、「同意しない」(「どちらかと言えば同意しない」と「強く同意しない」を含む)と回答した人の数と比較したものです。たとえば、Goを推奨すると回答した人が、同意しないと回答した人の比率は19対1でした。2番目の比率(括弧内)は、単に加重比率であり、それぞれ「どちらかと言えば」= 1、「同意/反対」= 2、「強く」= 4です。

What is the biggest challenge you personally face using Go today? 582 (9.3%) lack 489 (7.9%) generics 402 (6.5%) management 277 (4.4%) libraries 266 (4.3%) dependency management 194 (3.1%) lack of generics 159 (2.6%) package 137 (2.2%) gui 137 (2.2%) library 132 (2.1%) good 132 (2.1%) work 122 (2.0%) time 115 (1.8%) enough 114 (1.8%) error handling 113 (1.8%) type 109 (1.8%) learning 106 (1.7%) projects 104 (1.7%) hard 97 (1.6%) team 91 (1.5%) dependencies 91 (1.5%) java 87 (1.4%) c 82 (1.3%) debugging 81 (1.3%) no generics 81 (1.3%) vendoring 79 (1.3%) package management 79 (1.3%) programming 77 (1.2%) gopath 76 (1.2%) features 76 (1.2%) types 75 (1.2%) people 74 (1.2%) web 73 (1.2%) python 73 (1.2%) write 68 (1.1%) development 67 (1.1%) generic 67 (1.1%) writing 66 (1.1%) difficult 64 (1.0%) interface 64 (1.0%) tools 63 (1.0%) missing 62 (1.0%) performance 60 (1.0%) interfaces 60 (1.0%) standard 58 (0.9%) community 58 (0.9%) packages 56 (0.9%) build 56 (0.9%) well 55 (0.9%) best 55 (0.9%) cgo 55 (0.9%) debugger 55 (0.9%) ide 55 (0.9%) other languages 55 (0.9%) verbose 54 (0.9%) boilerplate 54 (0.9%) finding 54 (0.9%) learn 53 (0.9%) not enough 2,956 (47.5%) No response

データの読み方:この質問では、書き込み式の回答を求めました。上記のバーは、一般的な単語またはフレーズに言及した調査の割合を示しています。20以上の調査に登場した単語またはフレーズのみがリストされ、「the」や「to be」などの意味のない一般的な単語またはフレーズは省略されています。表示された結果は重複しています。たとえば、「management」に言及した402件の回答には、「依存関係管理」に個別にリストされた266件と、「パッケージ管理」に個別にリストされた79件が含まれています。

ただし、ほとんどまたは完全に冗長な短いエントリは省略されます。「依存関係管理」に言及せずに「依存関係」をリストした調査は20件以上ないため、「依存関係」の個別のエントリはありません。

If it were not for the following reasons I would use Go more: 3,077 (31, 14, 4%) I work on an existing project written in another language 2,152 (14, 16, 5%) My project / team / TL prefers another language 1,218 (10, 5, 4%) Go lacks critical features 1,100 (6, 7, 4%) Go lacks critical libraries 1,056 (6, 6, 4%) Go isn't appropriate for what I'm working on 643 (4, 4, 3%) Not enough education or support resources for Go 311 (2, 2, 1%) Go lacks critical performance 790 (5, 4, 3%) Other 1,309 (21%) No response

Which of the following functionality have you implemented (multiple choice) 3,262 (52%) Writing logs/metrics 3,123 (50%) Reading/updating configuration 2,771 (45%) User login and authentication 2,748 (44%) Process to process communication 2,504 (40%) Service authentication/authorization 2,056 (33%) Health checking 1,138 (18%) Keys & secret maintenance 831 (13%) Distributed caching 532  (9%) Distributed tracing 1,269 (20%) No response

Which of the following do you access from Go: (multiple choice) 3,784 (61%) Open Source Relational DB (MySQL/PostgreSQL/CockroachDB) 2,400 (39%) Memory Cache (Redis/memcache) 2,005 (32%) Cloud Storage (S3/Google Cloud Storage/Azure Storage/Minio) 1,891 (30%) Open Source NoSQL DB (MongoDB/Cassandra) 1,606 (26%) Authentication and federation (SSO/LDAP/OAuth) 1,546 (25%) Distributed Key-Value store (etcd/consul) 657 (11%) Proprietary Relational DB (Oracle/DB2/MSSQL/Sybase) 459  (7%) Distributed Lock Service (zookeeper) 1,367 (22%) No response

20162017If it were not for the following reasons I would use Go more:3,077 (31,14,4%)I work on an existing project written in another lang2,152 (14,16,5%)My project / team / TL prefers another language1,218 (10,5,4%)Go lacks critical features1,100 (6,7,4%)Go lacks critical libraries1,056 (6,6,4%)Go isn't appropriate for what I'm working on643 (4,4,3%)Not enough education or support resources for Go311 (2,2,1%)Go lacks critical performance790 (5,4,3%)Other1,309 (21%)No responseIf it were not for the following reasons I would use Go more:1,485 (24,14,4%)I work on an existing project written in another lang1,160 (16,12,4%)My project / team / TL prefers another language841 (11,8,5%)Go isn’t an appropriate fit for what I’m working on596 (6,6,4%)Go lacks critical libraries412 (6,3,2%)Go lacks critical features319 (3,3,3%)Not enough education or support resources for Go121 (1,1,0.8%)Go lacks critical performance374 (4,3,3%)Other1,042 (29%)No response

開発と展開

プログラマーに、Goを開発しているオペレーティングシステムを尋ねました。回答の比率は昨年と一致しています。回答者の64%がLinuxを使用しており、49%がMacOSを使用しており、18%がWindowsを使用しており、複数の選択肢が許可されています。

急成長を続けているVSCodeは、現在、Gopherの間で最も人気のあるエディターです。IntelliJ / GoLandも使用量が大幅に増加しました。これらは主に、相対的な使用量の低下が見られたAtomとSublime Textを犠牲にしていました。この質問は、昨年の回答率よりも6%高くなっています。

調査回答者は、2016年と比較してエディターでのGoサポートに対する満足度が大幅に向上しており、満足した人と不満を持った人の比率が2倍になりました(9:1→18:1)。Goエディターのサポートにご尽力いただいたすべての方に感謝します。

Goの展開は、プライベートに管理されたサーバーとホストされたクラウドサーバーの間でほぼ均等に分割されています。Goアプリケーションの場合、Google Cloudサービスは2016年と比較して大幅に増加しました。Go以外のアプリケーションの場合、AWS Lambdaの使用量が最も増加しました。

I primarily develop Go on: (multiple choice) 3,973 (64%) Linux 3,048 (49%) MacOS 1,151 (18%) Windows 112  (2%) Other 328  (5%) No response

My preferred code editor 2,449 (27, 13%) VSCode 2,288 (22, 14%) Vim 1,628 (19, 7%) IntelliJ/GoLand 912 (7, 8%) Sublime Text 791 (6, 7%) Atom 490 (6, 2%) Emacs 274 (2, 2%) Visual Studio 154 (1, 1%) LiteIDE 88 (0.5, 0.9%) Eclipse 67 (0.6, 0.4%) Acme 256 (3, 2%) Other 382 (6.1%) No response

How satisfied are you with Go support in your preferred editor: (very dissatisfied, dissatisfied, somewhat dissatisfied, neither satisfied or unsatisfied, somewhat satisfied, satisfied, very satisfied) 5,730 (1, 0.9, 3, 3, 16, 38, 29%) (18:1) [24:1]

My team deploys Go programs to: (multiple choice) 2,664 (43%) Self/Company Owned Servers 1,689 (27%) AWS EC2 799 (13%) None 732 (12%) AWS Container 631 (10%) Digital Ocean 596 (10%) Google Compute Engine 485  (8%) Google Container Engine (GKE) 328  (5%) Google App Engine 262  (4%) AWS Lambda 255  (4%) Heroku 255  (4%) Microsoft Azure 183  (3%) Linode 61  (1%) Azure Container Service 51  (1%) Google Cloud Functions 13  (0%) Azure Functions 601 (10%) Other 652 (10%) No response

My team deploys Non-Go programs to: (multiple choice) 2,865 (46%) Self/Company Owned Servers 2,076 (33%) AWS EC2 806 (13%) AWS Container 644 (10%) AWS Lambda 528  (8%) Google Compute Engine 527  (8%) Digital Ocean 442  (7%) None 402  (6%) Microsoft Azure 340  (5%) Heroku 327  (5%) Google Container Engine (GKE) 188  (3%) Google App Engine 159  (3%) Linode 95  (2%) Google Cloud Functions 85  (1%) Azure Container Service 50  (1%) Azure Functions 524  (8%) Other 825 (13%) No response

20162017My preferred code editor2,449 (27,13%)VSCode2,288 (22,14%)Vim1,628 (19,7%)IntelliJ/GoLand912 (7,8%)Sublime Text791 (6,7%)Atom490 (6,2%)Emacs274 (2,2%)Visual Studio154 (1,1%)LiteIDE88 (0.5,0.9%)Eclipse67 (0.6,0.4%)Acme256 (3,2%)Other382 (6.1%)No responseMy preferred code editor1,359 (25,13%)Vim814 (14,9%)VSCode676 (10,9%)Atom687 (13,6%)IntelliJ655 (10,8%)Sublime Text305 (6,2%)Emacs137 (2,2%)Visual Studio153 (3,2%)LiteIDE99 (1,2%)Eclipse37 (0.5,0.5%)Acme238 (4,3%)Other425 (12%)No response

20162017My team deploys Go programs to: (multiple choice)1,489 (41%)Self/Company Owned Servers928 (26%)AWS EC2503 (14%)None412 (11%)Digital Ocean292  (8%)AWS Container221  (6%)Google Compute Engine188  (5%)Google App Engine161  (4%)Google Container Engine (GKE)121  (3%)Heroku114  (3%)Microsoft Azure104  (3%)Linode94  (3%)AWS Lambda301  (8%)Other639 (18%)No responseMy team deploys Go programs to: (multiple choice)2,664 (43%)Self/Company Owned Servers1,689 (27%)AWS EC2799 (13%)None732 (12%)AWS Container631 (10%)Digital Ocean596 (10%)Google Compute Engine485  (8%)Google Container Engine (GKE)328  (5%)Google App Engine262  (4%)AWS Lambda255  (4%)Heroku255  (4%)Microsoft Azure183  (3%)Linode61  (1%)Azure Container Service51  (1%)Google Cloud Functions13  (0%)Azure Functions601 (10%)Other652 (10%)No response

20162017My team deploys Non-Go programs to: (multiple choice)1,714 (48%)Self/Company Owned Servers1,122 (31%)AWS EC2360 (10%)Digital Ocean343 (10%)AWS Container249  (7%)None233  (6%)AWS Lambda210  (6%)Microsoft Azure186  (5%)Google Compute Engine185  (5%)Heroku115  (3%)Google Container Engine (GKE)100  (3%)Linode94  (3%)Google App Engine297  (8%)Other660 (18%)No responseMy team deploys Non-Go programs to: (multiple choice)2,865 (46%)Self/Company Owned Servers2,076 (33%)AWS EC2806 (13%)AWS Container644 (10%)AWS Lambda528  (8%)Google Compute Engine527  (8%)Digital Ocean442  (7%)None402  (6%)Microsoft Azure340  (5%)Heroku327  (5%)Google Container Engine (GKE)188  (3%)Google App Engine159  (3%)Linode95  (2%)Google Cloud Functions85  (1%)Azure Container Service50  (1%)Azure Functions524  (8%)Other825 (13%)No response

効果的な作業

Goに関するさまざまなステートメントについて、どの程度同意または反対したかを尋ねました。すべての質問は昨年から繰り返されており、ユーザーがGoライブラリを見つけて使用する方法をさらに明確にするために導入した新しい質問が1つ追加されています。

すべての回答は、わずかな改善を示すか、2016年と同程度でした。

2016年と同様に、Goで最も一般的に要求される不足しているライブラリはGUIを作成するためのものですが、需要は昨年ほど顕著ではありません。他の不足しているライブラリで、かなりの数の回答を登録したものはありませんでした。

Goの質問に対する回答を見つけるための主なソースは、GoのWebサイト、Stack Overflow、およびソースコードを直接読むことです。Stack Overflowは、昨年の使用量からわずかな増加を示しました。

Goニュースの主なソースは、依然としてGoブログ、Redditの/ r / golang、およびTwitterです。昨年と同様に、これらは調査が発表された方法でもあるため、ここに偏りがある可能性があります。

To what extent do you agree or disagree with the following statements: (strongly disagree, disagree, somewhat disagree, neither agree nor disagree, somewhat agree, agree, strongly agree) 5,555 (1, 2, 4, 7, 27, 34, 13%) I have a good understanding of Go best practices (9.5:1) [11:1] 5,549 (0.4, 0.9, 3, 4, 17, 42, 23%) I am able to quickly find answers to my questions (21:1) [31:1] 5,528 (0.4, 0.4, 1, 2, 6, 32, 47%) Go's performance meets my needs (48:1) [80:1] 4,614 (1, 2, 4, 12, 15, 26, 13%) Go's support for language interoperability meets my needs (6.8:1) [8.8:1] 5,478 (0.8, 2, 5, 6, 24, 36, 13%) I am able to quickly find libraries that I need (8.9:1) [12:1] 5,443 (0.9, 2, 5, 7, 23, 37, 12%) The Go libraries I use have the stability and features I need (9.1:1) [12:1] 5,521 (0.8, 2, 4, 5, 17, 37, 22%) Go language, library, and tool documentation meet my needs (11:1) [16:1]

To what extent do you agree or disagree with the following statements: (strongly disagree, disagree, somewhat disagree, neither agree nor disagree, somewhat agree, agree, strongly agree) 5,446 (0.8, 2, 6, 6, 21, 37, 14%) I am able to effectively diagnose bugs in my Go programs (8.7:1) [12:1] 4,968 (0.7, 2, 6, 13, 22, 27, 9%) I am able to effectively diagnose performance issues in Go programs (6.7:1) [8.7:1] 5,319 (0.7, 2, 3, 6, 16, 35, 24%) I am able to effectively use Go’s concurrency features (goroutines, channels, select) (14:1) [21:1] 5,096 (2, 5, 8, 15, 24, 21, 7%) I am able to effectively debug uses of Go’s concurrency features (goroutines, channels, select) (3.6:1) [3.9:1]

Which Go libraries do you need that aren’t available today? 306 (4.9%) gui 221 (3.5%) library 185 (3.0%) libraries 90 (1.4%) native 83 (1.3%) good 60 (1.0%) ui 59 (0.9%) machine learning 54 (0.9%) framework 48 (0.8%) gui library 48 (0.8%) orm 48 (0.8%) processing 47 (0.8%) desktop 44 (0.7%) web 41 (0.7%) cross-platform 39 (0.6%) client 39 (0.6%) platform 37 (0.6%) standard 35 (0.6%) audio 34 (0.5%) image 34 (0.5%) mobile 33 (0.5%) sql 32 (0.5%) soap 31 (0.5%) pdf 30 (0.5%) api 30 (0.5%) package 4,578 (73.5%) No response

Rank the following in terms of where you get Go answers from: 4,337 (28, 20, 13, 6, 2%) Stack Overflow 3,791 (29, 17, 9, 4, 1%) golang.org 3,362 (13, 17, 14, 8, 2%) Reading source code (e.g., standard library, open-source packages) 2,428 (4, 11, 13, 8, 3%) GitHub 1,408 (5, 6, 6, 5, 2%) Coworkers 1,071 (2, 4, 5, 4, 2%) golang-nuts mailing list (groups.google.com/d/forum/golang-nuts) 895 (1, 2, 4, 4, 3%) Reddit (r/golang) 569 (1, 2, 2, 2, 2%) Gopher Slack (invite.slack.golangbridge.org) 432 (0.9, 1, 2, 2, 2%) Friends 283 (0.5, 0.7, 0.9, 1, 1%) Twitter 214 (0.2, 0.8, 0.8, 1, 0.6%) Go Forum (forum.golangbridge.org) 186 (0.5, 0.7, 0.7, 0.6, 0.5%) IRC 386 (2, 1, 1, 0.9, 0.7%) Other 844 (14%) No response

Rank the following in terms of where you get Go news from: 2,809 (16, 14, 9, 4, 2%) blog.Golang.org 1,838 (15, 7, 4, 3, 1%) Twitter 1,703 (12, 7, 4, 2, 1%) Reddit (r/golang) 1,617 (13, 7, 3, 2, 0.7%) Golangweekly.com 1,578 (9, 8, 5, 3, 1%) Hacker News 1,051 (2, 5, 5, 3, 2%) Community Blogs 859 (2, 4, 4, 2, 2%) GitHub 798 (4, 4, 3, 1, 0.6%) Coworkers 704 (1, 3, 3, 2, 1%) Just For Func 516 (2, 2, 2, 1, 0.7%) golang-nuts mailing list (groups.google.com/d/forum/golang-nuts) 428 (1, 2, 2, 1, 0.6%) Go Time podcast 393 (2, 2, 1, 1, 0.4%) Golangnews.com 333 (1, 1, 1, 1, 0.7%) Gopher Slack (invite.slack.golangbridge.org) 287 (1, 1, 1, 0.7, 0.4%) golang-announce (groups.google.com/d/forum/golang-announce) 120 (0.5, 0.5, 0.4, 0.2, 0.3%) Facebook 86 (0.1, 0.4, 0.4, 0.2, 0.2%) Go Forum (forum.golangbridge.org) 205 (1, 1, 0.7, 0.3, 0.1%) Other 1,040 (17%) No response

I have attended: (multiple choice) 2,497 (40%) None 1,618 (26%) A Go meetup 947 (15%) A Go themed conference (GopherCon, GothamGo, etc) 506  (8%) A Go remote meetup / online event 363  (6%) Go training 228  (4%) A technical conference for it's Go content 65  (1%) A Women Who Go event 64  (1%) A GoBridge event 58  (1%) Other 1,440 (23%) No response

Goプロジェクト

回答者の59%が、Goコミュニティおよびプロジェクトに何らかの形で貢献することに関心があると表明しました。これは昨年の55%から増加しました。回答者はまた、2016年よりも貢献することをはるかに歓迎されていると感じていることを示しました。残念ながら、回答者は、貢献する方法の理解にわずかな改善しか示しませんでした。私たちは、このプロセスをよりアクセスしやすいものにするために、コミュニティとそのリーダーと積極的に協力していきます。

回答者は、Goプロジェクトのリーダーシップに自信を持っているという同意が増加しました(9:1→11:1)。また、プロジェクトのリーダーシップが彼らのニーズを理解しているという同意(2.6:1→2.8:1)と、質問やフィードバックでプロジェクトのリーダーシップに気軽にアプローチできると感じているという同意(2.2:1→2.4:1)もわずかに増加しました。改善は見られましたが、これは今後もプロジェクトとそのリーダーシップにとって引き続き注力すべき分野です。ユーザーのニーズとアプローチしやすさの理解を改善するために、引き続き努力していきます。

2017年には、ユーザーと交流するための新しい方法を試しましたが、進展が見られた一方で、これらのソリューションを成長するコミュニティに合わせて拡張できるようにする取り組みを続けています。

I contribute to open source projects written in Go: (single choice) 382 (6.1%) As part of my daily routine 463 (7.4%) Weekly 603 (9.7%) Monthly 2,180 (35.0%) Infrequently 1,792 (28.8%) Never 806 (12.9%) No response

I have or am interested in contributing in the following ways to the Go community and projects: (multiple choice) 1,785 (29%) Standard library 1,331 (21%) Tools (go guru, go vet, go doc, etc) 1,129 (18%) Documentation 1,115 (18%) Tutorials 967 (16%) Community support via Stack Overflow, Slack, mailing list, etc 863 (14%) Being a technical mentor 829 (13%) Community involvement (workgroups, meetup attendance) 727 (12%) Toolchain (compiler, linker, etc) 514  (8%) Go Project maintenance (issue triage) 474  (8%) Event planning (meetup, conference, etc) 433  (7%) Language translation 337  (5%) General UX & Design contributions 309  (5%) golang.org website (code, UX, IA, content, etc) 148  (2%) Other 2,553 (41%) No response

To what extent do you agree or disagree with the following statements: (strongly disagree, disagree, somewhat disagree, neither agree nor disagree, somewhat agree, agree, strongly agree) 4,091 (1, 3, 4, 19, 12, 18, 8%) I feel welcome to contribute to Go (compiler, standard library, documentation, website) (4.3:1) [5.0:1] 4,083 (3, 8, 10, 17, 11, 11, 5%) The process of contributing to the Go project is clear to me (1.3:1) [1.3:1] 3,657 (2, 3, 5, 23, 10, 13, 4%) The Go project leadership understands my needs (2.8:1) [2.8:1] 3,860 (2, 5, 6, 20, 10, 14, 6%) I feel comfortable approaching the Go project leadership with questions and feedback (2.4:1) [2.7:1] 4,351 (1, 2, 2, 12, 10, 26, 18%) I am confident in the leadership of Go (11:1) [13:1]

コミュニティ

調査の最後に、いくつかの人口統計学的質問をしました。

回答の国の分布は、わずかな変動はあるものの、昨年とほぼ同様です。昨年と同様に、国の分布はgolang.orgへの訪問と似ていますが、いくつかのアジアの国は調査で過小評価されたままです。

2016年からの最も大きな改善点はおそらく、「Goコミュニティに歓迎されていると感じますか?」という質問に対する回答でしょう。昨年の「賛成」対「反対」の比率は15:1でしたが、2017年にはこの比率がほぼ倍増し、25:1になりました。

コミュニティの重要な要素は、特に過小評価されている層の人々を含め、誰もが歓迎されていると感じられるようにすることです。いくつかの過小評価されているグループに関する自己認識についての任意質問を行いました。昨年に比べて回答率が4%増加しました。各過小評価グループの割合は2016年よりも増加しており、一部は非常に大幅な増加でした。

昨年と同様に、「Goコミュニティに歓迎されていると感じますか?」という質問の結果を、さまざまな過小評価カテゴリーへの回答別に分類しました。全体と同様に、過小評価されていると自己認識した回答者のほとんども、2016年よりもGoコミュニティで大幅に歓迎されていると感じていました。女性と自己認識した回答者は、この質問に対する賛成と反対の比率が400%以上増加し(3:1 → 13:1)、最も大幅な改善を示しました。民族的または人種的に過小評価されていると自己認識した人は、250%以上増加しました(7:1 → 18:1)。昨年と同様に、過小評価されていないと自己認識した回答者は、過小評価されているグループに属すると自己認識した人よりも、この質問に賛成する割合が依然としてはるかに高かったです。

この進歩に励まされ、この勢いが続くことを願っています。

アンケートの最後の質問は、ただの楽しみとして、「好きなGoのキーワードは何ですか?」というものでした。おそらく驚くことではないでしょうが、最も人気のある回答はgoで、次いでdeferfuncinterfaceselectでした。これは昨年と変わりありません。

Did you take last year's survey (single choice) 1,569 (25%) Yes 2,892 (46%) No 952 (15%) I don't remember 813 (13%) No response

To what extent do you agree or disagree with the following statement: (strongly disagree, disagree, somewhat disagree, neither agree nor disagree, somewhat agree, agree, strongly agree) 4,970 (0.5, 0.8, 1, 10, 10, 34, 22%) I feel welcome in the Go community (25:1) [33:1]

List of Countries (multiple choice) 1,561 (25%) United States of America 436  (7%) Germany 343  (6%) United Kingdom 211  (3%) Canada 200  (3%) France 174  (3%) Russia 130  (2%) Australia 113  (2%) India 110  (2%) Sweden 103  (2%) China 99  (2%) Netherlands 95  (2%) Spain 94  (2%) Brazil 89  (1%) Japan 84  (1%) Poland 62  (1%) Ukraine 58  (1%) Italy 57  (1%) Switzerland 48  (1%) Taiwan 42  (1%) Israel 873 (14%) Other 1,244 (20%) No response

We want the Go community to be inclusive; we want to see how we're doing and how to improve. Plea... (multiple choice) 2,591 (42%) I do not identify as part of an underrepresented group 790 (13%) I prefer not to answer 197  (3%) I identify as LGBTQIA 191  (3%) I identify as ethnically or racially underrepresented 164  (3%) I identify as neurodiverse or as having a disability 156  (3%) I identify with an underrepresented group not listed (please specify) 101  (2%) I identify as a woman 81  (1%) I identify as part of an underrepresented group, but I prefer not to specify 2,085 (33%) No response

Just for fun: What is your favorite Go keyword? (multiple choice) 1,627 (26%) go 856 (14%) defer 539  (9%) func 384  (6%) select 375  (6%) interface 242  (4%) range 222  (4%) chan 215  (3%) struct 114  (2%) fallthrough 96  (2%) goto 90  (1%) switch 89  (1%) type 82  (1%) for 71  (1%) map 48  (1%) import 39  (1%) if 33  (1%) package 32  (1%) return 27  (0%) var 24  (0%) continue 22  (0%) const 15  (0%) break 10  (0%) case 5  (0%) else 969 (16%) No response

Is there anything else you would like to share with us? 130 (2.1%) great 119 (1.9%) generics 104 (1.7%) love 104 (1.7%) thank you 99 (1.6%) thanks 87 (1.4%) community 58 (0.9%) programming 56 (0.9%) simple 52 (0.8%) awesome 51 (0.8%) i love 48 (0.8%) people 44 (0.7%) team 40 (0.6%) golang 38 (0.6%) keep up the good work 38 (0.6%) time 37 (0.6%) hard 37 (0.6%) languages 36 (0.6%) job 35 (0.6%) features 35 (0.6%) great work 30 (0.5%) 3 30 (0.5%) amazing 30 (0.5%) c 30 (0.5%) google 5,167 (83.0%) No response

最後に、Goプロジェクト全体を代表して、素晴らしいコミュニティの一員であること、このアンケートに答えていただいたこと、あるいはGoに関心を持っていただいたことなど、プロジェクトに貢献してくださったすべての方々に感謝申し上げます。

次の記事:Goにおけるパッケージバージョニングの提案
前の記事:Go 1.10がリリースされました
ブログインデックス