フレームワークの対象レベル

Catalystを使って友人の活動用のウェブサイトを作っています。

だんだんControllerのクラス数やDBのテーブル、カラム数が増えてきて、ようやくCatalystの便利さを実感するようになりました。

Conrollerは、オーバーライドしない限りRoot.pmのautoやdefault、endが継承されて、全体に共通の処理はRootに書いてしまえばそれで済むとか。TTは、効率よくテンプレートを部品化していけば同じ記述を何度もコピペしなくていいし、仕様変更にも強くなる。まさにDRYという感じで慣れるとさくさく書いていける感じが楽しいです。

でも、これって例えば関数指向でゴリゴリ分岐を書いてみるとかそういう経験がなかったら、その便利さとかその整然さとかそんなに実感しなかったりするのかなと思ったりします。

いや、センスのある人はたとえそういう経験がなくても、いきなりオブジェクト指向に入っていって、その意図をつかんでいくんだろうけど、まさに「初めてちゃんとウェブアプリ作ります」っていうレベルだと「フレームワークの利点を理解することなく、オンラインマニュアルの言われるがままに書き方だけ覚えてく」みたいな事もあるかもしれない(Catalyst使う人にそんな話はあまりなさそうだけど)。

それはそれで入り口としていいのかもしれないけど、だとすると「Perlの全くの初心者がフレームワーク使えば即戦力になるだろう」とかそういう事はやっぱりありえなくて「せめて脱初心者(初めてのPerl、続・初めてのPerl読み終えたくらい?)以上の人が使うならばウェブアプリ開発を強力にサポートできます」ぐらいなんじゃないか、とまさに「脱初心者」中の自分が思ったりします。

て、これはCatalystだけじゃなくて、職場のJavaなんかでは頻繁にそういう場面を見かけたりするので、全てのフレームワークに言える事のような気がします。

フレームワークがあるんだから未経験者突っ込んでも何とかなるだろう」っていう話はよくあるけど、そうじゃないんだと思います。結局、どんな便利なフレームワークでも、それをきっかけにして言語の基礎とか土台の部分は自分で学んでいかないとそのレベルにさえ追いつかないわけで、「伸びる人はほっといても伸びる」っていうのは変わらないんだろうという気がします。