1763186614
2025-11-14 22:33:00
先週の月曜日、11月10日、私たちはGo’sの16周年を祝いました。
オープンソースリリース!
リリースしました 2 月に 1.24 に行く そして 8月に1.25に行く、現在確立され信頼できるリリース サイクルに従っています。実稼働システムを構築するための最も生産的な言語プラットフォームを構築するという私たちの使命を継続するため、これらのリリースには、堅牢で信頼性の高いソフトウェアを構築するための新しい API、安全なソフトウェアを構築するための Go の実績の大幅な進歩、およびいくつかの重大な内部改善が含まれています。一方、生成 AI によってもたらされた業界の地殻変動を無視できる人は誰もいません。 Go チームは、思慮深く妥協のない考え方をこの動的な領域の問題と機会に適用し、堅牢な AI 統合、製品、エージェント、インフラストラクチャを構築するための Go の運用対応アプローチを導入することに取り組んでいます。
最初は Go 1.24 で実験としてリリースされ、その後 Go 1.25 で卒業されました。 testing/synctest パッケージにより、テストの作成が大幅に簡素化されます。 同時非同期コード。このようなコードはネットワーク サービスで特に一般的であり、伝統的に適切にテストするのは非常に困難です。の synctest パッケージは時間そのものを仮想化することで機能します。これまでは遅かったり、不安定だったり、あるいはその両方だったテストを、コードを数行追加するだけで、信頼性が高く、ほぼ瞬時に実行できるテストに簡単に書き換えることができます。これは、ソフトウェア開発に対する Go の統合されたアプローチの良い例でもあります。ほぼ簡単な API の背後に、
synctest パッケージには、Go ランタイムおよび標準ライブラリの他の部分との緊密な統合が隠蔽されています。
後押しするのはこれだけではありません testing パッケージは過去1年を超えました。新しい
testing.B.Loop API もオリジナルよりも使いやすくなりました testing.B.N API は、従来の、そして多くの場合目に見えないものの多くに対処します。落とし穴 Go ベンチマークの作成について。の
testing パッケージには新しい API も含まれています。 掃除を簡単にする を使用するテストでは
Context、そしてそれ 簡単にしてください テストのログに書き込みます。
Go とコンテナ化は一緒に成長し、相互にうまく機能します。 Go 1.25 がリリースされました コンテナを意識したスケジューリング、この組み合わせはさらに強力になります。これにより、開発者が何もしなくても、コンテナ内で実行される Go ワークロードの並列処理が透過的に調整され、テール レイテンシーに影響を与える可能性のある CPU スロットリングが防止され、Go のすぐに使える本番環境の準備が向上します。
Go 1.25の新機能 フライトレコーダー すでに強力な実行トレーサーを基盤としており、実稼働システムの動的な動作についての深い洞察を可能にします。実行トレーサは一般的に収集されますが、 過度に
長期にわたる運用サービスで実用的な情報を提供するフライト レコーダーは、小さなタイムマシンのようなもので、サービスが最近のイベントを詳細にスナップショットできるようにします。 後 何かが間違っています。
安全なソフトウェア開発
Go は、安全なソフトウェア開発への取り組みを強化し続け、ネイティブ暗号化パッケージを大幅に進歩させ、安全性を強化するために標準ライブラリを進化させています。
Go には、標準ライブラリにネイティブ暗号化パッケージのフルスイートが同梱されており、過去 1 年間で 2 つの大きなマイルストーンに達しました。独立系セキュリティ会社によるセキュリティ監査 ビットの跡 譲った 素晴らしい結果、重大度の低い所見が 1 つだけあります。さらに、Go セキュリティ チームと
ジオミス、これらのパッケージは CAVP 認定を取得し、 完全なFIPS 140-3認証。これは、特定の規制環境における Go ユーザーにとって重要な開発です。 FIPS 140 準拠は、以前はサポートされていないソリューションの必要性により摩擦の原因となっていましたが、今後はシームレスに統合され、安全性、開発者のエクスペリエンス、機能、リリース速度、および準拠に関する懸念に対処します。
Go 標準ライブラリは進化を続けています。 デフォルトで安全 そして
設計上安全。たとえば、 os.Root
Go 1.24 で追加された API により、 トラバーサル耐性のあるファイル システム アクセス、攻撃者がプログラムを操作して、アクセスできないように意図されたファイルにアクセスできるクラスの脆弱性と効果的に対処します。このような脆弱性は、基盤となるプラットフォームとオペレーティング システムのサポートがなければ対処が難しいことで知られています。
os.Root API は、簡単で一貫性のある移植可能なソリューションを提供します。
内部の改善
ユーザーに目に見える変更に加えて、Go は過去 1 年間で内部的に大幅な改善を行ってきました。
Go 1.24 では、完全に を再設計しました map
実装、ハッシュ テーブル設計の最新かつ優れたアイデアに基づいて構築されています。この変更は完全に透過的であり、大幅な改善をもたらします。 map パフォーマンス、テールレイテンシの低下 map 操作、場合によっては、かなりのメモリが優先される場合もあります。
Go 1.25 には、Go のガベージ コレクターの実験的かつ重要な進歩が含まれています。 緑茶。 Green Tea は、多くのアプリケーションでガベージ コレクションのオーバーヘッドを少なくとも 10%、場合によっては 40% 削減します。これは、今日のハードウェアの機能と制約に合わせて設計された新しいアルゴリズムを使用しており、私たちが熱心に探索している新しい設計空間を切り開きます。たとえば、今後の Go 1.26 リリースでは、Green Tea は AVX-512 ベクトル命令をサポートするハードウェア上でガベージ コレクターのオーバーヘッドをさらに 10% 削減します。これは、古いアルゴリズムでは利用することがほぼ不可能でした。 Green Tea は Go 1.26 ではデフォルトで有効になります。ユーザーは Go バージョンをアップグレードするだけでメリットが得られます。
Go は言語や標準ライブラリをはるかに超えたものです。これはソフトウェア開発プラットフォームであり、過去 1 年間で 4 つの定期リリースも作成しました。 gopls言語サーバー、エージェント アプリケーション用の新たなフレームワークをサポートするパートナーシップを形成しています。
Gopls は、VS Code やその他の LSP を利用したエディターや IDE に Go サポートを提供します。すべてのリリースで、Go コードの読み取りと書き込みのエクスペリエンスに対する一連の機能と改善が見られます ( v0.17.0、
v0.18.0、 v0.19.0、 そして
v0.20.0 詳細についてはリリース ノート、または新しい
gopls 機能のドキュメント!)。ハイライトには、開発者がより慣用的で堅牢な Go コードを作成できるようにする、多くの新しく強化されたアナライザーが含まれます。変数抽出、変数のインライン化、および JSON 構造体タグのリファクタリング サポート。そして 実験用組み込みサーバー モデル コンテキスト プロトコル (MCP) 用。gopls の機能のサブセットを MCP ツールの形式で AI アシスタントに公開します。
gopls v0.18.0 で調査を開始しました 自動コードモダナイザー。 Go が進化するにつれて、リリースごとに新しい機能と新しいイディオムが導入されます。 Go プログラマーは他の方法を見つけてきました。 Goはそれを支持します 互換性の約束—古い方法は永続的に機能し続けます—しかし、それにもかかわらず、これにより古い慣用句と新しい慣用句の間に分岐が生じます。モダナイザーは、古い慣用句を認識し、より高速で、より読みやすく、より安全で、より多くの機能を提案する静的分析ツールです。 モダンな
ボタンを押すだけで確実に交換できます。何 gofmt のためにやった
文体の一貫性、現代化者が慣用的な一貫性を保つためにできることを願っています。私たちはモダナイザーを IDE の提案として統合しました。モダナイザーは、開発者がより一貫したコーディング標準を維持するのに役立つだけでなく、開発者が新しい機能を発見し、最先端の技術を維持するのにも役立つと考えられます。私たちは、モダナイザーは、AI コーディング アシスタントが最先端の技術に追いつき、Go 言語、API、およびイディオムに関する古い知識を強化する傾向と闘うのにも役立つと信じています。今後の Go 1.26 リリースには、長らく休眠状態だった Go 1.26 の全面的な見直しが含まれます。 go fix コマンドを使用して、モダナイザーの完全なスイートを一括適用するようにし、その機能に戻ります。 Go 1.0 より前のルート。
9月末に協力して、
人間的 そして Go コミュニティをリリースしました
v1.0.0 の 公式Go SDK のために
モデルコンテキストプロトコル (MCP)。この SDK は MCP クライアントと MCP サーバーの両方をサポートし、gopls の新しい MCP 機能を支えます。この作業をオープンソースで提供することは、最近リリースされた Go 用エージェント開発キット (ADK) から グーグル。 ADK Go は Go MCP SDK に基づいて構築され、モジュール式のマルチエージェント アプリケーションおよびシステムを構築するための慣用的なフレームワークを提供します。 Go MCP SDK と ADK Go は、同時実行性、パフォーマンス、信頼性における Go の独自の強みが、実稼働 AI 開発において Go をどのように差別化するかを示しており、今後数年間でさらに多くの AI ワークロードが Go で記述されることが予想されます。
Go はエキサイティングな年を迎えることになります。
私たちは、まったく新しい機能を通じて開発者の生産性を向上させることに取り組んでいます。 go fix
コマンド、AI コーディング アシスタントのサポートの強化、gopls と VS Code Go の継続的な改善。 Green Tea ガベージ コレクターの一般提供、単一命令複数データ (SIMD) ハードウェア機能のネイティブ サポート、大規模なマルチコア ハードウェアにさらに適切に拡張できるコードを作成するためのランタイムおよび標準ライブラリのサポートにより、Go は引き続き最新のハードウェアと連携し、生産効率が向上します。私たちは、Go の「本番スタック」ライブラリと診断に焦点を当てています。これには、大規模な (そして長い間開発されてきた)
にアップグレードする encoding/jsonJoe Tsai と Go コミュニティ全体の人々によって推進されています。 漏洩したゴルーチンプロファイリング、寄稿者
ウーバーの プログラミング システム チーム。その他多くの改善点 net/http、 unicode、およびその他の基本的なパッケージ。私たちは、Go と AI を使用した構築のための明るい道筋を提供し、今日の開発者の進化するニーズに配慮して言語プラットフォームを進化させ、人間の開発者と AI アシスタントおよびシステムの両方を同様に支援するツールと機能を構築するために取り組んでいます。
Go のオープンソース リリース 16 周年にあたり、私たちは Go オープンソース プロジェクト自体の将来にも注目しています。そのことから ささやかな始まりGo は活発な貢献者コミュニティを形成しています。特にソフトウェア業界の激動の時代において、拡大し続けるユーザー ベースのニーズに最大限に応え続けるために、私たちは Go の基本原則を見失わずに、Go の開発プロセスをより適切に拡張し、素晴らしいコントリビューター コミュニティをより深く関与させる方法に取り組んでいます。
すばらしいユーザーと貢献者のコミュニティがなければ、Go は今日のような存在にはならなかったでしょう。来年もよろしくお願いします!
#Gos #Sweet #プログラミング言語