Различия между Sproutcore и Ember - PullRequest
43 голосов
/ 24 февраля 2012

Я выбрал sproutcore в качестве основы прямо перед тем, как Ember разветвился от sproutcore.Я остаюсь неуверенным в том, каким путем идти, и немного расстроен из-за очевидного ослабления усилий, вызванных фрагментацией, - как это редко бывает, что приводит к лучшему.Усилия Sproutcore 2.0 (теперь Ember), казалось, шли в правильном направлении модульности и повторного использования других компонентов javasript (jQuery), однако из внешней точки зрения действительно неясно, почему эти два усилия пришлось разделить ...t у нас есть модульный код и модуль библиотеки виджетов?

Основные вопросы:

  1. Каковы эффективные различия между этими двумя усилиями?
  2. Чтоистория раскола?
  3. Что такое будущее прорастания, куда оно идет сейчас?
  4. Идет ли разработка Ember, чтобы полностью заменить росток?

Ответы [ 2 ]

80 голосов
/ 24 февраля 2012

Как кто-то, у кого есть приложение Sproutcore и приложение Ember, близкое к производственному запуску, я постараюсь ответить на ваши вопросы (для ясности переупорядочен). Все нижеприведенное - это то, что я наблюдал без внутреннего знания. Отчасти это предположение, поэтому я включил режим wiki для этого ответа, чтобы более информированные люди могли исправить детали.

Что такое история раскола?

Вот что я собрал:

SproutCore был создан компанией Sproutit Чарльза Джолли в качестве основы их продукта Mailroom в 2007 году. Позже Джолли присоединилась к Apple, а Sproutcore использовался для создания оригинальных веб-приложений для Mobile Me. Мандат состоял в том, чтобы воссоздать опыт приложений Mac, таких как Mail и iCal, и эта работа продолжается в Sproutcore сегодня с iCloud.

Джолли покинул Apple и основал компанию под названием Strobe в Сан-Франциско, которая частично планировала использовать Sproutcore. Команда из Strobe решила, что Sproutcore недостаточно хорошо подходит для многих сценариев использования Web 2.0, и это было слишком сложным предложением для разработчиков, поэтому они начали работу над Sproutcore 2. Целями Sproutcore 2 были модульность. и более ориентированный на HTML подход, который был бы более доступным для веб-разработчиков во всем мире. Ранняя тяга позвоночника была частью этого анализа.

После попытки переместить кодовую базу Sproutcore к этому видению, команда Strobe решила начать все заново с Sproutcore 2 (внутреннее кодовое имя Amber). Чарльз написал ядро ​​Run Loop и код наблюдателя значения ключа. Иегуда Кац и Том Дейл были ведущими разработчиками Strobe в проекте. В то время предполагалось, что Strobe и сообщество в конечном итоге перенесут большинство функций и возможностей с Sproutcore 1.x на Sproutcore 2.

Деловые усилия Strobe не дали ожидаемых результатов, и компания взвесила свои варианты, в конечном итоге решив приобрести талант Strobe в Facebook. До того, как это произошло, несколько сотрудников Strobe, включая Каца и Дейла, разошлись, создав новую компанию под названием Tilde.

Тильда решила продолжить разработку Sproutcore 2, но изменила название (на Amber.js, а затем Ember.js) и цели проекта. Они отказались от долгосрочных целей обратной совместимости с Sproutcore. Они отказались от поддержки библиотеки виджетов любого вида и сосредоточились на сценарии использования HTML / CSS с тесной интеграцией привязки данных с языком шаблонов Handlebars.

После роспуска Strobe управление Sproutcore 1.x перешло от Джолли к Тайлеру Китингу, и сообщество вновь сосредоточилось на очистке Sproutcore 1.x, которая некоторое время находилась в неудобном месте, когда идея из Sproutcore 2 вырисовывался.

Каковы эффективные различия между двумя усилиями?

Сходство в проектах заключается в том, что они имеют очень похожие объектные модели. Они также имеют сходные свойства, системы наблюдения и привязки.

Sproutcore включает в себя библиотеку виджетов представлений, таких как панели инструментов, представления списков, виды сетки, кнопки и систему тем, и акцент на определении слоя представления с помощью Javascript и абсолютного позиционирования, управляемого библиотекой. Это очень мощный инструмент для создания приложений в стиле рабочего стола в Интернете.

Ember имеет меньшую площадь. Он имеет тесную интеграцию с рулем. Это альтернатива Backbone для многих проектов. Он направлен на обеспечение стандартной архитектуры приложений для клиентских приложений и устранение стандартного кода.

Эти различия, вероятно, приведут к расхождению рамок, хотя было принято решение принять то же ядро. В этом сценарии Sproutcore будет использовать «металлическую» библиотеку Эмбера и, возможно, другие основные библиотеки).

Каково будущее Sproutcore, куда оно идет сейчас?

В этой теме есть минуты от встречи недавнего участника.

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

Краткосрочная дорожная карта состоит в том, чтобы сосредоточиться на консолидации маркетинговых материалов, демонстраций и кодовой базы.Команда недавно выпустила Sproutcore Showcase .Существует общее мнение о замене abbot, инструментов сборки Ruby для Sproutcore, решением на основе Javascript (node.js), которое сейчас находится в активной разработке.Существует также желание меньше «больших» слияний кода от таких компаний, как Apple, и более частых выпусков.Sproutcore 1.8 был недавно выпущен.

Будет ли разработка Ember полной заменой sproutcore?

Маловероятно.Основная команда Ember ясно дала понять, что не намерена лично разрабатывать эти недостающие функции.Возможно, что члены сообщества могут разработать их как отдельные проекты - flame.js - самая амбициозная попытка на данный момент.Выбор дизайна Ember облегчает интеграцию с такими проектами, как jQuery UI, поэтому полная замена может или не может быть необходимой.

13 голосов
/ 24 февраля 2012

1) Официальная строка Sproutcore предназначена для RIA, а Ember.js - для приложений в веб-стиле.Поэтому, когда вы смотрите на iCloud, думайте о Sproutcore, а когда вы смотрите на Twitter, думайте о Ember.js.

С технической точки зрения Ember.js ориентирован на более модульный код и так называемые «семантические шаблоны» для представлений.Sproutcore более монолитен.

2) Я не уверен, что кто-то действительно знает.Если вы посмотрите на график, Чарльз Джолли покинул Apple, чтобы создать компанию под названием Strobe, которая разработала платформу полного стека для разработки приложений.Строб нанял Йехуду Каца и других, которые начали работать над уменьшением веса SC, чтобы он лучше работал на мобильных устройствах.Примерно через год Иегуда ушел, чтобы основать компанию Tilde, а через месяц после этого Facebook купил Strobe, что широко считается приобретением талантов.

Итак, истолковывайте это как хотите.

3) Это отличный вопрос. Недавно состоялась встреча и обсуждалось несколько вещей .Обсуждались следующие ключевые моменты:

  • SC все еще жив и пинает
  • Улучшение документации (мы слышали это некоторое время).
  • Сохраните хорошие части кода, который был представлен после 1.4.5 при разработке SC2, и избавьтесь от других модулей (например, шаблонов) или переместите их на дополнительные модули
  • новые инструменты сборки на основе javascript
  • совершенно новый слой вида на основе холста, называемый Blossom.
  • Какая-то основа / корпоративная поддержка для SC

Возможно, есть и другие, которые я пропустил

4) Определенно не замена, хотя вы можете использовать любой фреймворкпостроить любое приложение (это все JavaScript, в конце концов).

...