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

参考記事

W3CのWebAssemblyワーキンググループは、「WebAssembly」仕様に関する初めてのワーキングドラフトを公開しました。

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

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

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

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

参考記事

GoogleのChromeブラウザで使われているJavaScriptエンジンの最新版「V8 release v6.5」のリリースが発表されました。V8 release v6.5の最大の特徴は、WebAssemblyの「Streaming Compilation」(ストリーミングコンパイレーション)を実現したことです。

Firefox 58では、WebAssemblyの実行高速化のためにマルチコアを活かし、通信とコンパイルの並列処理、高速コンパイラと最適化コンパイラを同時に用いるなどの高速化技術を組み込んでいます。

関連記事

あわせて読みたい

WebAssembly プログラミング言語 Go Google




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

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

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

最新記事10本


<!- script for simple analytics events -->