文档章节

Java的战争

J
 Java领航员
发布于 05/25 14:19
字数 2388
阅读 11
收藏 0

 

本文来自微信公众号: 金捷幡(ID:jin-jiefan) ,作者:金捷幡,封面:拉里·埃里森(东方IC)

2019年5月,彻底撕破脸的特朗普掀起对华为的战争,谷歌被迫吊销了华为的Android授权。开源软件的版权问题,使我不禁想起软件行业的一宗惊天巨案。

看过《手机基带芯片故事》的朋友,一定记得乔布斯曾强烈表达过对谷歌抄袭苹果的愤怒:“我要用尽苹果400亿美金的存款,发动一场热核战争,来摧毁Android,because it's a stolen product。” 

千万别认为乔帮主只是说着玩的。

虽然他不幸去世多年,他最好的朋友甲骨文 (Oracle) 董事长拉里埃里森仍然在坚持这项未竟的事业。

桀骜不羁的埃里森在回顾乔布斯临终情景时动情地说:“他已经被癌症消耗光了,他实在太累了又太痛了。虽然他绝对是我见过最坚强的人,但他还是最终放弃了和死神的对抗。”他最后停药的决定震惊了所有人,三天后帮主驾鹤西去。

作为惺惺相惜的英雄,埃里森当年曾经想把苹果买下来还给乔布斯。

2009年4月,甲骨文宣布以74亿美元收购了Sun Microsystems。埃里森面对IBM的竞价毫不犹豫,最终以超过Sun市值30%的价格将其拿下。

2010年收购完成后,埃里森随即对谷歌宣战,起诉Android对Java的侵权。

Java之父James Gosling是个加拿大人,他在Sun工作了26年。直到Sun被甲骨文收购后,他选择了离开。

有谣传说,Gosling因为学C++太难而在其上去掉了很多繁复的特性做出了Java。这个不足为信,因为Gosling是计算机圣殿卡内基梅隆的博士,学个语言对他来讲太小儿科了吧。

Java是原本设计用于机顶盒之类的小型设备上的,但 出乎任何人的意料,互联网大潮来临后,Java编写一次、到处运行的特性被各种应用发挥到了极致 。在企业级软件上,Java更是整合各种不同软硬件和操作系统做出分布式应用的神器。

二十年来,Java除了受到.Net的小型挑战外,由于拥有最成熟稳定的企业应用组件,其互联网的支柱地位仍牢不可破。

不仅在企业级市场呼风唤雨,另外一个意外的选择,使得Java在移动终端也大放异彩。

Android之父安迪鲁宾1989年进入苹果工作,那时他还是个小工程师。因为他之前在蔡司机器人部门工作,苹果的同事给他起了个外号:Android (机器人) ,当时谁也不知道,这个机器人在多年以后成为苹果最大的竞争对手。

当时乔布斯已经被驱逐出苹果。被老乔请来“不卖糖水改变世界”的CEO John Sculley,其实远没有后来外界评论的那么不堪。他把苹果营业额扩大了10倍,而且主持了大屏手持电脑Newton的开发。

John Sculley把专门做手持操作系统的部门分拆成General Magic (通用魔法公司,这个名字好赞) ,而这家公司成为未来智能手机的黄埔军校。

安迪·鲁宾在通用魔法公司汲取了充足的养分,后来在2003年创建了Android公司 (Android Inc.) 。Android系统最早是设计给数码相机用的,数码相机本身硬件就千差万别,所以Java优秀的跨平台特性就被选中了。

结果这个平台做出来后,发现用于手机也很适合。2005年,正在寻找手机操作系统的谷歌看中并收购了Android公司。

2007年1月,乔布斯发布了iPhone,极大地震撼了谷歌。为了赶时间,谷歌来不及更改Android所用的开发语言Java,这给后来埋藏了重大的祸根。

当然,Java充足的程序员群体和便利的开发特性,对Android本身来讲也是有极大帮助的。

2007年11月,就在第一代iPhone上市4个月后,谷歌便匆忙开源了Android并成立开放手机联盟 (OHA) 。这时的Android连个半成品都算不上,但Java的地位被牢固地确定了下来。

和苹果iOS运行原生Object C编译的机器码不同,Java必须跑在虚拟机上。这使得Android在速度上天然存在问题。谷歌为了尽可能提高速度,自己做了Dalvik虚拟机 (DVM) 。

DVM采取了很多“作弊”的加速手段,比如预读取用户装的很多APP (APK) 并存入缓存,比如把Java Bytecode替换成DVM的指令。这些手段的副作用之一,就是使Android需要比iPhnoe大得多的内存,而且手机用的时间越长,APP越多,系统越慢。

这些“作弊”手段,也使得谷歌的Java虚拟机和Sun原版虚拟机完全不兼容。而Sun对这种分裂Java的行为不能容忍。

谷歌确实去找Sun申请过Java授权,但是Sun要求谷歌分享对Android分支的控制而遭到拒绝。谷歌当时还拒绝了Sun提出的三年支付约5000万美元授权费用的要求,而后来Sun归了埃里森以后,这数字提高到50亿美元。

在未获Java授权的情况下,谷歌采取了“洁净室”这种反向工程手段 (可参考: 《BIOS和PC的故事》 ) 开发了自己的Java库。这是一种类似抄袭但又不明显违法的手段。

但是,谷歌仍旧保留了Sun Java原有的一些编程接口 (API) ,后来被甲骨文抓住了把柄。

甲骨文总架构师Edward Screven在法庭作证说,他曾和埃里森讲,拿下Java是收购Sun的唯一重要目的。

虽然Java之父Gosling在离开甲骨文后短暂加入了谷歌,他在接受采访时表示,他认为谷歌当年确实糊弄了Sun。

开源软件只是意味着你能看到全部源代码,这并不表示你可以随意使用。对于Java来讲,程序员是可以免费使用的,但是对于企业来说还是需要获得授权的。

而API是否受版权保护,这个在美国法律界也产生了巨大的分歧。如同你做菜的配方可以受版权保护,但是点菜的菜单也受保护吗?

甲骨文和谷歌两大巨头旷日持久的法律大战,至今已经9年还未打出最终结果。其间双方在各级法院各有胜负,法官和陪审员都对此案看法不一。

埃里森和拉里·佩奇都亲自上庭作证,这在美国大公司诉讼中极为罕见,而每一次埃里森都拒绝和解。

2018年3月,联邦上诉法院判决甲骨文胜诉,这意味着谷歌应赔偿高达近百亿美元。

谷歌则第二次将此案提交到美国联邦最高法院。在四年前最高法院拒绝审理后,这次九位大法官似乎被迫要做出判决了。

众所周知,美国是法官立法的国家。联邦最高法院的判决会深远影响软件行业的很多悬案。

法官们还要判定的是,谷歌的抄袭行为是故意侵权还是合理使用。甲骨文已经举证说Android在10年间为谷歌赚了超过420亿美元。

对甲骨文不利的是,Android已经是大到不能倒了,没有法官会支持禁止Android手机的销售。正因为如此,谷歌一直把案件拖了九年。

而在这段时间内,谷歌把Android的Java库转到OpenJDK,把DVM转到ART,把Java语言转到Kotlin语言。

2019年4月底,联邦最高法院正式发文给美国司法部,要求联邦检察官协助断案。这似乎是美国三权分立的一个漏洞,但也说明了此案判决难度极大。

似乎大多数程序员都很厌恶甲骨文对开源的霸道行为,但是埃里森为乔布斯“复仇”的举动又让人觉得很感动。毕竟谷歌确实存在“抄袭”苹果和Java的行为,并由此获取了巨额利润。

考虑到对乔帮主的感情,以及近期的华为事件,我内心还是希望谷歌最终会为此付出代价。

*文章为作者独立观点,不代表虎嗅网立场

本文由金捷幡© 授权虎嗅网 发表,并经虎嗅网编辑。转载此文章须经作者同意,并请附上出处(虎嗅网)及本页链接。原文链接:https://www.huxiu.com/article/301065.html

© 著作权归作者所有

J
粉丝 1
博文 45
码字总数 110128
作品 0
朝阳
私信 提问
谷歌甲骨文专利战 谁将是最后的赢家?

导读:甲骨文控告 Google 侵权诉讼战正式开打,若谷歌败诉,除了将支付 10 多亿美元的赔偿金,还会影响 Android 手机价格及供货。Android 市场的不稳定,也不是甲骨文所愿意看到的,他们只是...

墙头草
2012/04/24
1K
31
Google 不想与甲骨文争了,要放弃 Java APIs

与Android崛起相伴的其实还有战争,而其中最重要且最有争议性的,恐怕就是甲骨文和Google的官司了。 自2010年起,两家公司关于Android系统的一部分是否侵犯了甲骨文的版权和专利,一起争论不...

oschina
2015/12/31
20.1K
108
阿里巴巴Java“代码反潜机”P3C喜提首届中国优秀开源项目二等奖!

12 月 12-14 日,由中国开源云联盟、中国电子技术标准化研究院和全国信标委云计算标准工作组主办的第八届中国云计算标准和应用大会在京举行。 聚焦企业上云和开源,大会公布了首届中国优秀开...

云效鼓励师
2018/12/13
0
0
11大类编程语言功能比较表(信息图)

导读:有程序员的地方就会有因为对编程语言的探讨而引发的战争(例如Linux之父Linus Torvalds炮轰C++ 一无是处,认为C++既无助于简化,以实际用于进行原型化或者简单的GUI编程,又不是像C那样...

sevens2008
2012/01/31
5.3K
12
软件之美感言

1.今天用yum安装了几个软件,感到了它的强大,这使我想起了曾经使用过的apt包管理机制,二者是何等的相似,从中我看到了软件之美,本文我不从开发和设计的角度,仅从应用的角度谈谈我的感想,...

晨曦之光
2012/04/10
50
0

没有更多内容

加载失败,请刷新页面

加载更多

用Javascript评估用户输入密码的强度

密码已经是我们生活工作中必不可少的工具,但一个不安全的密码有又有可能会给我们造成不必要的损失。作为网站设计者,如果我们在网页中能对用户输入的密码进行安全评估,并显示出相应的提示信息...

花漾年华
31分钟前
0
0
Python 打开目录与指定文件

Python打开外部文件有很多方法, os.popen打开外部程序,但发现只能打开文件所在目录的文件 os.system可打开外部文件os.system(command) command 要执行的命令,相当于在Windows...

shzwork
33分钟前
2
0
Leetcode # 118:Pascal's Triangle 杨辉三角

118:Pascal's Triangle 杨辉三角 Given a non-negative integer numRows, generate the first numRows of Pascal's triangle. 给定一个非负整数 *numRows,*生成杨辉三角的前 numRows 行。 ......

iCodeBugs
43分钟前
1
0
IntelliJ IDEA导入Gradle项目

1.File > Open 找到项目后选择build.gradle文件,点击ok image 2.点击Open as Project image 3.选择本地Gradle以及JDK image 4.点OK完成...

青峰Jun19er
48分钟前
2
0
Python实现斐波那契数列

斐波那契数列大家都很熟悉吧,咱们在高中学数学的时候,老师会讲这个定律以及算法,其实数据结构和数学息息相关,数学思维好的往往逻辑思维就比较好,今天小猿圈带大家学习一下python的斐波那...

小猿圈加加
49分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部