Sproutcore和Ember之间的区别

Tro*_*vey 43 sproutcore ember.js

在Ember从sproutcore分叉之前,我选择了sproutcore作为框架.我不确定哪条路可走,而且由于碎片造成的工作明显稀释而有点沮丧 - 因为很少会导致更好的事情.Sproutcore 2.0(现在的Ember)的努力似乎正朝着模块化和重用其他javasript组件(jQuery)的正确方向发展,但是从外部观点来看,为什么这两个努力必须分裂......才能真正不清楚...我们有模块化代码和小部件库模块吗?

主要问题是:

  1. 这两项努力之间的有效区别是什么?
  2. 分裂的历史是什么?
  3. 什么是sproutcore未来,它现在在哪里?
  4. Ember会发展成为sproutcore的完全替代品吗?

Luk*_*lia 80

作为一个同时拥有Sproutcore应用程序和Ember应用程序的人,我会接受你的问题(为了清晰起见,我们会重新订购).所有这些都是我在没有内部知识的情况下观察到的.有点推测,所以我在这个答案上启用了wiki模式,这样更有见识的人可以纠正细节.

分裂的历史是什么?

以下是我拼凑的内容:

SproutCore由Charles Jolley的公司Sproutit创建,作为2007年Mailroom产品的基础.Jolley后来加入了Apple,Sproutcore用于构建Mobile Me的原始Web应用程序.我们的任务是重新创建像Mac和iCal这样的Mac应用程序的体验,而今天使用iCloud继续在Sproutcore上继续努力.

Jolley离开Apple并在旧金山成立了一家名为Strobe的公司,其愿景部分是利用Sproutcore.Strobe的团队认为Sproutcore不能很好地适应许多Web 2.0用例,并且对于开发人员来说太过于一个全有或全无的命题,所以他们开始向Sproutcore 2努力.Sproutcore 2的目标是模块化,以及更多HTML感知方法,让所有Web开发人员都能更方便地访问这些方法.Backbone的早期牵引力是此分析的一部分.

在努力将Sproutcore代码库转向这一愿景之后,Strobe团队决定从Sproutcore 2(内部代号为Amber)开始.Charles编写了核心Run Loop和键值观察器代码.Yehuda Katz和Tom Dale是该项目的Strobe开发者.当时的愿景是Strobe和社区最终将Sproutcore 1.x的大多数特性和功能移植到Sproutcore 2.

Strobe的业务努力没有产生希望的结果,公司权衡其选择权,最终决定通过Facebook收购Strobe人才.在此之前,包括Katz和Dale在内的一些Strobe员工分拆成了一家名为Tilde的新公司.

波浪号决定继续开发了SproutCore 2,但更改名称(以Amber.js然后Ember.js)和项目的目标.他们放弃了与Sproutcore向后兼容的长期目标.他们放弃了对任何类型的视图小部件库的支持,并专注于HTML/CSS用例,并将数据绑定与Handlebars模板语言紧密集成.

自从Strobe解散以来,Sproutcore 1.x的管理工作已经从Jolley转移到Tyler Keating,社区已经重新关注清理Sproutcore 1.x,当Sproutcore 2的想法出现时,它已经有一段时间处于一个不舒服的地方迫在眉睫.

这两项努力之间的有效区别是什么?

项目的相似之处在于它们具有非常相似的对象模型.它们也有类似的属性,观察者和绑定系统.

Sproutcore包括一个视图小部件库,如工具栏,列表视图,网格视图,按钮和主题系统,以及通过Javascript定义视图层和由库管理的绝对定位.它非常强大,可以在Web上创建桌面风格的应用程序.

Ember占地面积较小.它与Handlebars紧密集成.对于许多项目来说,它是Backbone的替代品.它旨在为客户端应用程序提供标准的应用程序架构,并消除样板代码.

这些差异可能会导致框架出现分歧,尽管已经考虑采用相同的核心.在那种情况下,Sproutcore将使用Ember的"金属"库和其他核心库.

什么是Sproutcore的未来,它现在在哪里?

这个帖子距离最近的贡献者的聚会还有几分钟的时间.

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

短期路线图的重点是巩固营销材料,演示和代码库.该团队最近发布了Sproutcore Showcase.有一个关于更换方丈,Ruby的构建工具SproutCore的,有一个Javascript(node.js的)的解决方案,这是目前正在积极发展普遍共识.还希望减少来自Apple等公司和更频繁发布的代码的"大"合并.最近发布了Sproutcore 1.8.

Ember会发展成为sproutcore的完全替代品吗?

不见得.Ember核心团队已明确表示他们无意亲自开发这些缺失的功能.社区成员可能将这些项目作为单独的项目开发 - flame.js是迄今为止最雄心勃勃的尝试.Ember的设计选择使其更容易与jQuery UI等项目集成,因此完全替换可能需要也可能不需要.

  • 实际上SproutCore是在查尔斯公司Sproutit创建的,作为他们Mailroom产品的基础,早在2007年Charles加入Apple之前.除了那个小细节,+1精细先生.写得很好. (3认同)

hvg*_*des 13

1)官方线是Sproutcore用于RIA,Ember.js用于"网络风格"应用程序.所以,当你看到iCloud时,想想Sproutcore,当你看到Twitter时,就会想到Ember.js.

从技术角度来看,Ember.js专注于更加模块化的代码和所谓的视图"语义模板".Sproutcore更加单一.

2)我不确定是否有人真的知道.如果看一下时间表,Charles Jolley就离开了Apple,成立了一家名为Strobe的公司,该公司开发了一个用于应用程序开发的全栈平台.Strobe聘请了Yehuda Katz和其他人,他们开始致力于减肥SC,以便在移动设备上运行得更好.大约一年后,Yehuda离开了公司Tilde公司,一个月后,Facebook以广泛认为的人才收购方式收购了Strobe.

所以按照你的意愿解释.

3)这是一个很好的问题. 最近有一次聚会,讨论了几件事.讨论的要点是:

  • SC仍然活着并且踢
  • 改进文档(我们已​​经听到了一段时间).
  • 保留好的部分是在SC2的开发中引入的代码,并摆脱或移动到可选模块的其他东西(如模板)
  • 新的基于JavaScript的构建工具
  • 全新的基于画布的视图层,称为Blossom.
  • SC的某种基础/企业支持

可能还有其他我错过了

4)绝对不是替代品,虽然你可以使用任何框架来构建任何应用程序(毕竟这是所有的javascript).