Oracle诉讼Google缘何正确
技术产业喜爱一场厂商的恶斗,来势汹汹的Google与Oracle之间的法律之争就有着它所需的一切壮观特质。
被热议的就是Dalvik,那个特殊的、基于Java的Google Android智能手机操作系统核心中的运行环境。在2009年收购Sun Microsystems之后接管了Java platform 的Oracle控告Dalvik有知觉地,愿意地,和有意地侵犯其Java知识产权。据上周美国San Francisco地方法院存档的申诉报告,Oracle欲叫停Android的任何进一步开发,销毁一切侵权的Android软件,并要求Google赔偿实际构成的和法律意义上的损失。
博客人们,评论员们,和开发者们纷纷责难这场诉讼。Farata Systems的Anatole Tartakovsky写道,“Oracle管理者脑子进水了。”PC World的 Tony Bradley把Oracle描述成一个专利恶魔,有其他人则毫不客气地把它和SCO Group相提并论。InfoWorld自己的编辑Eric Knorr,把Oracle比作Darth Vader 和同一栏目里的Batman's Nemesis the Joker。
如此不由自主的迅速反映是有误导意味的。Google并非Luke Skywalker,其对Java的处理本身就问题重重。认为Oracle手辣,是因为忽视了更大的事实——就是在最近几年里,Sun对Java的管理太温顺,太无力了。没有强硬的领导,Java社区承受了缓慢和负重的发展进程,让这一平台的未来疑问重重。对Google的诉讼是Oracle致力于改变这一切的明证——这也可能正是Java社区所需要的。
只在名字上是Java
具有讽刺意味的是,鲜有公司如Google那样对Sun失败的领导直言不讳的。比如在四月的Red Hat Middleware 2020虚拟会议上,Google首席Java构架官Josh Bloch描述这一平台是“无方向的”,力促Oracle在决定它的未来上起到领导作用。“过去几年里的技术和许可争议已经十分有害了。它们耗费了社区的精力,引起了一系列不适的压力,”Bloch说。
可是谈话已经没有用了。实际上,Google已经不再期待Oracle,它已经怀着自己的Java计划奋斗前冲了。结果就是Android,一个只在名字上是Java的平台。Dalvik虚拟机甚至不能执行Java字节码;相反Java class文件必须预编译成Google自己的.dex格式才能运行。而且Android开发平台既不是Java SE 也不是Java ME,而是一个来自stock Java, Apache 基金会, 和 Google自己所贡献的的一个类的大杂烩。
这不是偶然。在一个博客帖子上,Java创始人James Gosling回忆起Sun与Google的早期谈话,以及那家搜索巨头是如何更感兴趣于用Android“分食Apple的市场”而非真心支持Java的互通用性核心原则——尽管遭到Sun的强力反对。
这也不是Google漠视Java标准的唯一例证。2009年,Simon Phipps,Sun当时的首席开源官,批评Google在其应用引擎云计算平台上未能支持Java核心的类的全集。“在Java平台上生成核心类的子集有充分的理由被禁止,”Phipps在一个博客帖上写道,“并且玩弄规则是荒唐和不负责任的表现。”
同样地,谷歌网页工具集(GWT)声称是一个帮助开发者用Java写客户端网页应用并以Javascript形式发布它们的工具,但Google自己承认GWT只支持“大多数核心Java语言语法”和标准Java类的“一个小子集”。看来Google对Java的爱还只是因为它作为一个语言很流行,而不是作为一个平台所具有的凝聚力。
Oracle诉Google案
但是如果创造Java只是为了发明一个新语言,Sun当初就不会那么煞费苦心了。Java大部分语法是从C,C++,和其它一些地方借来的。真正让它出新——并且重要的——是JVM,其沙盒安全模型和其“一次写成,处处运行”之承诺。与Java类库相伴,JVM使Java成为一个从对下面操作系统的依赖之恼中解放了开发者的独特的平台。尽管在最近几年里,Java在好多路上有辜负其最崇高的目标,Sun为保住Java作为一个始终如一的、统一的平台所作出的努力还是未尝改变过的。
这些努力所迎的最大一次挑战是在20世界90年代后期,当微软试图通过提供一个唯Windows版的这一语言来分裂Java社区之时。Sun把事件带到了法庭上,论微软的作为侵犯了Java许可协议。当2001年尘落定之时,微软同意打消其Java企图,向Sun支付两千万美元损失赔偿。