GopherJS + Nashorn

6,682 views

Published on

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,682
On SlideShare
0
From Embeds
0
Number of Embeds
4,087
Actions
Shares
0
Downloads
4
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

GopherJS + Nashorn

  1. 1. ネズミとサイと 黒い三角の生物 のはなし 2014/06/08(日) @天下一altJS武闘会
  2. 2. 自己紹介 上田拓也 KLab株式会社 仕事: Webviewと戦う仕事 趣味: Go言語, JS twitter : @tenntenn
  3. 3. 今日はなすこと ● 天下一altJS武闘会に参加したい ● 見るだけ枠は空きがない ○ LTすれば参加できる ● GopherJSというものがある ○ ついでに勉強しよう ● Java Day TokyoでNashornのセッションを見た ○ ついでに勉強しよう
  4. 4. 今日はなすこと Golang JavaScript JavaFX GopherJS Nashorn
  5. 5. GopherJS ● Go言語のコードからJSのコードを吐き出す ● go/astパッケージを使ってGo言語のコードを解 析している ● Node.jsかブラウザで動かす前提で作られてい る ● groutineとchannelは.... ○ 使えません!
  6. 6. Nashorn ● JavaのJavaScriptエンジン ● JavaからJSのコードを実行できたり ● JSからJavaのオブジェクトが使えたりする ● JavaFXも使える
  7. 7. GopherJSでJSのオブジェクト使う ● プロパティのGet/Set var obj js.Object name := obj.Get(“name”).String() obj.Set(“age”, 28) ● 関数呼び出し obj.Call(“say”, “hello”) ● グローバルオブジェクト js.Global
  8. 8. GopherJSを修正する ● Node.jsかブラウザで動くことを前提に作られて いる ● グローバルオブジェクトがGLOBALかwindowで 設定される
  9. 9. Hello, GopherJS var 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)}
  10. 10. Hello, GopherJS
  11. 11. JavaFX 3D
  12. 12. 感想 ● 面白かった ● GopherJSでのグローバルオブジェクト扱いが 微妙 ● Goのコード中にjsとかJavaが出てくるのは気持 ち悪い ● もうちょっとGopherJSのソースを読み込みたい ○ でも、もう使うことはないだろうな

×