Go言語がWebAssemblyをサポートへ。GOARCHは「wasm」、GOOSは「js」に
Googleが中心となってオープンソースで開発されているGo言語は、WindowsやmacOS、Linux、FreeBSD、Androidなど、さまざまなOSやCPUに対応したバイナリを生成できることが特長の1つとなっています。
そのGo言語のコンパイラが生成するバイナリにWebAssemblyが追加されました。WebAssemblyは、Webブラウザ上でネイティブコードに近い実行速度で高速に実行できるバイナリフォーマットです。
WebAssemblyのサポートは昨年2月から検討がはじまり、先月末に最初のコードがコミットされた状態で、現在も開発が進んでいます。
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アプリケーションの開発言語は多様化の時代を迎えることになりそうです。
関連記事
カテゴリ 開発ツール / 言語 / プログラミング
タグ Go , Google , WebAssembly
あわせてお読みください
- Mozillaが「WebAssembly Studio」発表。C/Rust/AssemblyScript対応のオンラインIDE
- GoogleとNetflix、カナリアリリース分析ツール「Kayenta」オープンソースで公開。新たにデプロイしたリリースに問題がないかを自動分析
- Cloudflareの1.1.1.1が「DNS over Twitter」を開始。ドメイン名をツイートすると即座にIPアドレスを返答
- Linux Foundation、機械学習をアプリケーションに簡単に組み込めるオープンソース「Acumos AI」発表。新団体「LF Deep Learning Foundation」が開発
- Ruby on Rails 5.2正式版発表。Active Storageによるクラウドストレージ対応、Redisでのキャッシュ対応など
前の記事
インテルのFPGA、富士通とDell EMCが採用しx86サーバへ搭載。XeonとFPGAの統合へ第一歩