Your SlideShare is downloading. ×
GopherJS + Nashorn
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

GopherJS + Nashorn

5,180
views

Published on

Published in: Technology

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,180
On Slideshare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
2
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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