【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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:306062
用户头像

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

关注

评论

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

【译】并不存在的普通用户(面向极端用户的设计)

Yukun

设计思维 可用性

阅读对写作的好处

董一凡

写作

平台化服务的基石:用户认证模型设计

孤岛旭日

企业架构 模型 用户权限

Windows10 如何正确修改本地用户的名称及目录

喵喵侠

windows Windows 10 电脑故障 Windows技巧

ARTS-weekly-31

落英坠露

ARTS 打卡计划

ARTS week 1

时之虫

ARTS 打卡计划

ansible-playbook中when结合tags使用,实现变量控制执行

唯爱

教师节H5案例制作思路分享

喵喵侠

大前端 H5游戏

数据与广告系列三:合约广告与与衍生的第三方广告数据监控

黄崇远@数据虫巢

数据挖掘 互联网 广告 移动互联网

redis数据结构介绍四-第四部分 压缩表

Nick

redis 源码 数据结构 源码分析 算法

RocketMQ - 如何实现顺序消息

Java收录阁

RocketMQ

微信推文无缝滚动是这样炼成的

喵喵侠

微信 大前端 微信公众号 微信推文 图文混排

2020全球首创币期权DAPP智能合约强势来袭,闪耀数字经济

极客编

[JVM] String#intern 面试必会

猴哥一一 cium

Java JVM string pool string Java 25 周年

企业也有中年危机?探讨数字化与永续经营

FinClip

数字化转型 小程序生态

使用 Python 分析 Google Calender 日程

Roc

Python 总结 日历

学慢点儿,想深点儿

熊斌

学习

一个前端的 Windows10 开发环境

Gadzan

大前端 windows Windows Terminal 环境安装 开发工具

使用 Python 和 SudachiPy 进行日语分词

Roc

Python 日语 分词

在 Go 中使用并发编程 - 第二部分

TuringTuring

并发编程 协程 线程模型 Go 语言

财富的大门给我开了一条缝

YoungZY

读书笔记 读书

redis数据结构介绍六 快表

Nick

redis 源码 数据结构 源码分析 算法

OBS推流学习笔记

IT蜗壳-Tango

直播 OBS 推流 B站直播

使用 Markdown 制作五线谱

Roc

GitHub markdown 五线谱

Java 异步编程:从 Future 到 Loom

理帆

Java 并发编程 kotlin Netty

Kubernetes in action 笔记

FeiLong

Kubernetes 容器

KubeFATE 部署多集群联邦学习平台 FATE

亨利笔记

学习 Kubernetes FATE KUBEFATE

redis数据结构介绍五-第五部分 对象

Nick

redis 源码 数据结构 源码分析 算法

JUC整理笔记三之测试工具jcstress

JFound

Java

Git数据传输模型及常用命令整理

王坤祥

git git flow

写给产品经理的信(4):你一定要做产品经理么?

punkboy

生涯规划 产品 程序人生 产品经理 职业规划

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