gopherjs + nashorn

Post on 24-May-2015

5.275 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ネズミとサイと黒い三角の生物のはなし

2014/06/08(日)@天下一altJS武闘会

自己紹介

上田拓也KLab株式会社

仕事:

Webviewと戦う仕事

趣味:

Go言語, JStwitter : @tenntenn

今日はなすこと

● 天下一altJS武闘会に参加したい● 見るだけ枠は空きがない

○ LTすれば参加できる

● GopherJSというものがある○ ついでに勉強しよう

● Java Day TokyoでNashornのセッションを見た○ ついでに勉強しよう

今日はなすこと

Golang

JavaScript

JavaFX

GopherJS

Nashorn

GopherJS

● Go言語のコードからJSのコードを吐き出す● go/astパッケージを使ってGo言語のコードを解

析している● Node.jsかブラウザで動かす前提で作られてい

る● groutineとchannelは....

○ 使えません!

Nashorn

● JavaのJavaScriptエンジン● JavaからJSのコードを実行できたり● JSからJavaのオブジェクトが使えたりする● JavaFXも使える

GopherJSでJSのオブジェクト使う

● プロパティのGet/Setvar obj js.Objectname := obj.Get(“name”).String()obj.Set(“age”, 28)

● 関数呼び出し

obj.Call(“say”, “hello”)● グローバルオブジェクト

js.Global

GopherJSを修正する

● Node.jsかブラウザで動くことを前提に作られている

● グローバルオブジェクトがGLOBALかwindowで設定される

Hello, GopherJSvar java = js.Global.Get("Java")func start(stage js.Object) { stage.Set("title", "Hello, GopherJS") WebView := java.Call("type", "javafx.scene.web.WebView") webview := WebView.New() url := “http://gopherjs.github.io/playground” webview.Call("getEngine").Call("load", url) Scene := java.Call("type", "javafx.scene.Scene") scene := Scene.New(webview, 1200, 800) stage.Call("setScene", scene) stage.Call("show")}func main() {js.Global.Set("start", start)}

Hello, GopherJS

JavaFX 3D

感想

● 面白かった● GopherJSでのグローバルオブジェクト扱いが

微妙● Goのコード中にjsとかJavaが出てくるのは気持

ち悪い● もうちょっとGopherJSのソースを読み込みたい

○ でも、もう使うことはないだろうな

top related