Go 1.27の新機能インタラクティブツアー
Go 1.27 Interactive Tour
Go 1.27のリリースが近づき、新機能を紹介するインタラクティブツアーが提供された。この記事は、Go 1.27のリリースノートに基づき、実行可能な例を交えながら変更点と新動作を解説する。主な変更点として、メソッド宣言で型パラメータを独立して宣言できるようになり、ジェネリック関数が代入だけでなく変換や複合リテラルでも型推論されるようになった。また、構造体リテラルでプロモートされたフィールドを直接キーとして指定できるようになり、メモリ割り当ての効率が向上し、一部の小規模な割り当てで最大30%のコスト削減が見込まれる。トレースバックにはランタイム/pprofのゴルーチンラベルが含まれるようになり、ゴルーチンリーク検出が実験段階から正式なプロファイル機能に昇格した。暗号ライブラリにはポスト量子デジタル署名スキームML-DSAを実装するmldsaパッケージが追加され、UUIDパッケージも標準ライブラリに加わった。encoding/json/v2は実験段階を終了し、デフォルトで有効になった。さらに、実験的なsimdパッケージが追加され、ハードウェアベクトル命令を利用したSIMD処理が可能になった。strings.CutLastとbytes.CutLastが追加され、hash/maphashパッケージにはHasherインターフェースが導入された。math/bigパッケージのInt.Divideメソッドは、明示的な丸めモードで商と剰余を計算できるようになり、math/rand/v2には(*Rand).Nメソッドが追加された。testing/synctestとhttptestは、それぞれ合成時間でのテストとインメモリネットワークによるテストを強化した。unicodeパッケージはUnicode 17に対応し、timeチャネルは常にバッファなしになった。http.Response.BodyはClose時に自身をドレインするようになり、crypto/x509はWindowsとmacOSでSSL_CERT_FILEとSSL_CERT_DIRを尊重するようになった。goコマンドには、stdversion vetチェックのデフォルト実行、go doc pkg@versionのサポート、go doc -exフラグ、新しいモダナイザーを持つgo fix、requireブロックを整理するgo mod tidyなどが含まれる。HTTP/2サポートはnet/http/internal/http2パッケージに移行し、HTTP/3のサポートも進められている。
- Go 1.27でポスト量子デジタル署名スキームML-DSAを実装するmldsaパッケージが標準ライブラリに追加された
- Go 1.27で実験的なsimdパッケージが追加され、ハードウェアベクトル命令を利用したSIMD処理が可能になった
- Go 1.27で一部の小規模メモリ割り当てで最大30%のコスト削減が見込まれる
Go 1.27はプログラミング言語のリリースであり、特別な投資判断を促すような新規事業・市場形成の具体的な事象は乏しい。ただし、標準ライブラリへのポスト量子署名ML-DSA実装やSIMD対応などは技術的な進化であり、言語エコシステムの健全性を示すが、投資判断に直結する具体的なインパクトは限定的。