Siphone coffeemaker okayama-js-1

1,104 views

Published on

Siphone Coffee Maker is CoffeeScript compiler for Java.
Lightning Talk's presentation document.

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

  • Be the first to like this

No Downloads
Views
Total views
1,104
On SlideShare
0
From Embeds
0
Number of Embeds
85
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Siphone coffeemaker okayama-js-1

  1. 1. Siphone Coffee Maker 第一回 okayama-js勉強会 西本圭佑 (NISHIMOTO Keisuke) keisuken@cappuccino.ne.jp
  2. 2. 自己紹介 ➔ 緒言 ➔ 西本 圭佑 ➔ Twitter: keisuke_n ➔ mailto: keisuken@cappuccino.ne.jp ➔ 仕事 ➔ Webアプリ開発と支援(主なもの) ➔ 趣味 ➔ 宇宙・航空開発・鉄道情報ウォッチ ➔ 電子工作2011.10.29 第一回okayama-js 2
  3. 3. CoffeeScriptとは ➔ http://jashkenas.github.com/coffee-script/ ➔ JavaScriptに1対1に変換される ➔ 便利な構文を持つ記述性のいい言語 ➔ 本来コンパイラはnode.jsで実行される ➔ REPL(対話環境)装備2011.10.29 第一回okayama-js 3
  4. 4. CoffeeScriptサンプルコード# Assignment: # Objects:number = 42 math =opposite = true root: Math.sqrt cube: (x) -> x * square x# Conditions:number = -42 if opposite # Splats: race = (winner, runners...) -># Functions: print winner, runnerssquare = (x) -> x * x # Array comprehensions:# Arrays: cubes = (math.cube num for numlist = [1, 2, 3, 4, 5] in list)2011.10.29 第一回okayama-js 4
  5. 5. Siphone Coffee Makerとは ➔ http://cappuccino.jp/keisuken/scala/SiphoneCoffee/ ➔ Scalaで書かれたCoffeeScriptコンパイラのラッパ ➔ Java環境で動く ➔ Rhino(JavaScriptエンジン)を使っている ➔ REPL(対話環境)も装備2011.10.29 第一回okayama-js 5
  6. 6. デモ2011.10.29 第一回okayama-js 6
  7. 7. JavaScriptへコンパイル ➔ jQueryでDOMを扱うコードサンプルsum = (event) -> result = 0 for i in [1..3] result += parseInt( $(#value + i).val()) $(#result).text(result)$(#calcButton).click(sum)2011.10.29 第一回okayama-js 7
  8. 8. JavaScriptへコンパイル ➔ コンパイラでコンパイルbash-3.2$ scoffee -c sum.coffeeCompiling... sum.coffeedone.2011.10.29 第一回okayama-js 8
  9. 9. REPL(対話環境) ➔ 「モノリス」のアスペクト比は?: コードサンプルaspect = (i * i for i in [1..3])alert "Monoliths aspect: #{aspect}"2011.10.29 第一回okayama-js 9
  10. 10. REPL(対話環境) ➔ REPL(対話環境)で実行bash-3.2$ scoffee> aspect = (i * i for i in [1..3])1,4,9> alert "Monoliths aspect: #{aspect}"Alert: Monoliths aspect: 1,4,92011.10.29 第一回okayama-js 10
  11. 11. GUI作成、実行 ➔ GUIを表示するサンプルコードimportPackage javax.swingframe = JFrame("Hello, world!")frame.setDefaultClosing(JFrame.EXIT_ON_CLOSE)frame.add(JLabel("Hello, world!"))frame.pack()frame.setVisible true2011.10.29 第一回okayama-js 11
  12. 12. GUI作成、実行 ➔ REPLで実行bash-3.2$ scoffee> importPackage javax.swing...> frame.setVisible true2011.10.29 第一回okayama-js 12
  13. 13. おわり ご清聴ありがとうございました2011.10.29 第一回okayama-js 13
  14. 14. 質疑応答 Any Questions?2011.10.29 第一回okayama-js 14

×