Rails好きが見たSAWDwS2
昨日の続きでSC2006の観想です。レポートはきっと某 Yugui さんが書いてくださると思うので(ぉ、私は感想とかそこから考えたこととか。あとは前提というかエクスキューズですけど、私のスタンスは↓のような感じ。ようするに Rails 好きの Java 弱者です。
S2が Super Agile なところ
- Dolteng と S2 ファミリーを駆使した scaffold。
- Hot-deploy で変更をどんどんブラウザ上でも確認できる。ひがさんが言ってた開発のサクサク感。
- Railsの人にはscript/server と同じイメージといえば伝わるかな。
- View の部分の規約はわかりやすくていいですね。Teedaではsapで囲まれたエレメントがページと1対1のページクラス(ふつうのJavaオブジェクト)とあわさって動的な画面を生成する感じ。Amriraっぽい。
- さらに form や link の生成もページクラスの書くメソッドと対になったメソッドが呼ばれるような感じ。このへんの CoC はかなり徹底されてました。これは素直によかったです。
- 実際、XML は*まったく*出てきませんでしたし。
- ひがさん本人からいただいたコメントでは、リンクのパラメータも同じような規則で生成可能な模様。楽そう。
- ロジックを仕込む前に完全な HTML ができるので、例えばデザイナーさんの分業はやりやすそう。
感想いろいろ
Java でもここまでできるんだ、ということですげーとは思ったんですが、scaffold を前面に押し出すのは微妙。時間が押しちゃってたのもあって、もったいないなぁ、という感じでした。そっちの方面で言えば、partialなview(Strutsでいうtile見たいな感じのもっと柔軟なヤツ)とか RJS のところも見たかったです。ただそのへんをふくめ、走り出すまでのドライブ感(うまく言えないけど)という、Rails の得意分野では Rails の方がだいぶん先行している気がしました。
例えば、
- 先述の RJS とか
- 内部DSLを駆使したコーディング (validates_xx_of ..とか) によるオレってすげー感。あとはそれが特別な文法じゃなく、Ruby の普通のメソッドであるという内部の一貫性。
- 軽量なWebアプリを作るための軽めのpluginがいっぱい。素朴な認証を一瞬で書けたりとか、モデルオブジェクトを tree 構造で扱えたりとかするplugin を簡単に作れます。。
- あとは Ruby の機能が、いろいろな危険はともかくオープンクラスという言語特性は Agile にやりたいときの強い味方だよなぁ、と。
- ブロックとか
- ()いらない、とか
- Hashという、強力なデータ型のリテラルを簡単に書けるとか。
個々のフレームワークの筋のよさ(エラそうですみません)はすごく感じたので、それらが *Javaで* できている、というところのステキさ、という観点から攻めた方がよかったのかな、と。例えば Rails にない Churaの良さとしては
- JVMの上で動く。
- リクエストを受けてからのビジネスロジックに落ちてしまえば、あとは実績あるS2ファミリーの世界でやっていけること。ARもいいですけど、S2DaoとかKuinaとか、そっちのパワーを目一杯享受できるのは魅力。
- eclipseってすごいですよね。ノーマルモードがあれば vim から移行したいくらい。
- localizeとかがちゃんとはじめから入ってるのはいいですよね。フルスタック。
- Ruby-Gettext で機能的な不満は無いんですけど、デフォルトでサポートされているってのはいいなぁ、やっぱし。
- 簡単なものを簡単に、といういみでは Tuigwaa がすでに Rails の先を行ってるような気がしました。
とかあるわけで、面白かったけどもったいない、けど刺激をうけました、というセッションでした。ある Rails 派から見た感想ということで、ご参考まで。