JoshuaBloch - huangyuefeng/study GitHub Wiki

Joshua Bloch先生,科技届的梅长苏,他的9行Java代码,导致法院让Google赔Oracle88亿美刀。

src_url

JoshuaBloch

下面我带大家一探究竟。

  • 代码说话
	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其人,我们另文再说,

只是这躺枪来的 ... 蝴蝶效应啊!