Node.js系のWebアプリケーションフレームワーク「Meteor」の1.0がリリースされました。
Meteorがどんなものかについては、こちらのGihyo.jpさんのチュートリアル記事をご覧ください(内容古いけど)
http://gihyo.jp/dev/serial/01/meteor
いや、このMeteorの潜在能力はRails以上です。
・全てをJavaScriptで書け、ある程度のコードをクライアント・サーバー両方から使える。
・サーバー・クライアントのデータが何もしなくても同期される。あるクライアントのデータ変更はすぐにサーバーを介して他のクライアントに(数百ミリ秒くらいで)反映される。
・完全にフルスタック
最近では、RailsのようなWebアプリケーションフレームワークを、永続化層(O/Rマッピング)、アセットパイプライン(CSSやJSの結合・圧縮)としてのみ使用し、描画・インタラクション周りはAngular.jsやEmber.jsのようなJavaScript MVCフレームワークが担当。このJS MVCフレームワークが、サーバーサイドをJSON APIで叩いてデータのやり取りをする、というのがトレンドになりつつありました。
しかし、よくよく考えるとこの組み合わせってすごい複雑で無駄が多いことも事実です。
Railsを例に挙げれば、Rails本来のViewやらController、Routingはほぼ使わないことになりますし、RailsのアセットのJavaScriptのディレクトリ階層に、JavaScript MVCライブラリの深いディレクトリ階層が展開するという、なんかすっごい見づらい構成です。
それに、RailsやPHPフレームワークなどの作法と、Angluar、Ember.jsなどのJS MVCフレームワーク、それぞれ言語も違いますし作法も思想も全く別分野のものです。それぞれの部分をいじるたびに、頭のスイッチを切り替えないといけません。これがまた意外としんどい。
メンテナンス性もおそらく悪いでしょう。開発している本人はいいですが、他の人が引き継いだ時に果たしてすんなり理解できるのかどうか。
ところが、Meteorならそんなムダはなく、全ての部分を同じ作法・思想・言語で作ることができるわけです。
しかも、最近はやりの(っていうかMeteorなどが切り開いたと言えますが)リアクティブなWebサービスを容易に実現できる。
これを、Rails以来の革新と言わずしてなんといいましょうか。
というわけで、私が開発しているRPG開発Webサービス「WebRPGツール」。
今までRails+Ember.jsで開発してきましたが、Meteorで作りなおそうと思います!!
いや、Ember.jsにもComputed Propertiesとか、便利な機能があるので、部分的にはEmberとか使いますけどね。でも基本はMeteor。
すでにこれで3回目の作り直しになるんですが、それでもなんだろう。このMeteorをいじっていると、モチベーションが下がるどころか上がっていくw
ま、WebRPGツールについては、生暖かく今後の経過を見守ってくださいw
それより、皆さんMeteorのヤバさをもっと知るべきだと思います。そんなMeteor作ったTom氏らまじすげぇ。頑張れ。これからも頑張れいや頑張ってください応援してます( `・∀・´)ノ
Ruby on RailsからMeteor.jsに乗り換え!!
コメントはまだありません。