「Go」を使用する開発者、4人に1人はすでに「ジェネリクス」も利用
今回は「「Go」を使用する開発者、4人に1人はすでに「ジェネリクス」も利用」についてご紹介します。
関連ワード (ソフトウェア等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
Googleのオープンソースプログラミング言語である「Go」を使用している開発者の約4分の1は、すでに「ジェネリクス」を使い始めていることが分かった。また、開発者がサプライチェーンのセキュリティについて心配しており、セキュリティを確保するためのツールも十分に使用されていないことも明らかになった。
3月にリリースされたバージョン1.18でGoにジェネリクスが導入された。ジェネリクスは当時、「Goに対して最もリクエストが多かった」と言われた機能であったため、急速に使われるようになっていることも不思議ではない。Goを使用している開発者を対象として6月に実施された調査によれば、5752人の回答者のうち4分の1以上がすでにジェネリクスを使用していた。開発業界を対象とした調査会社Redmonkが発表した1月のランキングによれば、Goは16番目に人気のあるプログラミング言語だ。
ジェネリクス(型パラメーターのサポート)の導入は、Goの型安全性を高め、生産性とパフォーマンスを向上させるものだ。調査の回答者の約86%はGo 1.18でジェネリクスが導入されたことを知っており、26%はすでに使ったことがあった。14%は、本番環境やリリース済みのコードでジェネリクスを使用していた。一方、回答者の54%は現時点ではジェネリクスを必要としていないと述べており、12%はジェネリクスを使用しているが、本番環境やリリース済みのコードでは使用していないと回答していた。
理由があってジェネリクスを使用していない人もいた。このうちジェネリクスに改善が必要だと考えていることを理由とする回答者が30%と最も多く、次いで26%は1.8よりも前のリリースを使用しているか、Go 1.18 パッケージが提供されていない Linux ディストリビューションを使用している、またはlinterがジェネリクスをサポートしていないことを理由として挙げている。
その一方で、10%はジェネリクスを使うことでコードの重複が少なくなったと述べている。
GoのUXリサーチャーであるTodd Kulesza氏は、Goを使用している開発者が最も懸念している脆弱性は、依存関係の問題だったと指摘した。ファズテストのようなツールをGoのコードに使用していた開発者は、わずか12%だった。また、65%の開発者が静的解析ツールを使用していた一方で、脆弱性を発見するために静的解析ツール使用していたのは35%にとどまった。
調査によれば、回答者の84%がCI/CD時にセキュリティツールを使用していたが、この時点で問題が分かっても遅すぎる場合が多いことも明らかになった。これは、依存先に脆弱性が存在するのであれば、ビルドする前に分かっていなければ対処が面倒になるためだという。
Goチームは米国時間9月6日に新しい脆弱性管理ツールと、Goのパッケージメンテナーのデータに基づくGoの脆弱性データベースを公開した。Go 1.18は、標準のツールチェインにファズテストが導入された最初のバージョンでもある。Goのファズテストは、Googleのオープンソースファジングツールである「OSS-Fuzz」でサポートされている。
この調査では、開発者が直面しているいくつかの問題も浮き彫りになった。
開発者の57%は、サードパーティライブラリーのセキュリティ評価が難しいと回答していた。Kulesza氏は、GitHubの「Dependabot」や、Goチームの「govulncheck」がこの問題の解決に役立つと述べている。実際、回答者が依存先に存在する脆弱性について知るのに使われた手段としては、Dependabotが多かった。