Go言語がWebAssemblyをサポートへ。GOARCHは「wasm」、GOOSは「js」に

2018年4月16日


Googleが中心となってオープンソースで開発されているGo言語は、WindowsやmacOS、Linux、FreeBSD、iOS、Androidなど、さまざまなOSやCPUに対応したバイナリを生成できることが特長の1つとなっています。

そのGo言語のコンパイラが生成するバイナリにWebAssemblyが追加されました。WebAssemblyは、Webブラウザ上でネイティブコードに近い実行速度で高速に実行できるバイナリフォーマットです。

WebAssemblyのサポートは昨年2月から検討がはじまり、先月末に最初のコードがコミットされた状態で、現在も開発が進んでいます。

GOの今後のバージョンアップで正式にWebAssemblyがサポートされる見通しです。

Go言語のWebAssemblyサポート

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」となりました。

WebブラウザやNode.js対応のアプリをGo言語で開発可能に

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

Go言語がWebAssemblyをサポートしたことで、WebブラウザやNode.jsで実行されるWebアプリケーションをGo言語でも開発できるようになる見通しです。

Mozillaが発表したばかりのWebAssembly対応の統合開発環境「WebAssembly Studio」でも、CやRust、TypeScriptのサブセットであるAssemblyScriptなど、JavaScript以外のプログラミング言語が用意されています。今後WebAssemblyが普及していくと、Webアプリケーションの開発言語は多様化の時代を迎えることになりそうです。

参考:W3C、「WebAssembly」仕様について初めてのワーキングドラフトを公開

参考:JavaScriptエンジン「V8 release v6.5」リリース。WebAssemblyバイナリをダウンロードと並行してコンパイル、ダウンロード完了とほぼ同時にコンパイルも完了

参考:Firefox 58では、WebAssembly実行がさらに高速化。飛んでくるパケットごとにコンパイル、実行中に裏でコードを最適化して動的に入れ替え

関連記事

このエントリーをはてなブックマークに追加
follow us in feedly

カテゴリ 開発ツール / 言語 / プログラミング
タグ  Go , Google , WebAssembly


次の記事
NGINX Unitが正式リリース。PHP、Go、Pythonなどに対応した軽量アプリケーションサーバ

前の記事
インテルのFPGA、富士通とDell EMCが採用しx86サーバへ搭載。XeonとFPGAの統合へ第一歩


カテゴリ



Blogger in Chief

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

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



新着記事 10本


PR - Books


fig

fig

fig