28
流行るLispWebフレームワーク (Gauche on Railsから学んだ事) (Gaucheファンクラブ 吉田裕美) フムフム・ヌクヌク・アプアアの絵の画像は http://plaza.rakuten.co.jp/ohanamaster/diary/200806070000/ から

流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

Embed Size (px)

Citation preview

Page 1: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

流行るLisp用Webフレームワーク

(Gauche on Railsから学んだ事)

(Gaucheファンクラブ 吉田裕美)

フムフム・ヌクヌク・アプアアの絵の画像は http://plaza.rakuten.co.jp/ohanamaster/diary/200806070000/ から

Page 2: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

自己紹介

吉田 裕美 (Yoshida Yuumi)

EY-Officeとうい会社をやってます

お仕事は Ruby on Rails の教育・開発

(Gaucheファンクラブ)の活動として、 @IT、ThinkITにGaucheの記事を書いてます

Blog : http://d.hatena.ne.jp/yuum3/

2

Page 3: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

イントロ

3

Page 4: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

Gauche on Rails

Gaucheで作ったRuby on Rails風のWeb Framework

第2回 gauche.night のLTでデビュー

4

http://d.hatena.ne.jp/HoshiAkio/20080308/1204968048 より

Page 5: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

なぜ Gauche on Rails ?

今年の私の個人的テーマは

5

昨年… 継続中

Page 6: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

なぜ Gauche on Rails ?

今年の私の個人的テーマは

5

「Ruby から Lisp へ」

昨年… 継続中

Page 7: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

なぜ Gauche on Rails ?

Ruby といえば

6

Page 8: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

なぜ Gauche on Rails ?

Ruby といえば

6

Ruby on Rails

Page 9: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

なぜ Gauche on Rails ?

Ruby on RailsといえばRuby 動的言語DSL メタプログラミングコード生成 ・・・・

7

Page 10: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

なぜ Gauche on Rails ?

8

それって、Lisp /Schemeが築いた世界じゃない?じゃあ 元祖の Gauche (Lisp/

Scheme)で作ってみよう !!

Page 11: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

デモ

9

Page 12: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

デモ

9

はありません

Page 13: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

Gauche on Railsの要素

ERB(JSP)風テンプレートエンジン

ActiveRecord(PoEAA)パターンのORマッパ

シンプルなコントローラ+継続

ひな形のコード生成

専用Webサーバー

10

Page 14: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

その後のGauche on Rails

11

Page 16: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

Think IT、@ITで記事を書くことになった

http://www.thinkit.co.jp/article/74/1/

http://www.atmarkit.co.jp/fcoding/articles/gauche/01/gauche01a.html

その際には、川合さんやGaucheistの指摘でコードの一部は洗練された

13

Page 17: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

記事を書く際にわかった事

テンプレートエンジンは <% ~ %> の外に着目するとスッキリ書ける

川合さんの示唆。@ITの連載でやっと実現

evalの第二引数の意味、eval実行中に定義された関数等はどのモジュールに属すのか?

redefinedスロットの存在

14

Page 18: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

なぜか、セミナー等で話しをする事になった

Lightweight Language Future 「サイコー?!フレーム 」

Gauche/Kahuaセミナー2008 Fall

その際に、Gauche on Railsのその後を考えるきっかけになった

15

Page 19: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

なぜ Ruby on Railsは流行ったのでしょうか?

16

Page 20: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

いろいろな要因

Javaの10倍の生産性があったからDHHがイケメンだったからRuby作者のMatzはLispに対して複雑な思いをもっているからRuby1.9のコア(YARV)作者の笹田さんは、GaucheのWebフレーワークKahuaコミッターだったから・・・・

17

Page 21: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

Ruby on Railsは突然うまれたものではない

18

JJUG Cross Community Conference 2008 Fallの『JavaからRubyへ』・アンド・ナウ から

Page 22: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

私の思うところ

Web系プログラマーの常識が通用するつきなみなテンプレートぜんぜん普通なコントロラー・・・

楽できる

バランスが良い

恒に進化し続ける19

Page 23: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

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));

Page 24: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

Gauche on Rails 2.0

21

Page 25: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

考えていること

Ruby on Railsの良い考え方は取り入れる

しかし、全てを同じようにする必要はない

自分で使いたいと思うものを作る

継続が使える

マクロで、良いDSLを作れる

22

Page 26: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

考えていること

Lispはメタプログラミングが得意なのだから、みんなが自分の思うフレームワークを作ればいい

Gauche on RailsはLispを使ったWebフレームワークの実例の一つ

次回 gauche.night で発表 !?

23

Page 27: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

もう一つ

LT向けでも良いから、何かを作って発表しまししょう!

自分のLisp力のアップになります

Lispコミニュティーの発展につながります

Lispならあなたもヒーロー/ヒロインになれる

24

Page 28: 流行るLisp用Webフレームワーク(Gauche on Railsから学んだ事)

ありがとうございました!

25

(Gaucheファンクラブ 吉田裕美)