Подтвердить что ты не робот

Различия между Sproutcore и Ember

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

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

  • Каковы эффективные различия между этими двумя усилиями?
  • Что такое история раскола?
  • Что такое будущее sproutcore, где он сейчас идет?
  • Будет ли Ember развиваться, чтобы стать полной заменой sproutcore?
4b9b3361

Ответ 1

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

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

Вот что я собрал вместе:

SproutCore был создан компанией Charles Jolley 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 и ключевой код наблюдателя. Yehuda Katz и Tom Dale были ведущими разработчиками 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 и абсолютное позиционирование, управляемое библиотекой. Он очень эффективен для создания настольных приложений в Интернете.

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

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

Что такое будущее 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, поэтому полная замена может быть или не понадобиться.

Ответ 2

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).