HTML 5应用框架SproutCore初探

开发 前端
SproutCore是一个HTML 5应用框架,这个框架的目标是在无需浏览器插件的情况下,在浏览器中提供极佳的桌面效果。本文中的访谈会令你对SproutCore有一个大概的了解。

SproutCore的计划是成为一个HTML 5应用框架,最近将发布1.0版。这个框架的目标是在无需浏览器插件的情况下,在浏览器中提供极佳的桌面效果。SproutCore主要采用的是JavaScript、HTML以及CSS,因此对后端没有什么限制,这是其优势所在。

下面是InfoQ近日对Sproutit总裁兼CEO Charles Jolley进行的访谈,以了解即将到来的发布。

到底是什么让SproutCore成为一个HTML 5应用框架?

现在有不少Web框架开始使用HTML 5中的一些新特性(如离线存储、HTML5 ApplicationCache等)来构建富本地(rich native-class)应用,而SproutCore则是其中之一。SproutCore在那些使用HTML 4特性的老的浏览器上工作良好,然而我们期待未来5年兼容于HTML 5的浏览器,如Safari 4、Chrome及Firefox 3.5等能成为主流。

对于我来说,HTML 5将成为Web上最激动人心的事情,因此我们开发了SproutCore。

SproutCore 1.0正式版何时发布?

今年秋天发布,但在这之前就将有构建在SproutCore 1.0之上的应用了。目前来看,其相当稳定,因为在过去的一年中我们添加了5,000多个单元测试,涵盖了每一个特性。在过去的一年当中,我们几乎重写了SproutCore构建工具与JavaScript框架的每一部分,目的就是保持API的稳定性并对性能进行了极大的改进。但我认为SproutCore 0.9及之前版本的主要目的是为了证明我们可以在浏览器中构建桌面级的应用,而SproutCore 1.0则是保证其核心技术能够平滑的使用且具备极强的可靠性。我很高兴地看到我们实际上已经超过了自己的目标。SproutCore 1.0无疑是我们最杰出的成就。

所有的文档以及站点更新之类的工作会随着1.0版的发布而完成么?

当然了。事实上,我们刚刚将API文档放在了http://docs.sproutcore.com上,同时又开发了一个文档查看器。http://demo.sproutcore.com上还有很多示例应用,其中包括一些将于不久之后开源的完整的端到端示例。

为什么要使用SproutCore而不是GWT或是Cappuccino之类的框架?

一般来说,尝试过GWT或是Cappuccino的人们都会由于种种原因而转向SproutCore。其中性能问题是首当其冲的要素。这三个框架(GWT、Capp及SproutCore)在富Web应用上的表现都非常棒。但如果构建的应用非常复杂,瓶颈则很快就会出现,尤其在应用最初的加载阶段更是如此。而在这方面,SproutCore应用的表现是可圈可点的。第二个因素就是可定制化的能力。使用GWT和Cappuccino开发时,我们无需总与浏览器打交道,而是在其Java或是Objective-J沙箱中进行。这种方式很不错,但如果想要探究其底层那可就不好办了。SproutCore也提供了非常丰富的功能,但都是基于普通的JavaScript,这样你就能随心所欲的使用了。

对于视图层来说,为何从Ruby(0.9)转变成了纯JavaScript(1.0)?

主要原因有二。首先,一旦1.0版完成后,我们打算开发一个支持拖拽的UI设计器。而JavaScript使这一切成为可能。事实上,SproutCore 1.0的核心程序库已经对UI设计器的开发提供支持了。我们只需完成设计器应用本身即可。其次,也是更加重要的原因,那就是性能问题。如果只使用JavaScript编写代码,然后让SproutCore处理所有的HTML和CSS的话,我们可以通过一些技巧提高应用的速度,哪怕是IE也没问题。总的来说,SproutCore新的视图层的速度要比之前版本的快10倍多(其实之前版本的也够快了)。此外还有一个好处,那就是纯JavaScript会极大地简化应用的开发,因为开发者不会陷入两种编程语言的泥潭中,一种语言走天下。

DataStore API能从Java Server上获取数据么?RDBMS(如MySQL或Oracle等)又如何呢?

你可以使用任何喜欢的后端,没问题。事实上,大家在学习Todos Tutorial(http://wiki.sproutcore.com/Todos%C2%A0Intro)时会发现我们可以从三种不同的服务器端技术中进行选择。虽然Java不在其中,但我想有人一定已经实现了。最酷的就是SproutCore应用仅仅是由HTML/JS/CSS构成的。后端到底采用什么技术是无所谓的,因为SproutCore应用会通过Ajax与之交互。

能否在SproutCore应用中嵌入其他视图内容(比如视频、Flash以及音频等等)呢?

当然了!大家可以通过Safari 4运行我们提供的视频示例(http://demo.sproutcore.com/video/)。该示例使用了HTML5的video标签。SproutCore 1.0已经不再依赖Prototype了,相反我们开发了自己的SproutCore JS-library。这意味着如果你现有的代码使用到了jQuery、ExtJS、YUI甚至是Prototype,你都可以将其嵌入到SproutCore应用中。

SproutCore 1.1的路线图确定下来了么?

还没有。我们现在把所有精力都放在了SproutCore 1.0上,力求做到极致。1.1的开发方式与1.0将有很大不同,后者主要是凭借一家公司的一己之力完成的,而前者将要依靠社区的力量来实现,因此我期望SproutCore 1.0的发布能引起更多人的注意。

SproutCore的目标是构建只依赖于浏览器的Web应用,然而,它并非一枝独秀,还有其他的选择也值得我们去探究,比如Google的GWTCappuccino

【编辑推荐】

  1. HTML 5中将被舍弃以及将被强化的元素
  2. HTML 5在改变什么?
  3. 微软涉足HTML5设计工作 IE将以标准为核心
  4. HTML 5视频编码存争议 各方观点不一
  5. Google宣布Web已经胜利 HTML 5将Web大大推进
责任编辑:yangsai 来源: InfoQ
相关推荐

2010-08-10 09:08:29

WebSocketsHTML 5

2010-03-03 08:36:49

HTML 5 Web

2015-05-13 10:04:36

ionicHtml5

2011-09-27 17:37:22

2012-05-29 09:23:23

HTML5移动应用框架jQTouch

2014-12-08 11:12:23

HTML6

2022-07-15 12:42:22

Linux内核裁剪

2012-06-12 13:33:38

HTML5

2012-05-28 15:31:57

App-UI

2012-05-23 13:00:37

HTML5

2012-05-15 09:42:06

2012-06-07 15:51:40

HTML5

2010-09-03 08:58:01

HTML 5

2015-04-21 10:04:51

ionicHtml5

2011-10-11 09:04:40

HTML 5

2022-04-19 09:24:18

QtC++框架

2015-07-27 09:48:24

最棒 HTML5 框架

2012-06-23 20:13:44

HTML5

2012-05-21 09:31:56

HTML5

2011-12-12 09:04:35

HTML 5
点赞
收藏

51CTO技术栈公众号