在程序圈,Google以重新定义词汇而闻名,并以此来适应其理想。比如“Beta”一词。在大多人的眼中,它意味着有漏洞、还没发布的软件,基本能工作、但还处在测试阶段。Google却将这个词与产品挂钩,它为普通使用作准备,只是必须跟“有规律的升级和不断的功能精细化”配合。现在,类似的事发生在“开放”一词上。
软件开放的标准是什么?
Google负责Andorid平台的资深高管安迪·鲁宾为了反击乔布斯,试图解释何为“开放”。乔布斯此前在财报会议上说,Google的Android系统不是真正的“开放”,此事在Android开发者中引起争议。
鲁宾在微博中用代码回应说,下载Android源码,在电脑中编译,就是“开放的定义。”
不过,鲁宾的定义引起了争议,因为下载与编译原码并不意味着开放。曾杜撰出“开源软件”一词的布鲁斯·佩伦斯(Bruce Perens)就对此定义表示怀疑,他说:“你可以检查东西,编译它并不意味着你有权使用它。”在软件世界,“开放”可以从三个核心方面来定久:通过授权可以保证能修改源码、再使用和分发,一种社区开发方法,还有更重要的一点,保证用户在硬件一软件拥有完全自由。
按法律术语来说,Android是开源软件,它是根据Apache 2.0软件授权来发布的,允许任何人使用,修改和分发代码。但是根据布鲁斯·佩伦斯的说法,它在后两点上未达标准。
Android并非完全开源
没有以社区为基础的开发,Android的批评者会说它没有苹果的iOS开放。佩伦斯说:“大多的开源项目可以随时接入,修改你做的东西……完全向任何参与的人开放。”
与一些主要的开源项不同,比如Firefox和linux,你无法看到Android后面发生了什么,一些小的开发者也无法用有意义的方式贡献自己的项目。Google一般会在新闻发布会上公开自己的升级软件,不像苹果,苹果只是展示新的功能。
在代码的发布上,Android开发者可以下载它,并做任何修改,但是它们没有办法看到每天软件背后发生的事。如果你想知道昨天晚上Firefox发生了什么,你都可以在Mozilla网站看到纪录。对于Linux kernel、Open office和其它开源软件项目都是这样。
Android不是如此,尽管它有法律授权自称开源软件,但在透明和社区上却有完全失败。
Android主要给你两个选择:接受Google给你的,或者叉开整个代码库。除了你可以推出自己版本的Andorid,它实际上和iOS没啥区别,它也是建立在“苹果给什么你就用什么”模式上的。
对运营商来说Android是开源的
facebook的乔·海威特(Joe Hewitt),他是火狐的联合创始人之一,有传言说他正在开发Facebook的Android手机,他在Twitter上回应说“对我来说,Android没啥区别”,并补充称:“开源软件意味着与社区分享控制权,你指给我看看,告诉我在哪里。”
第二天,海威特又写了博客进一步阐述自己的话,他说:“老是说什么‘开放’让我受不了。”
海威特认为,尽管Google的方法冠以“开源软件”有点不老实,但它达到了“开放的最低门槛”,还有另一个问题:手机运营商。他认为,问题是 无线运营商第一,Google第二。因为运营商可以从用户的角度关闭Android平台。换句话说,你可以复制和粘贴代码,可以看到Android真面 目,但当它与真实的手机一起推出时,它就与iOS无异了,同样控制严密。海威特此话的意思是说:站在运营商的角度来看Andorid是开源的。