Go言語がGenericsを導入、過去最大の変更となる「Go 1.18」正式版リリース
Googleが中心となってオープンソースで開発されているGo言語の最新版となる「Go 1.18」正式版がリリースされました。
Go go1.18 is released!
— Go (@golang) March 15, 2022
Release notes: https://t.co/UFumhMjcOL
Download: https://t.co/fnDCVVhJXK#golang pic.twitter.com/uWNSy5V7nv
ブログ「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」を参照してください。
あわせて読みたい
国内のDesktop as a Service市場規模、2021年度は約326億円。5年後には1.6倍以上の545億円規模に
≪前の記事
Oracle Cloud、開発環境やテスト環境に使いやすいシンプルなコンテナ環境「Container Instances」、Oracle Cloud自身によるCDNサービスなど発表