Go 1.17 プロダクションリリース:コーディングの簡略化による安全性と性能の向上
Googleのオープンソースプログラミング言語「Go 1.17」の最新の製品リリースでは、安全性とパフォーマンスを向上させるための言語とコンパイラの機能強化が行われています。新機能には、レジスタを使用して関数の引数を渡すより効率的な方法と、安全なポインタ操作のための簡略化されたコーディングが含まれます。

Googleのオープンソースプログラミング言語の最新アップデートであるGo 1.17がリリースされ、安全性とパフォーマンスの両方が改善されました。この製品版リリースでは、言語とコンパイラの機能強化により、安全性を高めるためのコーディングの合理化と、関数引数の受け渡しをより性能の高い方法で実現することに重点を置いています。
公式リリースノートでは、言語に関する3つの小さな改良が紹介されており、そのうちの2つは unsafe.Pointerの 安全ルールに準拠したコードをより簡単に記述できるようにすることを目的としています。この3つの機能強化は以下の通りです:
これらの言語の強化に加えて、Go 1.17では、スタックではなくレジスタを使用して関数の引数と結果を渡す新しいコンパイラ技術が導入されています。この変更は、64ビットx86アーキテクチャのLinux、MacOS、Windowsで有効になっています。ベンチマークテストによると、このアップデートにより、パフォーマンスが約5%向上し、バイナリサイズが約2%減少することが確認されています。重要なことは、この変更は安全なGoコードの機能に影響を与えないということです。さらに、コンパイラはクロージャを含む関数をインライン化できるようになりましたが、このため、関数がインライン化される場所ごとに異なるクロージャコードポインタ関数が発生する可能性があります。
Go 1.17のもう一つの重要な特徴は、刈り込みモジュールグラフの導入です。 go.mod ファイルでGo 1.17以上を指定したモジュールのモジュールグラフには、他のGo 1.17モジュールの完全な推移的依存関係ではなく、直接的依存関係のみが含まれます。
開発者は golang.orgから Go 1.17をダウンロードすることができます。前バージョンのGo 1.16は2月にリリースされ、ライブラリとランタイムが強化されました。現在の安定版リリースには、Go 1.16.5とGo 1.15.13があります。将来のリリースでは、Go開発者向けにファジング機能が搭載される予定です。Go 1.17は、6月10日にベータ版リリース段階に入りました。
ウェブ、バックエンド、またはモバイルアプリケーションを作成しようとしている開発者は、 AppMaster.io のようなプラットフォームを利用することで、開発プロセスをスピードアップし、企業や高負荷のユースケースに対応するスケーラビリティを確保する、強力な no-code 開発 環境を提供することができる。


