Post on 26-Jun-2015
流行るLisp用Webフレームワーク
(Gauche on Railsから学んだ事)
(Gaucheファンクラブ 吉田裕美)
フムフム・ヌクヌク・アプアアの絵の画像は http://plaza.rakuten.co.jp/ohanamaster/diary/200806070000/ から
自己紹介
吉田 裕美 (Yoshida Yuumi)
EY-Officeとうい会社をやってます
お仕事は Ruby on Rails の教育・開発
(Gaucheファンクラブ)の活動として、 @IT、ThinkITにGaucheの記事を書いてます
Blog : http://d.hatena.ne.jp/yuum3/
2
イントロ
3
Gauche on Rails
Gaucheで作ったRuby on Rails風のWeb Framework
第2回 gauche.night のLTでデビュー
4
http://d.hatena.ne.jp/HoshiAkio/20080308/1204968048 より
なぜ Gauche on Rails ?
今年の私の個人的テーマは
5
昨年… 継続中
なぜ Gauche on Rails ?
今年の私の個人的テーマは
5
「Ruby から Lisp へ」
昨年… 継続中
なぜ Gauche on Rails ?
Ruby といえば
6
なぜ Gauche on Rails ?
Ruby といえば
6
Ruby on Rails
なぜ Gauche on Rails ?
Ruby on RailsといえばRuby 動的言語DSL メタプログラミングコード生成 ・・・・
7
なぜ Gauche on Rails ?
8
それって、Lisp /Schemeが築いた世界じゃない?じゃあ 元祖の Gauche (Lisp/
Scheme)で作ってみよう !!
デモ
9
デモ
9
はありません
Gauche on Railsの要素
ERB(JSP)風テンプレートエンジン
ActiveRecord(PoEAA)パターンのORマッパ
シンプルなコントローラ+継続
ひな形のコード生成
専用Webサーバー
10
その後のGauche on Rails
11
公開したコードは更新されてない _(._.)_
http://ey-office.net/svn/rails/trunk/GaucheRails/
12
Think IT、@ITで記事を書くことになった
http://www.thinkit.co.jp/article/74/1/
http://www.atmarkit.co.jp/fcoding/articles/gauche/01/gauche01a.html
その際には、川合さんやGaucheistの指摘でコードの一部は洗練された
13
記事を書く際にわかった事
テンプレートエンジンは <% ~ %> の外に着目するとスッキリ書ける
川合さんの示唆。@ITの連載でやっと実現
evalの第二引数の意味、eval実行中に定義された関数等はどのモジュールに属すのか?
redefinedスロットの存在
14
なぜか、セミナー等で話しをする事になった
Lightweight Language Future 「サイコー?!フレーム 」
Gauche/Kahuaセミナー2008 Fall
その際に、Gauche on Railsのその後を考えるきっかけになった
15
なぜ Ruby on Railsは流行ったのでしょうか?
16
いろいろな要因
Javaの10倍の生産性があったからDHHがイケメンだったからRuby作者のMatzはLispに対して複雑な思いをもっているからRuby1.9のコア(YARV)作者の笹田さんは、GaucheのWebフレーワークKahuaコミッターだったから・・・・
17
Ruby on Railsは突然うまれたものではない
18
JJUG Cross Community Conference 2008 Fallの『JavaからRubyへ』・アンド・ナウ から
私の思うところ
Web系プログラマーの常識が通用するつきなみなテンプレートぜんぜん普通なコントロラー・・・
楽できる
バランスが良い
恒に進化し続ける19
Ruby on Railsのいけてないところ
遅い・重い
Ruby言語内DSLの限界
20
def self.up create_table :todos do |t| t.date :due t.string :task end end
# 本来のSQLCREATE TABLE todos ( due : DATE, task : VARCHAR(255));
Gauche on Rails 2.0
21
考えていること
Ruby on Railsの良い考え方は取り入れる
しかし、全てを同じようにする必要はない
自分で使いたいと思うものを作る
継続が使える
マクロで、良いDSLを作れる
22
考えていること
Lispはメタプログラミングが得意なのだから、みんなが自分の思うフレームワークを作ればいい
Gauche on RailsはLispを使ったWebフレームワークの実例の一つ
次回 gauche.night で発表 !?
23
もう一つ
LT向けでも良いから、何かを作って発表しまししょう!
自分のLisp力のアップになります
Lispコミニュティーの発展につながります
Lispならあなたもヒーロー/ヒロインになれる
24
ありがとうございました!
25
(Gaucheファンクラブ 吉田裕美)