Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Javascriptを書きたくないヒ
トのためのPythonScript
Shizuoka.py #2
@kzfm
私について
•  @kzfm
– 製薬会社の研究員(最近インフラ周りばかり)
– perl -> python (-> haskell)
•  最近pandas(Rみたいに使えるやつ)が
お気に入り
•  PyconAPACも参加登録済み
マリー・アントワネット曰く
じJajavascriptがいやなら	
  
pythonで書けばいいじゃない
これによりPython革命勃発
(私の中で)
ブラウザでのPython実行方法
1. javascriptでpythonを実装する
1.  <script type= text/python ></
script>
2. pythonで書いてjavascriptにコンパ
イルする
1.  ...
Brython
javascriptに汚染されて汚れまくった
この世界をPythonで浄化してやる!
(意訳)
h%p://www.brython.info/
python inside !
いいところ、わるいところ
•  brython.jsを読みこめばpythonで開発で
きるのでお手軽にはじめられる
•  開発も活発
•  jQuery等のjavascript資産を気軽に流用
できなさそう
•  最初の読み込みで若干モサッとす...
我々は
完全に浄化された言語世界では
生きられないのです!
ブラウザでのPython実行方法
1. javascriptでpythonを実装する
1.  <script type= text/python ></
script>
2. pythonで書いてjavascriptにコンパ
イルする
1.  ...
Javascriptと
Pythonの
融合個体的アプローチ
PythonScript
•  Pythonサブセット
•  javascriptライブラリ
を簡単に取り込める
h%p://apppyjs.appspot.com/
はじめかた
pip install pythonscripttranslator
wget http://bit.ly/YSAbSS -O pythonscript.js
echo 'print "Hello Shizuoka"' > app....
<!DOCTYPE	
  html>	
  
<html>	
  
	
  	
  <body>	
  
	
  	
  	
  	
  <h1>PythonScript	
  Example</h1>	
  
	
  	
  	
  	
  ...
補足
•  pythonscripttranslatorをインス
トールするとpythonscriptというコマ
ンドが使えるようになります
•  これはpythonをjavasrcriptに変換し
ます。
•  wgetでDLしたpython...
コンパイルの流れ
1.  コードをPythonの
astモジュールで
パースして抽象構文
木に変換
2.  PythonToPytho
nJSにより抽象構文
木がPythonJSに変
換
3.  PythonJSの抽象構
文木から
Javasc...
jQueryの使い方
•  PythonScriptにjQueryバインディン
グがついてるのでそれを読み込んでおく
•  J関数でアクセスできる($といっしょ)
•  jQueryオブジェクトはj
bu%on	
  =	
  J("#newt...
Javascriptを取り込む
•  JS関数を使えばいい
•  例)handlebarsをつかう
source	
  =	
  "<div	
  class='view'>{{name}}<a	
  href='#'	
  class='de...
開発Tips
•  livereloadを使えば、コードの更新を検知
してコンパイル、ブラウザのリロードをして
くれる
–  http://blog.kzfmix.com/entry/
1367924270
•  よく監視させてるもの
–  J...
いいところ、わるいところ
•  Javascriptの資産を手軽に使えるので
便利
•  楽しい、超楽しい、そして超ハマる
•  バージョン上がると「えー動かんやん、な
んでやーーー!?」ってなる
– 発展途上
はまったところ
•  jQueryバインディングにdelegateがなかった
–  自分で追加して解決
•  ブラウザのイベントが受け取れない
–  どうすんの?
•  クラスメソッドが使えない
–  シングルトンの作り方が分からなかった
• ...
デモ
•  HakuinというSpine.jsインスパイアな
フロントエンドMVCフレームワークを紹
介します。
•  白隠正宗美味いので飲むといいよ
あなたが使うべきなのは、
PythonScript?
それともJavaScript?
CoffeeScriptでしたー
(^O^)/
javascript
Upcoming SlideShare
Loading in …5
×

Javascriptを書きたくないヒ トのためのPythonScript

19,823 views

Published on

Javascriptを書きたくないヒ トのためのPythonScript

Javascriptを書きたくないヒ トのためのPythonScript

  1. 1. Javascriptを書きたくないヒ トのためのPythonScript Shizuoka.py #2 @kzfm
  2. 2. 私について •  @kzfm – 製薬会社の研究員(最近インフラ周りばかり) – perl -> python (-> haskell) •  最近pandas(Rみたいに使えるやつ)が お気に入り •  PyconAPACも参加登録済み
  3. 3. マリー・アントワネット曰く
  4. 4. じJajavascriptがいやなら   pythonで書けばいいじゃない
  5. 5. これによりPython革命勃発 (私の中で)
  6. 6. ブラウザでのPython実行方法 1. javascriptでpythonを実装する 1.  <script type= text/python ></ script> 2. pythonで書いてjavascriptにコンパ イルする 1.  実行されるのはjavascript 1.  sass -> css 2.  jade -> html
  7. 7. Brython javascriptに汚染されて汚れまくった この世界をPythonで浄化してやる! (意訳) h%p://www.brython.info/
  8. 8. python inside !
  9. 9. いいところ、わるいところ •  brython.jsを読みこめばpythonで開発で きるのでお手軽にはじめられる •  開発も活発 •  jQuery等のjavascript資産を気軽に流用 できなさそう •  最初の読み込みで若干モサッとする –  javascriptのパーサを通して構文解析して構文 木をつくってjavascriptを出力してevalしてい る
  10. 10. 我々は 完全に浄化された言語世界では 生きられないのです!
  11. 11. ブラウザでのPython実行方法 1. javascriptでpythonを実装する 1.  <script type= text/python ></ script> 2. pythonで書いてjavascriptにコンパ イルする 1.  実行されるのはjavascript 1.  scss -> css
  12. 12. Javascriptと Pythonの 融合個体的アプローチ
  13. 13. PythonScript •  Pythonサブセット •  javascriptライブラリ を簡単に取り込める h%p://apppyjs.appspot.com/
  14. 14. はじめかた pip install pythonscripttranslator wget http://bit.ly/YSAbSS -O pythonscript.js echo 'print "Hello Shizuoka"' > app.py pythonscript < app.py > app.py.js (app.py.js)   console.log("Hello  Shizuoka");
  15. 15. <!DOCTYPE  html>   <html>      <body>          <h1>PythonScript  Example</h1>          <script  src="pythonscript.js"></script>          <script  src="app.py.js"></script>      </body>   </html>  
  16. 16. 補足 •  pythonscripttranslatorをインス トールするとpythonscriptというコマ ンドが使えるようになります •  これはpythonをjavasrcriptに変換し ます。 •  wgetでDLしたpythonscript.jsには 上記javascriptが必要とする関数が定義 されています。
  17. 17. コンパイルの流れ 1.  コードをPythonの astモジュールで パースして抽象構文 木に変換 2.  PythonToPytho nJSにより抽象構文 木がPythonJSに変 換 3.  PythonJSの抽象構 文木から Javascript生成
  18. 18. jQueryの使い方 •  PythonScriptにjQueryバインディン グがついてるのでそれを読み込んでおく •  J関数でアクセスできる($といっしょ) •  jQueryオブジェクトはj bu%on  =  J("#newtask”)   bu%on.bind("click",  false,  self.create) j  =  J("#taskinput").j   name  =    JS("j.val()")
  19. 19. Javascriptを取り込む •  JS関数を使えばいい •  例)handlebarsをつかう source  =  "<div  class='view'>{{name}}<a  href='#'  class='destroy'></a></div>"  +  “”   template  =    JS("Handlebars.compile(source)")   name  =  self.model.name   data  =  JS("template({name:name})") 注1)0.7.3だとJS関数の中で文字列をそのまま書くとコケる 注2)文字列も一度評価しないといけない感じ (+ )
  20. 20. 開発Tips •  livereloadを使えば、コードの更新を検知 してコンパイル、ブラウザのリロードをして くれる –  http://blog.kzfmix.com/entry/ 1367924270 •  よく監視させてるもの –  Jade –  Sass/Compass –  PythonScript
  21. 21. いいところ、わるいところ •  Javascriptの資産を手軽に使えるので 便利 •  楽しい、超楽しい、そして超ハマる •  バージョン上がると「えー動かんやん、な んでやーーー!?」ってなる – 発展途上
  22. 22. はまったところ •  jQueryバインディングにdelegateがなかった –  自分で追加して解決 •  ブラウザのイベントが受け取れない –  どうすんの? •  クラスメソッドが使えない –  シングルトンの作り方が分からなかった •  *args,**kwargsはサポートされているが –  関数で渡せなくてこまった •  が使えないのもテンプレート書くときに ちょっとめんどくさかった
  23. 23. デモ •  HakuinというSpine.jsインスパイアな フロントエンドMVCフレームワークを紹 介します。 •  白隠正宗美味いので飲むといいよ
  24. 24. あなたが使うべきなのは、 PythonScript? それともJavaScript?
  25. 25. CoffeeScriptでしたー (^O^)/ javascript

×