14
Siphone Coffee Maker Siphone Coffee Maker 西本圭佑 (NISHIMOTO Keisuke) [email protected] 第一回 okayama-js勉強会

Siphone coffeemaker okayama-js-1

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Siphone coffeemaker okayama-js-1

Siphone Coffee MakerSiphone Coffee Maker

西本圭佑 (NISHIMOTO Keisuke)[email protected]

第一回 okayama-js勉強会

Page 2: Siphone coffeemaker okayama-js-1

2011.10.29 第一回okayama-js 2

自己紹介自己紹介

➔ 緒言➔ 西本 圭佑➔ Twitter: keisuke_n➔ mailto: [email protected]

➔ 仕事➔ Webアプリ開発と支援(主なもの)

➔ 趣味➔ 宇宙・航空開発・鉄道情報ウォッチ➔ 電子工作

Page 3: Siphone coffeemaker okayama-js-1

2011.10.29 第一回okayama-js 3

CoffeeScriptCoffeeScriptとはとは

➔ http://jashkenas.github.com/coffee-script/➔ JavaScriptに1対1に変換される➔ 便利な構文を持つ記述性のいい言語➔ 本来コンパイラはnode.jsで実行される➔ REPL(対話環境)装備

Page 4: Siphone coffeemaker okayama-js-1

2011.10.29 第一回okayama-js 4

CoffeeScriptCoffeeScriptサンプルコードサンプルコード

# Assignment:number = 42opposite = true

# Conditions:number = -42 if opposite

# Functions:square = (x) -> x * x

# Arrays:list = [1, 2, 3, 4, 5]

# Objects:math = root: Math.sqrt cube: (x) -> x * square x

# Splats:race = (winner, runners...) -> print winner, runners

# Array comprehensions:cubes = (math.cube num for num in list)

Page 5: Siphone coffeemaker okayama-js-1

2011.10.29 第一回okayama-js 5

Siphone Coffee MakerSiphone Coffee Makerとはとは

➔ http://cappuccino.jp/keisuken/scala/SiphoneCoffee/➔ Scalaで書かれたCoffeeScriptコンパイラのラッパ➔ Java環境で動く➔ Rhino(JavaScriptエンジン)を使っている➔ REPL(対話環境)も装備

Page 6: Siphone coffeemaker okayama-js-1

2011.10.29 第一回okayama-js 6

デモ

Page 7: Siphone coffeemaker okayama-js-1

2011.10.29 第一回okayama-js 7

JavaScriptJavaScriptへコンパイルへコンパイル

➔ jQueryでDOMを扱うコードサンプル

sum = (event) -> result = 0 for i in [1..3] result += parseInt( $('#value' + i).val()) $('#result').text(result)$('#calcButton').click(sum)

Page 8: Siphone coffeemaker okayama-js-1

2011.10.29 第一回okayama-js 8

JavaScriptJavaScriptへコンパイルへコンパイル

➔ コンパイラでコンパイル

bash-3.2$ scoffee -c sum.coffeeCompiling... sum.coffeedone.

Page 9: Siphone coffeemaker okayama-js-1

2011.10.29 第一回okayama-js 9

REPL(REPL(対話環境対話環境))

➔ 「モノリス」のアスペクト比は?: コードサンプル

aspect = (i * i for i in [1..3])alert "Monolith's aspect: #{aspect}"

Page 10: Siphone coffeemaker okayama-js-1

2011.10.29 第一回okayama-js 10

REPL(REPL(対話環境対話環境))

➔ REPL(対話環境)で実行

bash-3.2$ scoffee> aspect = (i * i for i in [1..3])1,4,9> alert "Monolith's aspect: #{aspect}"Alert: Monolith's aspect: 1,4,9

Page 11: Siphone coffeemaker okayama-js-1

2011.10.29 第一回okayama-js 11

GUIGUI作成、実行作成、実行

➔ GUIを表示するサンプルコード

importPackage javax.swingframe = JFrame("Hello, world!")frame.setDefaultClosing(JFrame.EXIT_ON_CLOSE)frame.add(JLabel("Hello, world!"))frame.pack()frame.setVisible true

Page 12: Siphone coffeemaker okayama-js-1

2011.10.29 第一回okayama-js 12

GUIGUI作成、実行作成、実行

➔ REPLで実行

bash-3.2$ scoffee> importPackage javax.swing...> frame.setVisible true

Page 13: Siphone coffeemaker okayama-js-1

2011.10.29 第一回okayama-js 13

おわりおわり

ご清聴ありがとうございました

Page 14: Siphone coffeemaker okayama-js-1

2011.10.29 第一回okayama-js 14

質疑応答質疑応答

Any Questions?