100day’s blog

思いついた事や、プログラミングの毎日の作業工程を短めにまとめてます。

Go言語をjavascriptに変換するトランスパイラとして動作するJoyとGopherJS

Go言語でjavascriptを! AltJs,トランスパイラの思想がある以上は続々とこういった仕様の物が出てきますね。

 

現在の所GoからJavascriptへの変換にはGopherJSとJoyという物が利用できるそうです。

 

1Joy

Go言語のコードをJavaScriptに変換する「Joy」 - CIOニュース:CIO Magazine 

Googleが開発したGo言語(Golang)をWebプログラミングに使いたいと考えている開発者は、オープンソースコンパイラ「Joy」を試してみてもよいかもしれない。現在はベータ段階で、本番環境向けの正式版には至っていないが、Goで作成したコードをJavaScriptに変換できる。

 

Joyの特徴や機能としては、次のようなものも挙げられている。

  • 既存のJavaScriptと連携するためのシンプルなマクロシステム
  • Goの静的分析ツールを使って到達不能コードを排除
  • Chromeブラウザをヘッドレス(GUIなし)で動かす組み込みのHeadless Chromeスクリプトの実行に利用
  • 必要になった時点で最小限のランタイムのみを投入
  • 型付きのゼロコストDOMと仮想DOMのパッケージ

github.com

 

 GoをJavaScriptに変換する試みはJoyが初めてではない。「GopherJS」でも、GoのコードをJavaScriptコンパイルしてブラウザで動かすことができる。構文の変換といった面では、JoyよりもGopherJSの方が進んでいる。 

 

というのが現時点でのJoy。

以下GopherJS

 

2 GopherJS

github.com

qiita.com

出来ること

  • Go の言語機能すべて
  • ほぼすべての標準ライブラリ。 os パッケージなどはブラウザではなく node で使われることを想定しています。
  • 任意の JavaScript 関数の呼び出し
  • 数値、文字列、バイト配列などの一部の型の相互変換

 出来ないこと

  • cgo
  • unsafe など、一部の標準ライブラリ。

Goで作ったゲームをそのままjavascript化して動かす等、結構完成度が高いですね。