研究一下我们对 Chrome OS 仅有的一点了解

【本文原载:Daring Fireball,作者:John Gruber ,原文链接

gchrome-660x4271

Google 迟早会出电脑操作系统这件事似乎是显而易见的,自从 Android 发布后我就确信这点:既然他们能够为手机开发一个操作系统,并且免费发布,有什么理由不能给 PC 做一个呢?

只不过我之前预计,Google 最终的 PC 操作系统将是把 Android 扩展到屏幕更大的设备上——就像苹果将 OS X 反过来应用到 iPhone 上那样。苹果将其 PC 操作系统削减到只剩下基本核心,然后在此基础上开发了一套全新的手持标准的用户介面库和应用程序接口。我假设中的 PC 版本的 Android OS 也继承了类似过程:将移动版 Android OS 的核心拿出来,然后在此基础上开发一套针对 PC 的用户介面库和应用程序接口。

所以,Google 宣布自己要做 Chrome OS 并不奇怪,奇怪的是他们的宣布方式:尽管 Google 官方博客的标题叫做「Google Chrome 操作系统出炉」,但事实上什么也没有出炉,甚至连一张截图都没有,更不用说视频演示或任何技术细节了。并且他们预期的发布时间为「2010 年下半年」,这简直可以用来当做放烟雾弹的样本教材。

我不知道具体的时间安排表,但为何现在——很明显八字还没一撇的时候,就要宣布?为何不是在 I/O ,六周前 Google 的开发者大会上?或者,为何不等到已准备好向开发者发布的时候?我喜欢事实、演示,最好是即将上市。我不喜欢空泛模糊的承诺。

作为原生软件的线上软件

这一点非常有趣而且野心勃勃,Chrome OS 的全部应用平台都将由线上软件组成。如果有一家公司愿意开发这样一个操作系统的话,它肯定是Google 。大多数最初对 Chrome OS 的评论都是完全积极的,但有一条怀疑的评论是关于「线上软件是唯一的软件」方面的。PCWorld.com 的尼克·米迪塔对 iPhone OS 在 1.0 时代和 2.0 之后进行了许多比较:  

无论用户还是软件开发者,都渴望所谓的「原生软件」——针对特定的操作系统而设计的软件。举个例子?比如 iPhone 。2007 年苹果的全球开发者大会(WWDC)上,苹果在谈论为一种 iPhone 开发应用的「相当完美」的办法:线上软件。当乔布斯在台上谈论线上软件的力量与潜力时,许多开发者和用户却在呻吟。他们想要的不只是线上软件,他们想要真正的应用——可以充分利用 iPhone 的软硬件技术的软件。

旁白:2007 年 WWDC 的主题演讲里,乔布斯在描述开发者可以为 iPhone 开发线上软件时说的不是「相当完美」;而是「非常完美的方案」。我当时称之为「大便三明治」。【注释一】

尼克说对了,不仅开发者,而且用户也都渴望原生的 iPhone 第三方应用。对Google 的 Chrome 来说,不同之处在于,线上软件将是 Chrome 操作系统的原生软件。推测一下,该系统里默认的所有 Google 应用都是我们已经知道的线上软件。这就是著名的「eating-your-own-dog-food」(吃你自己的狗食)的问题。苹果声称针对 iPhone 优化的线上软件是「非常完美的方案」,但它令人讨厌之处就在于,iPhone 没有一个内置应用是线上软件。它们全部采用 Objective-C 和 Cocoa Touch 编写而成——苹果自己的 iPhone 应用设定了很高的用户体验标准——这个高度是 Mobile Safari 里运行的线上软件所达不到的(并且仍将难以达到)。

Chrome OS 听上去更像是 Palm 的 WebOS ,而不是 iPhone OS 。而 Palm 还没有开始通知开发者使用 HTML、CSS 和 JavaScript 为其开发第三方线上软件,他们正关起门来为 WebOS 开发内置的应用。事实上,考虑到 Google 的线上软件中心化,并且还将一如既往,Palm 的 WebOS 本质上更「Google 化」而非 Android 化,后者平台上的原生软件是使用 Java 语言编写的。

关于 WebOS 值得注意的是,尽管 WebOS 应用是使用 HTML、CSS 和 JavaScript 编写,并且在 WebKit 框架内运行,但它能做的已经超出了常规的浏览器内运行的线上软件。运行时(runtime)暴露了针对 WebOS 环境特有的附加JavaScript 应用程序接口。常规的线上软件——「运行」是通过网页浏览器访问 URL 载入的——无法完成,比如访问硬件摄像头,或者在屏幕底部弹出类似的系统范围(system-wide)的工具的通知。或者,反过来,你也不能将一个 WebOS 应用拿到放在其他任何平台的浏览器里运行。「线上软件」和「使用网页技术编写的应用」两者之间有很大的潜在区别。如果你是一位程序员,我担保你能够明白;如果你不是,我担心你可能觉得两者之间只是语义上的细微差别。我能想到的最好例子是 Mac OS X 上的 Dashboard 挂件:它们都使用 HTML、CSS 和 JavaScript 编写,但它们不能在 Mac OS X 以外的其他任何平台上运行。

我推测 Chrome OS 会拥有特定的应用程序接口,让线上软件能够最佳化在Chrome 上运行。但谁知道呢?从 Google 官方的描述来看,Chrome OS 的「应用」听起来好像就是一个「网页」。它是否会支持,比如从摄像头输入照片或视频?再一次,我的推测是:会的。但怎样让这些数据存储到本地,或删除?Google 管理的服务器,传说中的「云」?但总会有一些数据需要存储到本地,因为在网页里上传视频(甚至一张全尺寸照片)有时都会很慢,而且成本很高。

驱动问题

因为 Windows 要在每一台「Windows PC」上运行,所以微软与绝大多数设备驱动开发商都进行了交易,但微软只为他们自己解决问题。微软的方式就是让所有设备都运行 Windows 。但没人说 Chrome OS 要在所有设备上运行,甚至「在大多数 PC 上运行」的说法也没有。如果 Google 说 Chrome OS 只支持专门为其设计的新的 PC(它们的硬件驱动都经过特别开发以保证与 Chrome OS 兼容),我一点也不会感到意外。Google 发布的信息少得可怜的 Chrome OS FAQ 中,只有关于硬件合作伙伴部分值得关注。

Chrome OS 不会只是「另一个版本的 Linux」

瑞赖·勒梅写的「谢谢你 Google,不过我们已经有 Ubuntu 了」(No Thanks Google, We've Got Ubuntu) 是另一种对 Chrome 的典型反应:

Google 决定开发自己的 Linux 版本,再一次希望将 Linux 社区分裂,这只能被看做是鲁莽且自我强迫的行为。

相对于自己开拓道路,Google 希望在马克·夏陀沃思(Mark Shuttleworth)及其快乐的编码团队的出色工作的基础上找到一个杠杆支点,把自己的马拴在 Ubuntu 的