本文作者为西西河的 AllenKids 先生,经其授权,我们会将他一些见解极为独特的文章引介给 Apple4us 的读者。
iPhone SDK 观察:舞台宽广,才能跳得欢畅
苹果现在到底是一家什么公司?
软件公司?它的大部分销售收入都来源于硬件
硬件公司?它相较于其他个人电脑厂商在硬件性能上又毫无优势
媒体公司?它没有原创内容,跟传媒最接近的不过是 iTunes 商店,可是这个商店却几乎不赚钱。
服务商?零售商?时尚公司?乔布斯最喜欢的玩具?我还可以继续列举下去……
但在 3 月 6 日,从苹果公司最受器重的青年猛将、iPhone 软件部门的最高负责人 Scott Forstall 的口中,我们亲耳听到了苹果对自己的最新定义:
苹果是一家平台公司
Mac 显然是个自成一体的桌面平台,iPod + iTunes (+ Apple TV) 是地位不可撼动的数字媒体平台,iPhone 更是从一开始就毫不掩饰成为手持终端最重要平台的野心——平台平台平台,有什么稀罕?
我要说乔布斯可能再次地以自己天才的直觉,找到了 Apple Inc. 未来 20 年安身立命的所在,甚至可以说是领袖群伦的利器,那就是 Apple = 平台。
什么平台?没有定语吗?没有定语!苹果的野心已经逐渐显露,从高端商用到民用娱乐,从数字媒体到网络应用,Apple 都竭力的挤入市场,有些很显眼,有些却不显山露水。而在各个世界都想掺一脚的巨头不只 Apple 一个,甚至 Apple 在它们面前还显得相当弱小(Microsoft,Google)。是什么让 Apple 的平台策略显得那么独特呢?
答案是前所未有的集成/整合,如果我们来检查下苹果在各个市场投放的产品,就会惊讶的发现,它们的架构竟然是那么的整齐划一:从 Xserve,Xsan 到 Mac Pro,iMac,MacBook,再到 iPhone,新一代的 iPod touch,Apple TV……它们最核心的技术竟然没有什么区别,都是 Apple 招牌式的未来主义设计 + 相对精良的硬件制造 + Darwin 核心(OS X 的 Kernel)+ Core XX 架构 + 各种通用 API + Cocoa 开发环境 + 业界领先的人性化 GUI (+ iTunes 网上商店)。
Google 的模式是作为现金王,它四处撒网,疯狂收购,或者以头脑风暴的方式在 Google Labs 发布各种看起来莫名其妙的应用。可能学生气十足,不过年轻没有失败。
Microsoft 的模式是作为多个领域的垄断者,它像蜘蛛一样小心的维护并扩展着自己霸权的网,并竭尽全力让新来者更容易陷入网中,而已陷入网中的人越陷越深。虽然招人讨厌,但人们往往不得不自投罗网。
跟前两者相比,Apple 这个万灵丹式菜谱的卓越之处在于,它在自己涉足的每个领域都保持着相当的竞争力,不仅如此,由于它通用架构的特性,人们发现各个 平台的转换衔接是那么的流畅平滑——Apple 真的从对阵 Microsoft 的失败中学到了建立通用平台的重要性,并且决心把这一策略发挥到自己能力的极 限。实际上很久以前乔布斯大概就模糊的意识到苹果面前正确的方向了,他意识到作为一家公司,苹果真正的价值所在,真正要建立的地位。若非如此,苹果不会如此 决绝的抛弃过去的荣耀/包袱,专注于真正重要的平台建构:小到单键鼠标,Happy Mac 欢迎画面,条纹标题栏;大到 Carbon 架构,PowerPC 处理器——这些都让人怀念,但都不再重要。
今天 iPhone 的 SDK Roadmap,iTunes 商店的整合只是聚光灯下人人可见的大动作,实际上我发现过去一些不那么吸引眼球的小细节更能让人体会到苹果的转变和它推进自己影响力的决心。
1、Leopard 通过 UNIX 03 认证
虽然从一开始 OS X 就明言以 FreeBSD 为开发基础,并跟随每一个主版本都发布开源的 Darwin 内核源码,可 Leopard 是唯一一个经认证与 UNIX 03 完全兼容的系统,我们可以说 Leopard 剥掉 Aqua 的壳,就是个 100% 的 Unix 发行版。我想如果当初 Apple 采用 BSD 为基础还有些赶鸭子 上架的勉强的话,现在的乔布斯已经很清楚兼容性对于平台的重要性,作为 Unix 众多发行版的一员不但不可耻,而且值得骄傲。这种对兼容性的渴求,更是在 BootCamp 上表现 得淋漓尽致。
2、WebKit 宣布开源
与操作系统相似,Safari 的渲染核心 WebKit 也得益于开源社区,它是以 Linux 两大 GUI 平台之一的 KDE 组件的 KHTML 和 KJE 衍生出来 的。由于自己对内核做了相当的改进(以至于跟 KHTML 很早就不再兼容)并将之纳入 Cocoa 架构,一开始苹果并不愿意开源 WebKit(当然其中得益于 LGPL 授权的 Core XX 部分必须开放),而我想正是 Apple 的平台战略再次让它发现自己在网页渲染引擎上的小气没什么意思,06 年 WWDC 上乔布斯正式宣布 WebKit 开源,而这一举措两年让苹果获得的回报可以说是相当的合算——Nokia S60 平台的默认浏览器采用 WebKit;Gnome 的 Epiphony 采用 WebKit;Adobe 全新推出用来作为 Flash 继任者的 AIR,也采用了 WebKit;连它命中的对头 GPhone 都采用 WebKit;开源社区也对此举有热烈的回应,Qt 4.4 正式集成 WebKit,并由此导致 KDE 重新考虑自己的默认渲染引擎,目前 WebKit 项目正在跟 KDE 密切合作,希望能在 KDE4.1 版发布之时,将 KHTML 正式汇入 WebKit,成为一个项目 ——至此,这个渲染引擎回馈了开源社区,完成了涅磐,奠定了自己三大引擎的地位。
还有更好的消息,Qt4 对 WebKit 的采纳,直接促成了这一开发平台对 Cocoa 的 Objective-C 语言的原生支持,在此平台上的多个开源项目水到渠成的获得了在 OS X 上运行的能力,其中最具重量级的 KDE4 就宣布,其平台上的多数软件几乎不需要 KDE 图形 API 的支持,只需简单修改就能登陆 OS X。这对于 OS X 平台来说绝对是大赚特赚的好手笔。
3、Safari 登陆 Windows 平台
把基于 WebKit 引擎的 Safari for Win 单列出来讲是有道理的,因为我发现 Safari 除了推广 WebKit 引擎之外,实际上有着大得多的野心。
目前在 Windows 平台上“原生”运行的苹果软件有三个: QuickTime, iTunes 还有 Safari。当然实际上 iTunes 的媒体层几乎是 QuickTime 的马甲而已。
Microsoft 在九十年代初期就对 QuickTime 恨之入骨,两家还为此大打官司,只因当时 Microsoft 的 DirectDraw 实在是太烂,才让 QuickTime 在 Win 平台上存活至今,而可以说如果没有 QuickTime 在 Win 平台上的存在,视频采编的业界标准早已换人来坐了,而不会是如今建立在 QT Framework(现在改名叫作 Core Video)上的 Final Cut。
iTunes 的引入很明显是为了保证 iTunes 商店最广泛的覆盖,这一招可以说直接促成了 iPod 的霸主地位,而 iPod 的热销又反过来促进了 iTunes 在 Windows 上的安装比例。iTunes 跟 QuickTime 的捆绑策略,让 Core Video 架构又存在于每一个 iPod 用户的电脑上。不仅如此,它还开始捆绑 Bonjour 局域网协议——在利用自己垄断地位优势方面,现在的苹果可以说 是相当的泼辣。
接下来说 Safari。其实如果只是为了推广 WebKit 引擎的话,Windows 平台上已经有了 Swift 可用,Safari 只能说是加强推广力度罢了,顶多算是让 Wi
ndows 用户尝尝正宗的苹果味。可我们看看 Safari 安装文件将近 30M 的夸张身材,就会意识到 Apple 肯定搞了小动作。打开 Safari,我们很快就能发现它实现了很多非 Windows 的 UI 特性:动画卷轴菜单,Mac 风格的次像素字体渲染,网页对象或标签拖动时显示的半透明缩略图等 等。再进入它的安装目录,一切真相大白!
原来 Safari 不仅引入了 WebKit 引擎,更是一举捆绑了 Core Foundation(OS X 的系统级 C 语言 API),CFnetwork(OS X 的网络接口 API),Core Graphics(就是 Quartz 2D, 一个矢量构图框架,OS X 图形界面的基石),当然还不忘对于 Bonjour 更完善的应用支持。
可以这样说,如果在 iTunes 上 Apple 还有所保留的话,在 Safari 上它就表现得相当咄咄逼人了,它几乎把 OS X 一半的重要 Framework 都照搬到了 Windows上!!!目的我想应该是再明显不过了吧(MS 一定很恶心)~~~你可以想象将来的 Wintel 机器看起来跑的是 Vista 但实际上 OS X API 一个不缺吗?你可以想象将来程序员只需要使用 Xcode 编程就可以让程序原生运行在 OS X / Linux / Windows 上吗?我们说的不是 Java 虚拟机或者什么 sandbox,我们说的是性能无损的 Objective-C binary!
我这可不是磕嗨了胡思乱想,Safari 下一版即将引入本地 SQLite 支持,不难想象 iTunes 也开始采用 WebKit 引擎并将目前是 XML 格式的 Library 转用更强大的 SQLite 存储,再下一步呢?Core Animation 库取代 Direct 3D 来支援 CoverFlow? 再下一步呢? Cocoa Universal for Windows? Maybe? Why not? 这种环环相扣的应用带来了巨大的压迫感。渗透,渗透,再渗透!
携着在移动平台上强大的占有率和开源的双重优势,WebKit 的 Safari,杀入 Trident / Gecko / Presto 的三国大战,成为了人人不可轻视的一角。更为重要的是,其背后平台化的野心,让它成为了 MS 最不愿看到它获胜的对手。因为 IE 对 Safari 的战斗不仅是网络入口之争,更是可能动摇 其根本的桌面平台的争夺。也许将来 Windows Defender 会把 Safari 当作特洛伊木马来处理吧。
现在让我们再以此为背景来审视 iPhone SDK 和 iTunes 商店的策略。一个对开发者和用户都友善的移动通讯/娱乐/计算平台,兼顾个人和企业的应用需求,与桌面、客厅和服务器等其他平台近乎 100% 的相容性,再加上杀手级的使用界面,领跑业界的性能表现,苹果对它的期望可想而知。而在企业级应用难以获得爆发性增长的情况下,iTunes 商店增生式的企图囊括所有数字媒体/软件销售的贪婪进化,让它已经成为了一个包罗万有的重要数字生活入口,一个绕过门户,绕过搜索引擎,绕过内容提 供商的超级消费级应用窗口,苹果对业界施加影响力的重要筹码,以 iPhone App Store 为它加持是相当的合情合理。
iPhone 既是一个前景美好的移动平台,更是一个整合各个平台并保证各自地位的重要棋子,因此就不难理解 Apple 近乎以自己全部的资源全力支持此平台的内在逻辑了。
而建立这样一个"大一统"的平台组合,大概就是乔布斯心中新世纪战略的终极目标——他的 Apple 2.0。