紹介Meteorの比較対象としてはMEANスタックが合っていますが、その比較記事を紹介します。原文はこちら導入まず初めに「MEAN」という名のスタックは存在しないということです。Node.jsの頭文字であり、それらを合わせて使うということでしかないです。Meteorは完全なプラットォーム(フレームワークと多くのユーテリティ)です。Meteorが標準で与えるものMeteorは標準で多くの機能を与えてくれます。クライアントとサーバはシームレスに通信し、何もコードを書かなくても自動更新してくれます。MEANは4つが一緒になっただけで何もシームレスではありません。APIとその呼び出しをすべてコーディングしなければなりません。これらは基本的なWebアプリを動かすのに必要ですが、Meteorではこれらに加えてさらに、ホットコードリロードやモバイル開発、リアクティブテンプレート、セッション管理、クライアントサーバ共通のパッケージが標準でついてきます。APIを使ってデータを要求しますが、Meteorではsubscribeすると更新のたびにデータが自動でWebSocket経由で送られてきます。Meteorではクライアントとサーバで同じAPIを使うためフルスタックアプリケーションを開発するのが容易です。MEANスタックの場合は、クライアントとサーバは分離しているためそのようには行きません。コールバック地獄なしMeteorのサーバサイドはNode.js上で動きますが、Fibersを使ってcallbackを省略できるようにしています。Methodを使うことでコールバックだけでなくPromiseも省略できています。Rauchは「リッチWebアプリケーションの7原則」という記事を書きました。彼はトークもしています。サーバでのページ生成は任意ではないユーザの入力に瞬時に動作するデータの変更に反応するサーバでのデータ変換を制御する履歴をこわさず、活用するコードの変更を反映させる人の行動を予測するMeteorは2,3,4,6を実装しています。1と5はパッケージによってサポートされています。7はフレームワークの仕事ではないでしょう。一方で、MEANスタックはこれらの一部を実現するSocket.IOを組み込む手間がかかります。Meteorはすべてをつないでいるのにです。Meteorはまたツールチェインを持ち、Coffeescriptのコンパイルやファイルの結合およびminifyを実現します。ファイルを保存してから数秒でブラウザが更新されるのです。これは上記6に対応したホットコードプッシュのおかげです。accounts-facebookというパッケージを使うとテンプレートに一行追加するだけで、Facebook認証の機能を使うことができます。他にも多くのパッケージがあります。Meteorでは一つのコマンドでアプリをデプロイすることができます。実はそうでもないんです。MeteorのシンプルさのおかげでMeteorはAngular一つを学ぶより簡単です。多くの人がAngularは学ぶのが大変で挫折すると言っています。Meteorはその基本を一時間で学ぶことができます。公式チュートリアルを試してみてください。公式ドキュメントもよく書かれています。それに対してMEAN.ioのドキュメントは話になりません。MEAN.JSのドキュメントには次のように書かれています。Node.jsのドキュメントを読んだら、MEAN.JSのドキュメントに進みましょう。Meteorのチュートリアルが一時間で終わるのであれば、それを試してからMEAN.ioやMEAN.JSを参照してもよいくらいでしょう。製品アプリを作るのであればMeteorでもMongoDBの知識を学ぶ必要があります。当初はそれは必要ではありません。MeteorのドキュメントはよくあるMongoDBの使い方を説明しているからです。コミュニティMeteorはすべてが一つに詰まっているため、情報検索にも有利です。MEANスタックはMEAN.ioとMEAN.JSのどちらを選ぶかから始めなくてはなりません。詳しくは、分離の理由やStackOverflowを参照してください。これによりGitHubスターは6000と2000程度に分断されました。Meteorは23000です。StackOverflowではmeteorは10000の質問がありますが、mean,mean.io,meanjsを合わせても1100だけです。Meteorも参照してください。いうときにMeteorを使うべきではないか他のツールでもあるように、Meteorが適さない場面もあります。Meteorでも説明がありますが、MEANスタックが適する場面を見てみましょう。ほとんどのアプリの機能をMEANスタックで書いている場合。Meteorは追加メリットをもたらしますが、移行コストとの兼ね合いになるでしょう。APIのみを用いてサービスを作り、クライアントが不要な場合。Meteorはクライアント-サーバのプラットフォームですから。開発するWebアプリにリアルタイム性がまったくいらない場合。リアルタイム性を実現するにはメモリとCPUのコストがかかります。WebアプリではなくWebサイトを作る場合。最初のページをできる限り速く表示したい場合。(プロトタイプをできる限り速く作りたいわけではなく)現時点で数百万人のユーザにスケールさせる必要がある場合。結論これまでの経験から、Meteorは生産性が高いだけでなく、調査コストも下げました。アドバイスとしては、Meteorがいい選択肢かどうか「考える」のではなく、チュートリアルを一時間かけてやってみて、それからMEANスタックを調べて、どちらがよいか決めましょう。感想だいぶMeteor推しで、やりすぎ感(不公平感)もありますが、まず触ってから考えようというアドバイスは同意できます。Meteorを使わない方がよいシーンの説明は逆に使えるシーンが明確になって分かりやすいと思いました。1.2からReactとAngularのサポートが追加されましたが、標準のビューであるBlazeも根強い人気を持っています。機能面で見るとReactやAngularに見劣りする点もあるかもしれませんが、Blazeにも期待したいです。Meteorのブログにはしばしば参考になることが書いてあります。nowの記事を紹介します。この記事では今Meteorを学ぶのがよいという主張でその理由をいくつか述べています。ほんの数秒で開始できるインストールは手順に従えばすぐにできます。