The Go Blog
Goの12年間
本日、Goのオープンソースリリース12周年を祝います。今年は多くの出来事があり、来年も楽しみにしています。
ブログで最も目立つ変更点は、すべてのGoウェブサイトを1つの首尾一貫したサイトに統合する一環として、ブログがgo.devに新しく引っ越したことです。この統合のもう1つの部分は、godoc.orgをpkg.go.devに置き換えたことです。
2月には、Go 1.16リリースでmacOS ARM64サポート、ファイルシステムインターフェースと組み込みファイルが追加され、通常の改善と最適化に加えて、モジュールがデフォルトで有効になりました。
8月には、Go 1.17リリースでWindows ARM64サポートが追加され、TLS暗号スイートの決定がより簡単かつ安全になり、大規模プロジェクトでのモジュールをさらに効率化するために剪定されたモジュールグラフが導入され、新しい、より読みやすいビルド制約構文が追加されました。内部では、Go 1.17はx86-64上のGo関数のレジスタベースの呼び出し規約にも切り替わり、CPU負荷の高いアプリケーションのパフォーマンスを5〜15%向上させました。
この1年間で、多くの新しいチュートリアル、Goでのデータベースガイド、モジュールの開発ガイド、そしてGoモジュールリファレンスを公開しました。特筆すべきは、新しいチュートリアル「GoとGinでRESTful APIを開発する」で、これはGoogle Cloud Shellを使用したインタラクティブ形式でも利用できます。
IDEの分野でも忙しく、VS Code Goでgoplsをデフォルトで有効にし、goplsとVS Code Goの両方に数え切れないほどの改善を提供しました。これには、Delveを搭載した強力なデバッグ体験も含まれます。
また、Goファジングベータ版を公開し、Goへのジェネリクス追加を正式に提案しました。どちらもGo 1.18で登場予定です。
「バーチャルファースト」への適応を続け、Goチームは毎年恒例の第2回Google Open Source LiveでのGo Dayを開催しました。講演はYouTubeでご覧いただけます。
-
Ian Lance Taylorによる「Goでのジェネリクスの使用」は、ジェネリクスとそれらを効果的に使用する方法を紹介しています。
-
Steve Franciaによる「現代のエンタープライズアプリケーション」は、Goがエンタープライズの近代化に果たす役割を示しています。
-
Suzy Muellerによる「Goエディタでより良いプロジェクトを構築する」は、VS Code Goの統合ツールがコードのナビゲート、テストのデバッグなどにどのように役立つかを示しています。
-
American Expressの著名なエンジニアであるBenjamin Caneによる「概念実証から本番環境へ」は、American ExpressがGoを支払いおよび報酬プラットフォームにどのように採用するようになったかを説明しています。
今後について
Goの13年目に何が待ち受けているか、非常に興奮しています。来月は、GopherCon 2021で2つの講演が行われるほか、Goコミュニティの才能ある多くの講演者も登壇します。無料で登録して、カレンダーにマークしてください!
-
「Go Genericsを使用する理由と方法」は、この新機能の設計と実装を主導したRobert GriesemerとIan Lance Taylorによるものです。
12月8日午前11時(米国東部時間). -
「Debug Adapter Protocol (DAP)を使用したGoコードのデバッグ」は、Suzy Muellerによるもので、Delveを使用したVS Code Goの高度なデバッグ機能の使用方法を示します。
12月9日午後3時20分(米国東部時間).
2月には、Go 1.18リリースで新しいレジスタベースの呼び出し規約がx86以外のアーキテクチャに拡張され、劇的なパフォーマンス向上をもたらします。新しいGoファジングサポートが含まれ、ジェネリクスをサポートする最初のリリースとなります。
ジェネリクスは2022年の焦点の1つです。Go 1.18の初回リリースは始まりに過ぎません。ジェネリクスを実際に使用し、何が機能し、何が機能しないかを学び、ベストプラクティスを作成し、標準ライブラリやその他のライブラリに追加すべきものを決定する必要があります。Go 1.19(2022年8月予定)以降のリリースでは、ジェネリクスの設計と実装がさらに洗練され、Go全体のエクスペリエンスにさらに統合されると予想しています。
2022年のもう1つの焦点は、サプライチェーンセキュリティです。私たちは何年も前から依存関係の問題について話してきました。Goモジュールの設計は再現可能で検証可能な、検証済みのビルドを提供しますが、まだやるべきことはたくさんあります。Go 1.18から、goコマンドはバイナリにビルド構成に関するより多くの情報を埋め込みます。これは、再現性を容易にするためと、GoバイナリのSBOMを生成する必要があるプロジェクトを支援するためです。また、Go脆弱性データベースと、プログラムの依存関係の脆弱性を報告するための関連ツールに関する作業も開始しました。この作業の目標の1つは、この種のツールのS/N比を大幅に改善することです。プログラムが脆弱な関数を使用しない場合、それを報告したくありません。2022年中に、これをスタンドアロンツールとして利用可能にするだけでなく、goplsやVS Code Go、pkg.go.devを含む既存のツールに追加する予定です。Goのサプライチェーンセキュリティ態勢の他の側面を改善するためにもやるべきことがまだあります。詳細にご期待ください。
全体として、2022年はGoにとって多くの出来事がある年になると予想しており、皆様が期待するタイムリーなリリースと改善を継続して提供していきます。
ありがとうございました!
Goは、GoogleのGoチームだけの存在ではありません。Goを成功させ、この冒険に参加してくれた皆様の助けに感謝します。皆様が安全で、最善を尽くせることを願っています。