Go 1.11がリリース。WebAssembly対応を実装、モジュール機能も追加
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の指定に限定されなくなり、バージョン依存情報は明示的に指定できるようになるため、ビルドの確実性が高まることが期待されます。
ただしモジュール機能はまだ実験的なものであるため、今後のフィードバックによって仕様が変更される可能性があるとのことです。
関連記事
あわせて読みたい
Go言語チームとGoogleが「Go Cloud」プロジェクト発表。同一コードでAWSやGoogle Cloudなどに対応できるポータブルなクラウドアプリの実現へ
≪前の記事
OpenStack、18番目の新バージョン「OpenStack Rocky」登場。Ironicでベアメタル対応、QinlingでFaaS採用、Masakariで仮想マシンの高可用性を実現