特に意味のあることではないと思うけれど、率直な感想と「node.jsのベストなフレームワークは??」に関する答え(?)的なことをアバウトにあいまいに書きます。
まず、node.jsは素晴らしいです。
javascriptでサーバーサイドをかけるんですもの、素晴らしいに決まっていますよね?
非同期通信するんだったら、nodeですよねぇ。非同期通信しないWEBなんて、前時代的ですよね?
さて、nodeを使うのは前提として。
「node.jsのベストなフレームワークは??」ってのが気になるところ。rubyにおけるruby on rails的な「nodeのフレームワークっていったらこれでしょ?」的なやつ。それが知りたいと。
で調べたら、sails,meteor,express,etc..といろいろある。
かつ、「これだ!!」みたいな主流派がない。でまぁ、結局expressを選んだわけですけれども。
いかんせんこのexpressってやつはrubyOnRailsほどゴリゴリ感のあるフレームワークではない。イメージ的には「フレームワークのパーツを上げるから、自分で組み立ててね」的なノリを感じる。
さらにexpressのバージョンが3→4に上がるとさらにそれが進んで「もうちょっとここの部品を切り分けるわ。」的なノリを感じる。パッと見た感じだと「え?退化?」とも感じられるかも。
そう、この不思議なバージョンアップの方向性はどこからでてきたんだろうか。と。感じ、expressの設計思想について、考えてみたわけですけれども。
ちょっとわたしもrubyOnRailsをかじってみたわけですけれども、とにかくバージョンアップがつらい。かつ「初心者にやさしい!早く作れる!」みたいな喧伝のされかたをしていたのだけれども、全然初心者に優しくない(笑)。すごい時間かかった(笑)。しかも全然中身を理解していないところもたくさんあったし、まぁ、なんというか、rubyOnRailsの思想にはフルエタけれども、実際問題のところ、その恩恵に授かるまでの学習時間が思っていたよりも膨大だったので、勉強にナエタとでもいうべきでしょうか。
そんなこんなexpressの設計思想について妄想を巡らせていると、「あ、たぶんrubyOnRails的な思想に対するアンチテーゼなんだな」と勝手に思いいたったわけです。
どういうことかというと、RORは「ゴリゴリ機能追加して、ゴリゴリ規約追加(?)でスーパースピードでわっしょい開発、やっほい!」的な方向性(?)だとして、実際には機能が増えるにつけ、規約が増えるにつけ、学習コストは上がるので、開発コスト単体で見るとスピードアップになっているのかもしれないけれども、学習コスト+開発コストで考えると、それほどスピードアップになっているのかどうなのか、という問題がある。(ある、と言い切れるほどの確信がこれについてはある。なぜなら、自分がかじってみて実際に思ったから)
一方のexpressについては、「挙動わかってなんぼでしょ、最低限の機能だけ提供して、便利機能はrequireしてもらうことにして、ドンドン断捨離、ドンドンシンプルにするほうが学習コストも下がるじゃん?」的なノリを感じる。実際3→4になって分離された機能とかも多い。
まぁ、バージョンアップしたら、いろいろ面倒くさいしバージョンアップで動かなくなるとかはexpressもrubyOnRailsもかわんないから、バージョンアップ毎の学習コストの加算はフレームワークにつきものなのかもしれないけれども。それでもrailsのバージョンアップは複雑さが別の複雑さに変換されるようなイメージで、expressのバージョンアップが徹底した断捨離的なイメージ、っていう差。これはバージョンアップの学習コストが比較するとexpressのほうが低い気がして、より長く付き合っていけそうだなぁ、とそういう風に感じました。
とそんなざっくりしたお話でした。
正確なお話は知らないですが、まぁ、そんな風に感じている人もいるんだなぁ、と思ってもらう程度のことを書きました。おしまい
せっかくなので、簡潔にまとめると…
・
node.jsはCool!
さらにフレームワークはexpressがBetter.
expressのバージョンアップは断捨離スマートでさらにCool!
ゴリゴリ系フレームワークはnot so coolだからI do'n like such frameworks.