2012-02-24 3 views
43

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

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

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

У меня есть эти вопросы. Все говорят, что если вы создаете настольное приложение, пойдите с Sproutcore 1.x, для веб-приложения зайдите с Ember (ранее Sproutcore 2). Я думаю, что такое разделение не имеет смысла, разве они оба не предназначены для клиентской RIA? Единственное реальное различие для меня в том, что, хотя Ember легче работать, он все еще находится в разработке и пропускает множество функций. –

ответ

78

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

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

Вот что я кусочки:

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

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

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

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

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

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

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

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

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

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

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

Что такое будущее Sproutcore, где оно сейчас происходит?

Эта тема была в минутах, начиная со встречи последнего участника.

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

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

Является ли Эмбер развиваться, чтобы стать полной заменой для проросков?

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

+2

Фактически SproutCore был создан в компании Charles's Sproutit в качестве основы для своего продукта Mailroom еще в 2007 году, прежде чем Чарльз присоединился к Apple. Кроме этой маленькой детали, +1 штраф сэр. Хорошо написано. –

+0

Спасибо, за это исправление Рой. Я соответствующим образом обновляю ответ. –

+0

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

13

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

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

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

Так что интерпретируйте это как хотите.

3) Это отличный вопрос. Recently there was a meetup and several things were discussed. Ключевые моменты обсуждения стали:

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

Есть, вероятно, другие, что я пропустил

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

+0

Просто чтобы добавить быстрый пункт, в этот уик-энд для документации/веб-сайта «sprint» для SC исправить некоторые из сломанных вещей и помочь новым разработчикам быстро и быстро запускать нужные инструменты. Вы можете прочитать немного больше о спринте здесь: http://blog.sproutcore.com/sprint-towards-1-8-release/ –

+0

Так что я потратил немного времени на чтение узлов встречи и глядя на Blossom ... Blossom выглядит как правильное направление, но я обеспокоен запиской о том, что Blossom снизит возможности мобильных/сенсорных устройств, что вызывает тревогу у каждого, кто рассмотрит возможность отмены мобильной поддержки в 2012 году. Любые мысли о том, что происходит здесь, и если touch/mobile действительно поддерживаться в будущем sproutcore? –

+0

В настоящее время строятся инструменты, которые будут компилировать цветные приложения для запуска на любой платформе. Очевидно, что каждая платформа должна быть реализована индивидуально, но я думаю, что вы можете ожидать поддержки основных платформ довольно быстро. Из того, что я видел в IRC#blossom, эти инструменты будут доступны 1 апреля. Предостережение заключается в том, что поддержка времени выполнения потребует лицензирования. Я предлагаю вам отказаться от #blossom на freenode и начать задавать вопросы. Или попал в группу sproutcore google – hvgotcodes

Смежные вопросы