フレームワークや言語における思想の違い

これだけだと単なる Java 批判と取られるだろうから、そうじゃないことをアピールしてみる。

私の個人的な意見としては、一部の人(例えばアーキテクト)だけ、フレームワーク全体を把握していて、残りのメンバーは「限定されたことだけやっとけ」みたいなことは好きではありません。

2008-02-13 - yvsu pron. yas


これにはすっごーく同意。これって、役割を分けるためにそうなってるんじゃくて、全体を把握できないくらい複雑で大規模になっているから、全体を理解できるのが一握りの頭のいい人になってるだけなんだよね。それを役割分担がどうのこうのといってごまかしているだけ。


もっというと、中身の見えない、blackbox 化したフレームーワークは間違いじゃないかと最近は思ってる。具体的には Ruby on Rails のことなんだけど。Rails って確かに便利だし、テストが最初から統合されてたりしてアイデアが秀逸なのはわかるんだけど、中身が blackbox で見えてこない。はっきりいえば黒魔術のかたまり。これって本当に正しいことなんだろうか。


というのも、最近 Pythonフレームワークをちょろっと勉強してみたんだけど、Django が「黒魔術の撲滅」というスローガンを標榜しているみたいで、それに大変共感したのがきっかけ。Rails (というか Ruby 全体も同じだと思う) は、「中身を複雑にしてでも便利にすることを選ぶ (便利にするためには裏側が複雑になっても仕方ない)」という思想を感じるけど、Python および Python 製のフレームワークには、「多少不便なままでも仕組みがシンプルになることを選ぶ (裏側が複雑になるくらいなら機能を増やしたりしない)」という思想を感じる。


この、機能と複雑さのバランスをとるのが、Pythonist は全体的にうまい。複雑になりそうなとき、Pythonist は自らブレーキをかけることができる。Rubyist は逆に「Ruby ならこんなこと出来るんだぞー」と叫びながらアクセルを踏み込む (なんか Lisper に通じるものがあるね)。


ちなみに、Java だと「厳格にするためなら、見た目も中身も複雑になって構わない」という思想を、Perl には「コードを短くするための黒魔術サイコー」という思想を感じる。あながちまちがってないよね?

私の個人的な意見としては、薄いフレームワークのほうが世の中に好まれるんじゃないかと思っています。Strutsプラスアルファで、学習コストが低く、ソースコードもさらっと読めるフレームワーク

開発者全員が、フレームワークのことを把握していて、技術的に見通しがいいフレームワーク

この薄いフレームワーク構想を実現するために作ったのが、SAStruts, S2JDBCです。口だけでなく、さくっと作ってみる。これが「ひがやすを流」。

2008-02-13 - yvsu pron. yas


これもすごく同意できる意見なんだけど、SAStruts が薄いフレームワークというのだけは反対 (SAStruts 独自の部分は薄いとしても)。