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

Siphone coffeemaker okayama-js-1

May 25, 2015

Download

Technology

Siphone Coffee Maker is CoffeeScript compiler for Java.
Lightning Talk's presentation document.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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?