除了语言差异之外,在您的体验中,Cappuccino与SproutCore相比,还有Javascript与Objective-J相比有什么好处?
从长期的预测来看,SproutCore是否比Cappuccino更受“支持”,因为它得到了Apple的支持?
我试图在两者之间进行选择。我对JavaScript和Objective-C都很熟悉。
最佳答案
这是一个有趣的问题,并且在各种消息组,Twitter甚至IRC上经常弹出。有两种方法可以评估SproutCore和 Cappuccino ,但是,也许人们看到的一些直接特点如下:
1)各自的功能集
2)易于使用
3)社区支持和文件
让我们看一下第一点-那里有各自的功能集。通过“功能集”,有几种方法可以查看它。从它们拥有的UI小部件的数量来看;将事物连接在一起并与某种后端进行通信的基础支持;框架的一般架构方法,虽然不一定是“功能”,但仍然很重要;是的,甚至是您可以使用的语言。
关于语言,我认为不要忽略正在使用的内容(JS与Obj-J),这一点很重要。为什么?因为采用和您来自哪里。 SproutCore是从JavaScript确实是Web语言的 Angular 出发的,因此它是您用来对框架进行编程的工具。 JavaScript缺乏语言OO完整性(正确的对象-对象继承等)的地方,它可以在框架中弥补(例如MyApp.Foo = SC.Object.extend({...}))。 Cappuccino 从另一个 Angular 出现。他们使用Obj-J作为JS的主要语言增强功能,以注入(inject)JS缺少的语言功能。而不是将这些语言功能直接注入(inject)到框架(Cappuccino)本身。当然,正如Cappuccino上的人们之前所说的那样,您仍然可以使用JS对Cappuccino进行适当的编程,但是,那么您会错过Obj-J提供的功能。 Cappuccino 社区的注意事项:如果我写错了,请指正:-)。最后,如果您是已经熟悉Obj-C的人,那么Obj-J可能会更适合您。嘿,甚至Sony显然现在也跳上了整个Obj-C潮流,以针对他们的移动平台:-P进行开发。
着眼于这两个框架的架构,他们都以一种或另一种形式着眼于苹果公司的Cocoa框架,以提供指导/灵感。 Cappuccino 充分考虑了 cocoa ,并基本上移植了 cocoa API。同样,如果您来自使用Cocoa在Apple中开发应用程序,那么您可能会感到宾至如归。另一方面,SproutCore从 cocoa 中汲取了灵感,感觉很不错。至于纯架构,它们都遵循MVC,它们都使用Cocoa样式的绑定(bind),都有数据存储机制,并且都有各自的呈现和组成UI窗口小部件/ View 的样式。
在我看来,呈现 View 是一个特定的重要领域。这两个框架都有一定程度的抽象,以使您不必直接处理CSS和HTML,即使最终他们必须渲染Web浏览器最终理解的内容。
在 Cappuccino 方面,他们完全从您那里提取了CSS和HTML。取而代之的是,您使用框架的各种呈现原语来“绘制” View 。由于这种抽象水平,Cappuccino可以利用现有的最佳呈现方法,而不必在某种程度上将CSS和HTML与您联系起来。
至于SproutCore,可以这么说,您正在更接近“金属”。在进行 View 的纯呈现时,您将使用提供一定程度抽象的呈现上下文对象,但是最终,您将直接注入(inject)HTML并添加类名以应用CSS。即使在渲染 View 并且想要基于事件来操纵 View 的某些部分之后,也可以直接访问DOM元素并操纵它们的属性。取决于您来自哪里,这似乎是好事还是坏事。对于那些习惯使用CSS和HTML并喜欢对 View 的呈现和样式进行更直接控制的人来说非常有用。如果要基于浏览器允许的最佳渲染方法来通用地渲染 View (HTML/CSS,SVG,HTML5 Canvas 等),则不好。但是请注意, future 有计划使SproutCore具有更抽象的呈现方法,但是如果您愿意的话,仍然允许您直接使用HTML和CSS。因此,您最终将获得两全其美的体验。
现在,关于库存UI窗口小部件/ View ,这两个框架都附带了-为了让您开始工作,它们都有很多现成的功能。按钮,标签,列表,分段 View ,单选按钮,滚动条等-它们都在那里。因此,可以肯定地说您在两个营地中都很好。
一直追溯到现在,让我们讨论易用性。对我来说,易用性是基于您在JavaScript,HTML,Obj-C,Cocoa,其他MVC框架,文档和社区支持方面的个人经验。如果您从未与Cocoa合作过,或者从未构建过类似Decktop或iPad的应用程序,那么可以说,无论选择哪种框架,您都将有一点学习上的弯路。话虽如此,您可以通过每个框架各自的社区和文档来获得您不知道和想要学习的知识。两者都有彼此活跃的社区,因此如果您被困在某个地方,您将不会被冷落。至于文档, Cappuccino 无疑占据了上风。缺少SproutCore的文档,但代码库至少已完整注释。 SproutCore社区完全了解需要更新的文档,并且当前正在处理该文档,因此请继续检查。
最后,您提到了对这两个框架的长期预测。众所周知,摩托罗拉购买了Cappuccino框架,因此您肯定有一家大公司支持其发展和长寿,或者至少目前看来是这样。至于Apple和SproutCore,我个人不能代表他们,但是Apple不拥有该框架。有许多公司和各种个人都以某种方式使用并回馈框架。由于框架开发的更加有机的性质,这可能会使某些人和公司对那些正在关注SproutCore的人感到停顿或不适,但我认为这不是问题。我的感觉是这两个框架都将存在很长一段时间,尤其是现在,越来越多的人正在考虑使用开源框架开发下一代台式机和iPad应用程序。而且,嘿,框架之间的竞争很好–让每个人都保持各自的脚趾:-)。
希望这些信息可以帮助您做出决定!
干杯,
麦克风