Go言語がGenericsを導入、過去最大の変更となる「Go 1.18」正式版リリース

2022年3月18日

Googleが中心となってオープンソースで開発されているGo言語の最新版となる「Go 1.18」正式版がリリースされました。

ブログ「Go 1.18 is released!」によると、Go 1.18は、「massive release that includes new features, performance improvements, and our biggest change ever to the language.」(新機能、性能改善、そして過去最大の変更の変更を含む大規模なリリース)と説明されるほど、重要な意味を持つリリースです。

Genericsの導入、Fuzzingが標準機能に

その最大の変更点が、Genericsの導入です。Go 1.18のGenericsは、パラメータ化された型(Type Parameters)のプロポーザルを実装したものとなりました。

似たような処理を異なる型に対して適用する場合に、パラメータに型を与えることで簡潔に記述できるようになります。

Genericsが実装されたGo言語は、十分にテストされ、これまでのGo言語と完全なバックワード互換性があるとされています。

しかし本番環境でGenericsを用いたコードは事実上まだ存在しません。これから多くのプログラマがGenericsを用いたGo言語のコードを記述し、実行することになるため、まだ見つかっていない問題が顕在化する可能性はあります。そのため、Genericsを本番環境に適用する前には適切な注意を払うべきだとも説明されています。

また、Fuzzingと呼ばれる、検査対象のソフトウェアに問題を引き起こしそうなデータ(これが「Fuzz」と呼ばれる)を大量に送り込み、その応答や挙動を監視するテスト手法もGo 1.18の標準ツールの機能として取り込まれました。

Apple M1、ARM64、PowerPC64では、性能が最大で20%向上しています。

そのほか新機能や変更点の詳細については「Go 1.18 Release Notes」を参照してください。

あわせて読みたい

プログラミング言語 Go Google




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本