Go言語の最新リリースとして「Go 1.11」が公開されました。

Go言語はGoogleが中心となってオープンソースで開発されているプログラミング言語です。シンプルにコードを記述できるため学習コストが小さく、タイプセーフかつメモリセーフにできているため安全なプログラムを記述しやすく、並列処理の記述も容易、コンパイルや実行が高速などの特長があります。

GoではじめてWebAssemblyが利用可能に

Go 1.11では、WebAssemblyが試験的実装としてはじめて利用可能になっています。WebAssemblyは、Webブラウザ上でネイティブコードに近い実行速度で高速に実行できるバイナリフォーマットです。

Go言語におけるWebAssemblyのサポートは2017年2月から検討がはじまり、2018年3月には実装が開始されていました。

Go言語はサポートするOSやCPUの種類をそれぞれ「GOOS」と「GOARCH」の値で示しています。例えばWindowsのGOOS値は「windows」、macOSおよびiOSは「darwin」、Linuxは「Linux」、CPUを示す「GOARCH」には32ビットx86を示す「386」や64ビットx86やAMD64を示す「amd64」、「arm」「arm64」「mips」などがあります。

WebAssemblyでは、GOOSがJavaScriptの実行環境を表す「js」、GOARCHがWebAssemblyの正式な省略形である「wasm」となっています。

またGo言語で今後RISC-V（リスクファイブ）プロセッサに対応することを想定し、「GOARCH」のキーワードとして「riscv」と「riscv64」が予約されました。

モジュール機能を実験的にサポート

Go 1.11ではまた、「モジュール」機能が新しく取り入れられています。モジュールを使用することでGOPATHの指定に限定されなくなり、バージョン依存情報は明示的に指定できるようになるため、ビルドの確実性が高まることが期待されます。

ただしモジュール機能はまだ実験的なものであるため、今後のフィードバックによって仕様が変更される可能性があるとのことです。

関連記事