写点什么

SproutCore:一个 HTML 5 应用框架

  • 2009-09-07
  • 本文字数:2220 字

    阅读完需:约 7 分钟

此前 InfoQ 曾对 SproutCore 有过多次 报道,最近获悉其 1.0 版行将发布的消息。SproutCore 的目标是在浏览器中提供极佳的桌面效果应用而无需任何浏览器插件。所有这些都不是用什么新技术实现的,而是采用这几年广为应用同时又在不断发展的技术。SproutCore 主要采用了 JavaScript、HTML 以及 CSS,这样对后端系统就没什么限制了,显然是个优势。

SproutCore 能与任何后端服务器技术搭配使用。事实上,一旦部署之后,SproutCore 应用只包含标准的 HTML、JavaScript 以及 CSS。只需使用 Apache 就能部署完整的 SproutCore 应用。

自从上次报道 SproutCore 之后,其发生了很多变化,因此 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 Intro)时会发现我们可以从三种不同的服务器端技术中进行选择。虽然 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 的 GWT Cappuccino

查看英文原文: SproutCore: An HTML 5 Application Framework

2009-09-07 22:306526
用户头像

发布了 88 篇内容, 共 270.3 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

Java程序员面试15家公司收到15份offer,月薪35K全靠这Java面试小抄(2021版)开源分享

Java 程序员 面试

论如何快速吃透算法?186道高阶算法题+学习资料程序员面试必备

比伯

Java 编程 架构 面试 程序人生

腾讯极客技术挑战赛-writeup

uni-app跨端开发H5、小程序、IOS、Android(一):太强了,一次性搞定全端开发

黑马腾云

微信小程序 uni-app 大前端 uniapp 3月日更

在vscode中go编码发生的问题整理

happlyfox

学习 vscode 28天写作 3月日更 Go 语言

Java的“泛型”特性,你以为自己会了?(万字长文)

比伯

Java 编程 程序员 架构 计算机

人脸识别无间道

脑极体

2021金三银四必备的1000道Java面试题以及答案整理【最新版】

Java 编程 程序员 面试

Redis核心技术与实战 学习笔记 02

escray

redis 极客时间 28天写作 3月日更 Redis 核心技术与实战

产品经理面试常见问题总结1

lenka

3月日更

微服务的下一步,离不开服务网格

xcbeyond

微服务 Service Mesh 服务网格 3月日更

五个问题,三大策略,手把手教你定制App性能监控方案

监控 应用性能 监控工具 告警设置 质量监控

吉他扒谱该怎么做?分享一款超好用的扒谱工具!

奈奈的杂社

PHP-Trait解析与使用

一个大红包

3月日更

(28DW-S8-Day26) 研发流程重整

mtfelix

28天写作

对htmlMeta的实例详解

佰草

html5

思维转换 - 更好的认识世界

石云升

程序员 思维模型 28天写作 3月日更

第七.产品规划与功能规划

让我思考一会儿

Nginx 一个高性能的HTTP和反向代理服务器

赖猫

nginx 后端 Linux服务器

Kubernetes入门——Kubernetes工作原理及使用

百度开发者中心

#Kubernetes# #技术课程#

Kyuubi: 网易数帆开源的企业级数据湖探索平台(架构篇)

网易数帆

大数据 spark 开源 Kyuubi

ICASSP2021 M2VoC挑战赛报告会:高分队伍及评审分享回顾(附PPT)

爱奇艺技术产品团队

Kubernetes入门——深入浅出讲Docker

百度开发者中心

Docker Kubernetes 云原生

校招开始,你做好【终身成长】的准备了吗?

闲鱼技术

Timewait是什么

我是程序员小贱

3月日更

mysql5.7安装教程

xiezhr

MySQL 安装 MySQL 运维

React在函数组件中使用Ant-Design的Form(form组件和按钮属于不同的组件)

依旧廖凯

28天写作 3月日更

如何跨单元格绘制斜线

IT蜗壳-Tango

3月日更 IT蜗壳教学

5G与房地产

ES_her0

28天写作 3月日更

PC五年,华为如水

脑极体

小争哥的算法打卡1群-算法题打卡

黄敏

算法

SproutCore:一个HTML 5应用框架_Java_Craig Wickesser_InfoQ精选文章