Joy - GoのコードをJavaScriptに変換
JavaScriptを嫌う方は一定層います。スクリプト言語なので型がなかったり、処理が非同期な部分があったりすることに起因するようです。サーバサイドを別言語で書いていたりすると、Webブラウザ向けだけJavaScriptを使わないといけないという制約も嫌がられます。 サーバサイドをGoで書いているのであれば使ってみたいのがJoyです。GoをJavaScriptに変換するライブラリです。
Joyの使い方
最も簡単なコードです。
package main
func main() {
println("Joy to the world!")
}
これを変換すると次のようになります。多少冗長的な部分もありますが、それほど酷くないコードです。
$ joy main.go
;(function() {
var pkg = {};
pkg["main"] = (function() {
function main () {
console.log("Joy to the world!")
};
return {
main: main
};
})();
return pkg["main"].main();
})()
JoyはGoとしても実行ができるのが特徴です。例えば以下のコードがあります。
package main
// Node struct
type Node struct {
NodeName string
}
func main() {
var nodes []Node
nodes = append(nodes, Node{
NodeName: "div",
}, Node{
NodeName: "strong",
})
for i, node := range nodes {
println(i)
println(node.NodeName)
}
for i := range nodes {
println(i)
}
}
Goとして実行します。
$ go run main.go
0
div
1
strong
0
1
変換したコードをNode.jsで実行します。
$ node main.js
0
div
1
strong
0
1
JoyはDOMについても処理が可能です。すべてのGoライブラリが使える訳ではないので(基本的にはJoyが提供するライブラリになるでしょう)注意が必要ですが、Goに慣れた人であれば特に問題なく書けるでしょう。GoでJavaScriptの処理もまとめて書きたいという方はぜひ使ってみましょう。
JoyはGo製のオープンソース・ソフトウェア(GPL)です。
Introducing Joy matthewmueller/joy: A delightful Go to Javascript compiler