web-dev-qa-db-ja.com

SproutcoreとEmberの違い

Ember sproutcoreから分岐した直前にフレームワークとしてsproutcoreを選択しました。どちらに進むべきかわからず、断片化によって引き起こされた明らかな努力の希釈に少し苛立っています-まれにSproutcore 2.0(現在のEmber)の取り組みは、他のjavasriptコンポーネント(jQuery)のモジュール化と再利用の正しい方向に進んでいるようですが、2つの取り組みがなぜ分割...モジュールコードとウィジェットライブラリモジュールも使用できませんか?

主な質問は次のとおりです。

  1. 2つの取り組みの効果的な違いは何ですか?
  2. 分割の歴史とは何ですか?
  3. Sproutcoreの将来とは何ですか?
  4. Emberはsproutcoreの完全な代替品として開発される予定ですか?
44
Troy Harvey

SproutcoreアプリとEmberアプリの両方が本番リリースの近くにいる人として、私はあなたの質問を試します(わかりやすくするために並べ替えました)。以下のすべてが私は内部の知識なしで観察しましたが、それは推測に過ぎないので、この回答でwikiモードを有効にして、より知識のある人々が詳細を修正できるようにしました。

分割の履歴とは

これが私がつなぎ合わせたものです:

SproutCoreは、2007年にMailroom製品の基礎としてCharles Jolleyの会社Sproutitによって作成されました。Jolleyは後にAppleに参加し、Sproutcoreを使用してMobile Meの元のWebアプリを構築しました。その使命は再作成です。 MailやiCalなどのMacアプリのエクスペリエンス、そしてその取り組みは今日でもiCloudを使ってSproutcoreで継続されています。

JolleyはApple=を去り、Sproutcoreを活用することを部分的に視野に入れて、サンフランシスコでStrobeと呼ばれる会社を設立しました。Strobeのチームは、Sproutcoreが多くのWeb 2.0ユースケースに十分適合しないと判断し、 Sproutcore 2への取り組みは、開発者にとって全か無かの命題でありすぎたため、Sproutcore 2の目標はモジュール性であり、あらゆるHTMLを意識したアプローチであり、あらゆる場所のWeb開発者にとってよりアクセスしやすいものでした。牽引力はこの分析の一部でした。

Sproutcoreコードベースをこのビジョンに向けて動かすのに苦労した後、ストロボチームはSproutcore 2(内部コードネームAmber)から新たに始めることを決定しました。チャールズは、コアの実行ループとキー値オブザーバーコードを記述しました。イェフダ・カッツとトム・デイルは、プロジェクトの主要なストロボ開発者でした。当時のビジョンは、ストロボとコミュニティが最終的にSproutcore 1.xからSproutcore 2にほとんどの機能を移植することでした。

ストロボ事業の努力は期待通りの結果をもたらさず、同社はその選択肢を検討し、最終的にフェイスブックによるストロボの才能の買収を決定しました。これが起こる前に、KatzとDaleを含む多くのStrobe従業員が分割して、Tildeという新しい会社を設立しました。

TildeはSproutcore 2の開発を継続することを決定しましたが、プロジェクトの名前(Amber.js、次にEmber.js)と目標を変更しました。彼らはSproutcoreとの後方互換性という長期的な目標を落としました。彼らはあらゆる種類のビューウィジェットライブラリのサポートを廃止し、データバインディングとHandlebarsテンプレート言語との緊密な統合によるHTML/CSSユースケースに焦点を当てました。

Strobeの解散以来、Sproutcore 1.xの管理はJolleyからTyler Keatingに移り、コミュニティはSproutcore 1.xのクリーンアップに再び焦点を当ててきました。迫り来る。

2つの取り組みの効果的な違いは何ですか?

プロジェクトの類似点は、非常に類似したオブジェクトモデルを備えていることです。彼らは同様の特性、オブザーバー、バインディングシステムも持っています。

Sproutcoreには、ツールバー、リストビュー、グリッドビュー、ボタン、テーマシステムなどのビューウィジェットのライブラリが含まれており、JavaScriptを介してビューレイヤーを定義し、ライブラリによって管理される絶対位置に焦点を当てています。 Webでデスクトップスタイルのアプリを作成するのに非常に強力です。

Emberの設置面積は小さくなります。ハンドルバーとの緊密な統合が特徴です。これは、多くのプロジェクトでバックボーンに代わるものです。クライアント側のアプリに標準のアプリケーションアーキテクチャを提供し、ボイラープレートコードを排除することを目的としています。

同じコアを採用することについていくらか検討されてきましたが、これらの違いはフレームワークの分岐につながる可能性があります。そのシナリオでは、SproutcoreはEmberの「メタル」ライブラリとおそらく他のコアライブラリを使用します。

Sproutcoreの将来はどのようになり、今どこに行くのですか?

このスレッドには、最近の寄稿者のミートアップからの議事録があります。

https://groups.google.com/group/sproutcore/browse_thread/thread/aacf00a6047a866e#

短期的なロードマップは、マーケティング資料、デモ、コードベースの固化に焦点を当てることです。チームは最近 Sproutcore Showcase をリリースしました。修道院長、Rubyビルドツール、Sproutcore用のビルドツール)をJavascript(node.js)ベースのソリューションに置き換えることについては一般的なコンセンサスがあり、現在活発に開発が進められています。 Appleおよびより頻繁なリリースなどの企業からのコードの「大規模な」マージ。Sproutcore1.8が最近リリースされました。

Is Ember sproutcoreの完全な代替品として開発される予定ですか?

ありそうもない。 Emberコアチームは、不足している機能を個人的に開発する意図がないことを明確にしています。コミュニティのメンバーがそれらを個別のプロジェクトとして開発する可能性があります flame.js これまでで最も野心的な試みです。Emberの設計の選択により、jQuery UIなどのプロジェクトとの統合が容易になるため、完全な置き換えが必要な場合と必要でない場合があります。

81
Luke Melia

1)公式行は、SproutcoreはRIAを対象としており、Ember.jsは「Webスタイルの」アプリケーションを対象としています。したがって、iCloudを見るときはSproutcoreを、Twitterを見るときはEmber.jsを考えてください。

技術的な観点から見ると、Ember.jsはよりモジュール化されたコードに焦点を合わせており、ビューの「セマンティックテンプレート」と呼ばれています。 Sproutcoreはよりモノリシックです。

2)誰もが本当に知っているかどうかはわかりません。タイムラインを見ると、Charles JolleyはApple=を辞めて、アプリケーション開発用のフルスタックプラットフォームを開発したStrobeという会社を設立しました。Strobeは、痩身に取り組み始めたYehuda Katzや他の人を雇いましたダウンSCモバイルデバイスでより適切に実行できるようになります。約1年後、YehudaはTildeという会社を設立し、その1か月後にFacebookがStrobeを買収し、才能の獲得と広く見なされています。 。

だから、あなたがそうするようにそれを解釈してください。

3)これはすばらしい質問です。 最近、交流会があり、いくつかのことが議論されました 。議論された重要なポイントは次のとおりです。

  • SCはまだ生きていて蹴っている
  • ドキュメントを改善します(これはしばらく聞いていました)。
  • SC2の開発で1.4.5以降に導入されたコードを適切な部分に保ち、オプションのモジュール(テンプレートなど)を取り除くか移動します。
  • 新しいJavaScriptベースのビルドツール
  • blossomと呼ばれる完全に新しいキャンバスベースのビューレイヤー。
  • SCのある種の財団/企業の支援

おそらく私が逃した他のものがあります

4)間違いなく代替品ではありませんが、任意のフレームワークを使用して任意のアプリを構築できます(結局のところ、すべてJavaScriptです)。

13
hvgotcodes