GoLangの活用状況について

開発者はGoやGo Modulesをどのように活用しているのでしょうか。私たちはGoレジストリをサポートするJFrog Artifactoryバージョン管理されたGo Modulesを共有できるGoCenterを提供するだけでなく、Go開発者についてもっと知りたいと思っています。私たちJFrogもGo開発者なのです。JFrog CLIとXrayはGoで書かれており、GoLangコミュニティへも大いに貢献しています。

GoコミュニティやGoに対する意見をもっと理解するため、先日ロンドンとサンディエゴで開催されたGopherConカンファレンスにおいて1,000人以上の開発者を対象に調査を行いました。最近Goバージョン1.13がリリースされたこともあり、興味深いデータをお届けできると思っています。

調査の結果、以下のような状況が明らかになりました:

Go開発者は非常に熱心

大多数のGo開発者は最新のGoLangバージョンを使い、開発環境を常に最新の状態にしています。70%以上が調査時の最新バージョンであるGoバージョン1.12を使用していると回答しました。

82%のGo開発者がGoバージョン1.11以降を使用してGo Modulesを使っています。それ以前のバージョンを使用していると答えたユーザはごくわずかでした。

Go開発者の82%以上がGo Modulesを使用できるバージョンを使用しており、ほぼ同じくらいの開発者がGo Modulesをすでに使用しているか2020年半ばまでに導入したいと考えています。クリックしてツイート

高いGo Modulesの採用率

最新のGoLangバージョンを使用しているほとんどのGo開発者は社内でGo Modulesを採用していると回答しています。まだ採用していない多くのユーザもGo Modulesをすぐにでも使いたいと答えているため、2020年半ばまでに導入率は少なくとも80%以上に、あるいはほぼ100%に達することが予想されます。

広く業界で利用されるGoLang

Goによる開発はさまざまな分野に適していますが、Web開発に続き20%のユーザがDevOpsでGoを使用する割合が高いことがわかりました。さらにシステム構築、データベース、ネットワークアプリケーション開発でも採用率が高く、今後はモバイルやIoTなどの有望な分野でさらに成長が期待されています。

Areas of Go Development

Go Modulesの採用基準

開発者がオープンソースコンポーネントを採用する際には安全性と品質を追求する傾向があります。ただし、どのGo Modulesを採用するかというリスクについては明確な基準がありません。

開発者の多くは利用数や評価の高さが保証につながると思う傾向があります。脆弱性も懸念事項であり、開発者がパッケージのリスクをどのように判断するか基準が分かれています。

OSS Package Governance

GoCenterへフィードバック

今回GoLangアンケートに回答してくれたすべての開発者にこの場を借りてお礼を申し上げます。

私たちはGoCenterというGo Modulesを活用するツールを継続的にアップデートし続けているので、回答から得た知見は今後GoCenterを使うユーザへどんな機能を提供していくべきか判断するために役立ちます。

GoCenterは公開ソースリポジトリのGoプロジェクトから直接処理や検証が行われ、変更を加えることなくバージョン管理された集中型のソースを提供しています。これには多くのメリットがありますが、GoLangアプリケーションのビルド時間を短縮できることが最大の魅力です。

GoCenterは現在200,000以上のバージョン管理されたGo Modulesをホストしており、Go開発者コミュニティで自由に使うことができます。GoLang1.13で最新のGo Modules機能をサポートするために、GoCenterを常にアップデートするよう努力しています。

皆さまからのフィードバックは私たちが正しい方向に向かっていることを裏付けてくれました。開発者は増加の一途をたどるGo Modulesの中から適切なモジュールを見つけることが難しくなってきているので、GoCenterではインタラクティブな検索を通してモジュールを見つけやすくしています。結果が表示されるとGoCenterはアクティビティや評価など開発者が自分のニーズに合わせてモジュールを選択する際に参考になる全ての情報を提供します。

GoCenter

私たちは選択基準をもとにしたモジュールの採点プロジェクトにも取り組んでいます。このプロジェクトをもっと使いやすくするために皆さまからのコメントをお待ちしております。

どんな些細な意見でも構いません。皆さまからのコメントがGo開発コミュニティをより良くすることに繋がります。何と言っても私たちもGoコミュニティをより良くしたいと思っているメンバーだからです。