日本でもリリースされた 2012 年にはすこし盛り上がってた様子で、2013 年の 4 月には東京で Meetup があったようです。しかし現在、検索できる形で観測する限りユーザは増えておらずもったいないな〜思い“Meteor の今”についてこの記事でアピールしていこうと思います。
まず、日本語で Meteor について検索してみると辿り着くおすすめ記事三本
- 体感!JavaScript で超速アプリケーション開発 -Meteor 完全解説:連載| gihyo.jp … 技術評論社
- 「Meteor」は、JavaScript/HTML で開発するリアルタイム Web アプリケーション基盤。何が起きているのかすぐに分からないほどすごい - Publickey
- Meteor.js - naoya のはてなダイアリー
そしてこの記事では、naoya さんの当時の Meteor に対しての“まだ微妙なところ”を引用しつつ現在 0.6.4 はどう変わったのかという話しにしたいと思います。
前提としておそらく当時のバージョンは 0.4.1 より低いと思われます。
以下、Meteor.js - naoya のはてなダイアリーからの引用
“できたばかり” という感じは否めない。たとえば Minimongo によるモデルには認証の仕組みが全くない。Minimongo はクライアントサイドで操作もできる上にそれがサーバサイドにも反映される。なのに認証がない = アプリケーションに保存された全データをクライアントでいじり放題、ブラウザの Console からでも操作できる。つまり、まだまともなデータベースアプリケーションを作れるフェーズではない (認証がない点については、ドキュメントにもそう書いている)。 認証だけでなく、そもそも Minimongo の機能がちょっと少ない。
Meteor 0.5.0より認証機構が用意され
Meteor.allow
と
Meteor.deny
によって権限のコントロールが可能になりました。通常のパスワード登録に加え、Google、Twitter、Facebook、GitHub などの oauth のパッケージも追加され
{{loginButtons}}
とテンプレートに記述するだけでユーザ認証が可能になりました。
Reactive Programming しようとすると、モデルの操作含めクライアントサイドにコードが集中していってサーバサイドではほとんど何もしないということが多い。それはそれで一見良いようで、そうするとせっかくバックエンドに node.js が控えているのに、node_modules をうまく活用できなかったりする。例えばモデルから find() で引っ張ってきたデータの加工に md5 な処理を加えよう・・・サーバサイドだったら md5.js を npm install して require すればいいところ、実はクライアントサイドにコードを書いているのでそういうわけにいかない。モジュール開発が活発な node という一番良いところがスポイルされてしまっている
Meteor 0.6.0から Meteor のパッケージ側からは NPM を
Npm.require
で利用できるようになったようです。さらに 2013/6/15 にComplete NPM integration for Meteor - MeteorHacksでユーザ側からもりようになりました。
「しょうがないので md5.js とかインターネットで見つけてきて script タグで読み込ませるか・・・」と思っても、Dirty Hack なしでうまくそれを実現できる方法がない。そういう細かいところの作り込みがまだまだ。この辺は時間が解決するとは思うけれども。
上記の通り解決されたと思われます。
Reactive な要件を満たすためにもフルスタックにしているんだろうというのはなんとなく想像できるのだけれど、たとえば npm ではないパッケージ管理システムを自前で持っていたり (その分、フレームワークによりモジュールを簡単に統合できるようになっているのだけど)、Minimongo しかり、さすがにいろいろ作りすぎている。この作り込み具合でまともにプロダクションで利用できるレベルを維持しようとすると、開発コミュニティが相当活発になる必要があってそこは結構リスクだと感じる
これは今でも続いている問題だと思います。しかし、ソフトウェア開発がホットな投資対象: JavaScript フレームワーク Meteor に Andreessen Horowitz が$11.2M | TechCrunch Japanという話もありとりあえずは大丈夫なのかと。
以上、引用とコメント終わり。
と言うことで、Meteor はかなり使える状況に近づいてきたとおもいます。一年前に触ってそれっきりの方も、これから触ってみようと言う方もMeteor 楽しいですよ!
おしらせ
日本語でも Meteor について雑談がしたい思い、なかったので Meteor の日本語ユーザコミュニティを作ってみました。ぜひご参加ください。Meteor JP - Google+