客户-服务器计算:未来的 Web?

  • Craig Wickesser
  • 祁飞

2008 年 5 月 26 日

话题:JavaWeb框架JavaScript语言 & 开发

关于 Web,大家最近都在讨论 Ajax 和更好的用户体验。有人指出:在未来,“原来的”客户-服务器模型将会满足用户的期望与需求。客户-服务器计算真能做为解决 Web 2.0 技术的应对之道吗?

去年,InfoQ 的 Shane Witbeck 写过关于SproutCore的文章,并将其描述为

……一种新的、基于 JavaScript 的、完整的 MVC 应用程序框架。
Sproutit 的董事长兼执行总裁 Charles Jolley 曾写过一篇文章解释为什么客户-服务器是 Web 的未来,文章中曾提到 SproutCore 框架在这一领域将会有所建树。自从去年 InfoQ 发布了这篇帖子以来,Sproutit 一直在忙于 SproutCore 1.0 版本的发布,该版本中包含了一些新东西,同时改正了一些 bug,对整个 API 也进行了全面修订。 

最近,InfoQ 有机会就 SproutCore 目前的状况与未来的发展等问题对 Charles 进行了采访。

InfoQ: 1.0 预计在什么时候发布?

Charles Jolley: 2008 年 6 月。在 6 月初,我们会在WWDC挂上与最终版非常接近的版本进行展示。

InfoQ: 您早先曾提到过很想完成几个指南(tutorials)和样例应用程序。我留意到已经有了一个 hello world 教程和一个入门指南以及两个示例应用。在 1.0 版本发布之前,您还想再增加几个教程(有关高级特性和用法方面的)吗?

Charles Jolley: 目前,我正忙于 SproutCore 1.0 的代码,以便其能在 6 月份及时发布,但我确实想在那时候再加一个教程,主要讲讲如何构建一个完整的应用。同时,你还能下载到示例应用 photos 的源代码,这个应用中包含了许多相当高级的特性。在示例演示的网页(http://www.sproutcore.com/demos/)上,可以通过链接找到源代码和示例应用。

今年夏天,在 1.0 发布以后,我打算集中精力好好整理一下 SproutCore 框架的文档,另外再增加些教程。

InfoQ: 如果用户将浏览器设置成“禁用 javascript”,SproutCore 就完全不起作用了吗?

Charles Jolley: 基本上说,的确如此。SproutCore 使大量应用极具动态性,但是一旦脱离 JavaScript,应用所具有的动态特性也随之失去。为了适应这种限制,我们只能把 SproutCore 做好:编码更少,但是功能更强,这样使用 SproutCore 的开发者才会觉得物有所值。

当我们需要同时兼顾启用 JS 和禁用 JS 的两类客户端使用者时,我一般推荐开发者再为禁用 JS 的浏览器多构建一个页面驱动的简化版本。目前,很多使用 SC 的开发者都这样做。

InfoQ: SproutCore 是彻底与浏览器无关的吗?(也就是能支持 IE 5/6/7、Firefox 2/3、Safari、Opera 吗)?

Charles Jolley: SproutCore 1.0 将支持 IE7、Firefox 2, 3 和 Safari 2,3。也会很快对 IE6 提供支持。(实际上,它是支持 IE6 的,但现在我们没有时间在开发 1.0 版本过程中为 IE6 提供对新特性的支持。)目前我们并不支持 Opera,但如果有人需要的话,对它支持也非常容易。

InfoQ: 您认为 1.0 发布后,下一步的工作会是什么?

Charles Jolley: SproutCore 1.0 将要发布的是在 Web 浏览器中构建一个完整的客户端应用所需的核心功能。1.0 发布之后,我们将集中精力创建更好的工具,进一步完善文档来使 SproutCore 更完美。比如,我们现在已经开始着手做一些可视化用户界面构造程序(visual interface builder)的准备工作,一些大的教程也在编写之中。

长期以来,最让我激动的是看到程序员使用这个新框架构造各式各样的应用。我想我们可以向技术社区那样发现并编好大量有用的通用组件供大家使用。

InfoQ: 您想过用 Javascript 以外的其他技术(如 Flex、Silverlight、JavaFX 等)来实现 SproutCore 的设计吗?在您网站的“about”页面上,我看到您的回答是“不”。只是出于好奇,想问问您现在会有另外的想法吗?

Charles Jolley: 从长远来看,我确实认为 Web 客户端应用程序的未来在 JavaScript 和 DOM scripting 上。随着将诸如 CSS 转换、SVG(译注:可缩放矢量图形 Scalable Vector Graphics)、HTML5 电影和音频标签等富媒体(rich media)特性集成到浏览器中,使用专有插件的好处大大降低了。

因此,我认为如今使用那些专有插件编写应用程序的人们,可以从类似 SproutCore 这样的客户端框架获益。我会很高兴地帮助想要使用 SproutCore 进行工作的任何人。

SproutCore 致力于解决客户-服务器模型中客户端部分,客户-服务器模型朝着“Web 未来”应用程序的开发方向上迈进了一步。或许从 Apple 公司把 Charles 招入他们的团队以帮助程序员使用 SproutCore 开发.Mac Web Gallery 开始,Apple 公司就已经开始着手在这个方向上做些东西了。关于“未来的 Web 是什么样的”这个问题,你是怎么想的?

查看英文原文:Client-Server Computing: The Future Web?

JavaWeb框架JavaScript语言 & 开发