JoshuaBloch - huangyuefeng/study GitHub Wiki
Joshua Bloch先生,科技届的梅长苏,他的9行Java代码,导致法院让Google赔Oracle88亿美刀。
下面我带大家一探究竟。
- 代码说话
private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) {
if(fromIndex > toIndex)
throw new IllegalArgumentException("fromIndex("+ fromIndex +
")> toIndex("+ toIndex+")");
if(fromIndex < 0)
throw new ArrayIndexOutOfBoundsException(fromIndex);
if(toIndex > arrayLen)
throw new ArrayIndexOutOfBoundsException(toIndex);
}
带行号的文本如连接
该代码就是在分析一个array的边界,如果要读一个array,从起始地址fromIndex到目的地址toIndex这个范围的内容,
当然fromIndex不该在toIndex后面,于是有了line-2(第二行),
当然fromIndex不能是负数,于是有了line-5,
当然fromIndex不能大于整个array的长度arrayLen,于是有了line-7,
遇到这三种情况,都throw个Exception,就这么简单的代码。
同样的9行代码,都是Joshua Bloch 写的。9行代码让谷歌赔了88亿美刀,两大巨头口水战了18年,
JoshuaBloch童靴,真乃科技届的梅长苏也,这9行代码比该童鞋的《Effective Java》巨作都传奇了。
- 事件本质
案件和Java以及Android系统有关,问题在于Android的Dalvik虚拟机基于甲骨文的Java虚拟机JVM。所使用的API也非常相似,而且这种相似是谷歌有意为之,这样做可以让海量的Java程序员很容易的就转型成为Android程序员,并为他们新的移动操作系统开发应用。但谷歌并不想为了他们Android系统花重金从甲骨文购买JVM的授权。所以,甲骨文就掀起了法律战。
- 案件还原
甲骨文凭什么发动法律战呢,关键就在Joshua这位童靴。该童靴为Sun公司的Java写了这9行代码,随后加入谷歌,为Andriod系统写了同样9行代码。
注意,Sun公司和谷歌关系很好,如果不是Oracle收购了Sun和Java,相信不会有后来的一切。
重点来了,甲骨文扫描了1500万行Android代码,发现了这9行代码拷贝自JVM虚拟机,不过这些代码目前已经移除。但是这并不影响甲骨文兴师问罪。
最后结果,谷歌需要赔Oracle美元88亿,天,Sun公司被Oracle收购的时候,才74亿美元。
只能说,Oracle实在是,太狠了。
- 时间线
1996年,Joshua Bloch加入Sun的Java项目,于是Sun的SDK了有了这9行代码。
2004年,Joshua Bloch加入Google成为Java首席架构师。因为该案已从Google离职。
2007年,Google发布了Andriod系统,里面也有这9行代码。Andriod底层Linux内核只提供基本功能,其他的应用软件则由各公司自行开发,部分程序以Java编写。
2010年,Oracle收购Sun时一并收购了Java的版权;它表示,其API可以随意使用以开发应用程序,但不得开发像Android这样的竞争性平台。
2010年8月,甲骨文起诉谷歌侵权。
2011年3月,谷歌聘用了Java的创始人James Gosling。
2012年5月,陪审团认为谷歌使用了9行范围检查的Java代码构成侵权。
2012年5月,同月William Alsup法官推翻了陪审团认为谷歌侵权的意见,称API不应该受版权保护。
2012年10月,甲骨文上诉至美国联邦上诉法院。
2014年4月,美国联邦上诉法院判定API受版权保护,谷歌侵权。
2014年10月,谷歌不服判决上诉至美国最高法院,请求高院介入。
2015年6月,美国最高法院周一驳回了谷歌(微博)在一宗软件版权诉案中提出的上诉申请,维持原先的判决。
2015年10月,案件退回美国地区法院,由William Alsup法官再次审理。
2018年3月,美国联邦巡回法院裁定,谷歌因为在 Android 操作系统上使用了 Oracle 的 Java 版权代码,需要向 Oracle 支付 88 亿美元的赔偿。
- 蝴蝶效应
叔可忍,婶婶不能忍,歌歌作为科技巨头,这种事比让谷歌吞个蟑螂都恶心。
2017年,在谷歌的推动下,Android的官方开发语言,从Java变更为Kotlin。
之前呼声很高的Python,落榜了,
这导致了,Python社区受到很大挫折,内部矛盾激化。
Python 创始人 Guido van Rossum GITHUB 昨日(20180713)在邮件列表宣布,
他将完全脱离Python决策层,不再领导该语言,给自己一个永久的假期。
Guido其人,我们另文再说,
只是这躺枪来的 ... 蝴蝶效应啊!