JJUG Cross Community Conference 2007 Fall コミュニティパネル 「Webアプリケーション開発の今後を占う」 - 第2部 パネルディスカッション
パネルDISカッション
Seasar代表のひがやすを(id:higayasuo)さん、Spring Framework代表の鈴木 雄介さん、Ruby on Railsの代表の高井 直人さんの3人が喧々諤々。
モデレータはid:Yoshiori
大まかなテーマ
- DBアクセス層
- ホントにRubyに行くべきか?
- その他
DBアクセス層
- SQL(ひがやすをさん)
- ActiveRecordパターン(高井 直人さん)
- DataMapperパターン(鈴木 雄介さん)
で、話をする予定だったようだけどいい感じで脱線。
高井 直人さん(以下、高)
難しいSQL・たくさんのUNIONなんていうのは全体の20%程度、
Railsは全体の80%を効率よくやるのに特化しているフレームワークなので、
ActiveRecordパターンが合っている
高
マーチン・ファウラー曰く、言語内DSLと言語外DSL(SQLとか)がある
言語内DSLなら脳内コンテキストスイッチが少ない
ひ
SQLも理解せずにWeb+DBアプリを作るな
鈴
Springでは分業すればよい
id:Yoshiori(以下、Y)
SI屋さんにはサラリーマンプログラマが多い
→普通の人が普通に作るとちゃんとできるフレームワークが欲しいという話
例えば、知識・理解の乏しい人がStrutsで作るとセキュリティホール開きまくり
こういうのがないの
ひ
そうやるとフレームワークにがんじがらめにされる
→出来る人がやりやすいように出来る方が生産性が高くなるという話?
高
自動化についての勘違い
×大量コード生成
- 何かあったら生成された大量のソースを見ないと駄目
○粒度の大きいコード生成
- 一行で千行相当
- 問題領域に近い粒度
鈴
自動化には2種類ある
- 開発時の自動化
- RunTimeの自動化
1を重視→駄目なコードはそのもそも動かないようにする
ホントにRubyに行くべきか?
高
→きっちりメモれなかった。適材適所という言葉は禁句にしたけど、結局、適材適所みたいな話だったような
鈴
硬い人(エンタープライズよりの人)と硬くない人(Webよりの人?)をインテグレーションするといいんじゃないか
高
いろいろな勝ちパターンがある
Railsの勝ちパターンだけが、勝ちパターンじゃない
要素技術について言えばRubyでもエンタープライズ開発は可能だが、コンテキスト的にはNo!
開発思想を学ぶといいことがいっぱいある
Y
学習コストまで含めるとRubyはやるべきか?
ひ
一年に一言語学ぶべきと言っている人もいる
でも、一つの言語も結構奥が深いし、どんどん言語仕様が変わってる
JavaSE6の機能を使って開発したことがあるJavaエンジニアはまだあまりいない
→monjudoh的には他言語を学ぶことで,メイン言語の理解が深まることも結構あると思う。(なので、いろいろ手を出す派)
高
セミナーとか使えば学習コストはスケールするんじゃないか?
→開発者が支払うコストじゃなくて開発者を雇用する側が支払うコストがということかな?
ひ
Rubyの学習コストはそもそも低いと思う
下地があれば2,3日で(ちゃんとしたのはともかく)ちょっとしたアプリは作れる
鈴
哲学を学べば勝手に学習していくのではないか
質問コーナー
Q:初心者・サラリーマンプログラマ向けには何がいい?
ひ
Seasar2はプロフェッショナル(だけ)向けじゃないよ
高
作るだけならRailsは凄く簡単
アプリを作る上で取るべき手段が多くないから簡単
ただし、公開するのは大変
鈴
Springは初心者向けじゃない
きちんと選べる人がインフラとして使うとSpringは良いよ
→お膳立てして下位者にやらせるということなのかな?
Q:JBossSeamに対するアドバンテージは何?
高
Seam…ステートフル
Rails…ステートレス
なので、そもそも方向性が違う
Seam…WebBeans仕様の実装
Rails…元々BaseCampというアプリを作るためのフレームワーク
という違いもある
→Seamが先にあって、それを標準化したのがWebBeansじゃなかったっけ?
派生議論(ステートレスvsステートフル)
ひ
Webはステートレスなものだから、Webの特性を生かすならステートレスの方が良いんじゃないか?
Webでステートフルを実現するのは危険じゃないか?
Y
httpはステートレスだけど、アプリというのはステートフルになる
アプリがステートフルなら、フレームワークレベルでステートフルのほうが良いんじゃないか?
ひ
hiddenでいいんじゃない?
高
Informationデザイン・アプリの設計でどちらに振るか決めること
→時と場合によりけりということかな?
Q:Ajaxは好きか?
ひ
アリだと思う
RIA好き
クライアント側にステートを持ってくる
クライアント | サーバ | |
---|---|---|
ステートフル | ステートレス |
高
RailsはAjaxがすぐに出来るという触れ込み
MVC的には駄目な設計をやりやすいので逆にAJax向き
ActiveResource
ちょい感想
ステートレス・ステートフルの話が熱かった。
個人的に興味のある話題でもあるし。