[转帖]Oracle 起诉 Google 事件
Oracle 起诉 Google 事件
https://www.cnblogs.com/panchanggui/p/9449842.html Oracle 是世界第二大软件公司 世界第一大DBMS公司 和 可能的世界第一大法务公司 前几天oracle来自己的创始人也给告了 (因为收购netsuite 的关系 创始人本身也是netsuite的40%股份的大股东) 从收购sun 开始 oracle 就一直在裁员 裁成 sun的硬件开发人员 然后利用mysql还有java来赚钱. 对 google的诉讼就能收回收购sun的本钱. 从2019年开始 已经对java进行收费了. BCL的协议 其实很坑的. Sun 因为经营不善 要 开源java Oracle因为要更多的现金流 还使java逐渐闭源.. 养熟了就杀的办法 其实涸泽而渔了...
最近,Google 和 Oracle 纠缠多年的“Java 侵权案”又有了新的判决结果。Google 在此次对决中败诉,并可能需要支付高达88亿美元的赔偿金。这个案件还引发关于 API(应用程序编程接口)是否应该受版权保护的争议。
其实早在2010年8月,Oracle 就已经向法院起诉 Google 侵权,声称 Google 在开发 Android 平台时未经授权就使用了 Oracle 的 Java 应用编程接口数据包。
另外,虽然 Google 当年为避免版权问题而重写了 Java API,却意外地使用了和 Oracle JDK 相同的一小段代码,这使得 Google 陷入不利的局面。
“价值88亿美元的天价代码”
正是由于 Google 在 Android 平台上使用 Java 时并未和 Sun 公司达成授权协议,造成了巨大的隐患,尤其是在 Oracle 收购 Sun 公司之后。
那么,当初 Google 为什么要选择 Java 作为 Android 应用开发的语言呢?
2007年11月,Google 首次向外界展示自家的 Android 操作系统。那时候,新生的 Android 生态非常薄弱,还要面对 Symbian, iOS, Windows Mobile 等强大的对手, 迫切需要吸引大量开发人员来参与其生态建设,因此必须选择比较热门的编程语言。
选择 C++ 如何?当时移动操作系统的霸主还是Symbian OS,也就是我们熟知的“塞班”,其原生应用就是用 C++ 编写的。虽然 C++ 不失为优秀的开发语言,被广泛应用于桌面系统的软件开发,但在移动平台上的应用确实存在不少弊端。首先,要使用 C++ 编写出高质量的 APP,就要求开发者对内存分配、多任务调度等机制有足够深刻的理解,其难度之大可想而知。此外,用 C++ 编写的塞班应用甚至需要针对不同机型进行适配 ,这对于开发者和用户来说都是非常不便的。
在这种情况下,以良好的可移植性著称的 Java 自然成为了比较理想的选择。Android 设备机型众多,使用 Java 有助于开发者摆脱硬件差异带来的许多困扰。再加上 Java 聚集了庞大的开发者群体,有利于快速建设 Android 生态。
不过,Google 并没有直接将 JVM 直接搬到 Android 上。为了针对移动设备进行优化,提高程序运行速度,Google 另外造了一个名为Dalvik 的虚拟机来运行 Java 编写的 Android 应用。需要指出的是,Dalvik 并不支持运行普通的 Java 程序,所以在严格意义上它并不是 JVM。自然地,Google 没有获得 Sun 公司的 Java授权,也就为后来的一系列诉讼埋下伏笔。
Android 与 Java 的关系将何去何从?
在和 Oracle 漫长的斗争中,Google 已经开始远离 Java。2015年,Google 宣称在新的 Android 系统中已全面改用 OpenJDK。去年,Google 更是宣布将 JetBrains 公司开发的 Kotlin 语言作为 Android 平台的一级开发语言。
Kotlin 是一种支持多种编译方式的静态语言,能够将代码编译为 Java 字节码。相比 Java,Kotlin 在语法上做了一些改进,并增加了语法糖。对于 Java 程序员来说,跳转到 Kotlin 这门新语言不需要花费很大的力气。
尽管如此,相信在未来相当长的一段时间内,Java 对于 Android 平台的巨大影响力依然存在。
Oracle 或成最大赢家
2009年4月,Oracle 公司宣布以74亿美元的价格收购 Sun公司,Sun 公司旗下的 Java 自然归 Oracle 所有。而如今 Oracle 通过 Java 这张牌向 Google 索取高达88亿美元的赔偿费,倘若 Google 不再上诉,Oracle 自然成了最大赢家。
不过,经历这一事件以后,Oracle 在行业内更加饱受指责。近年来,Oracle 公司对开源界并不友好。当数据库软件 MySQL 的所有权落入 Oracle 手中以后,开源社区担心 MySQL 被闭源,另外维护 MariaDB 作为其分支;两年前,Oracle 开始利用协议条款向其客户和合作伙伴追索 Java 许可费用。
结语
如今的 Android,已经成为全球第一大操作系统,平台上的应用数量突破百万,Java 在其发展道路上功不可没。无论两家公司的纷争结局如何,Android 和 Java 都不失为一对成功的组合。
转自:https://zhuanlan.zhihu.com/p/35628578
[转帖]Oracle 起诉 Google 事件的更多相关文章
- Oracle 起诉 Google 事件
最近,Google 和 Oracle 纠缠多年的“Java 侵权案”又有了新的判决结果.Google 在此次对决中败诉,并可能需要支付高达88亿美元的赔偿金.这个案件还引发关于 API(应用程序编程接 ...
- 【Oracle】等待事件之 V$SESSION_WAIT
(1)-V$SESSION_WAIT 这是一个寻找性能瓶颈的关键视图.它提供了任何情况下session在数据库中当前正在等待什么(如果session当前什么也没在做,则显示它最后的等待事件).当系统存 ...
- Oracle Tuning 基础概述01 - Oracle 常见等待事件
对Oracle数据库整体性能的优化,首先要关注的是在有性能问题时数据库排名前几位等待事件是哪些.Oracle等待事件众多,随着版本的升级,数量还在不断增加,可以通过v$event_name查到当前数据 ...
- 关于Oracle的44951事件
最近有同事遇到某客户数据库产生大量阻塞,等待事件为:enq HW - contention,最开始采用不断杀会话的方式,效果不好,问题一直高频反复.进一步确认SQL是大量的insert,且插入的表中含 ...
- Oracle告Google输了
Oracle告Google输了 boxi • 2016-05-27 • 大公司 Google表示,陪审团的认定代表了Android生态体系.Java开发社区以及依靠开放免费编程语言开发创新消费者产品的 ...
- [转帖]Oracle 裁员史:技术人死于重组,卒于云计算
Oracle 裁员史:技术人死于重组,卒于云计算 https://www.infoq.cn/article/tm-mcdHCPCI4eEwr6dbY 大厂裁员 我妈妈也总担心我没工作了 怎么还房贷 田 ...
- ORACLE 常见等待事件
一. 等待事件的相关知识 1.1 等待事件主要可以分为两类,即空闲(IDLE)等待事件和非空闲(NON-IDLE)等待事件.1). 空闲等待事件指ORACLE正等待某种工作,在诊断和优化数据库的时候, ...
- [转帖]再次提醒Google Chrome用户应尽快升级浏览器到72.0.3626.121
再次提醒Google Chrome用户应尽快升级浏览器到72.0.3626.121 转帖地址: https://www.cnbeta.com/articles/tech/825591.htm 国内离线 ...
- Oracle常见等待事件
1Buffer busy waits从本质上讲,这个等待事件的产生仅说明了一个会话在等待一个Buffer(数据块),但是导致这个现象的原因却有很多种.常见的两种是: · 当一个会话视图 ...
随机推荐
- webservice 概念+测试案例
webservice的概念?(一句话概括什么是WebService) WebService是一种跨编程语言.跨操作系统平台的远程调用技术.远程调用技术: 远程调用是指一台设备上的程序A可以调用另一台设 ...
- ckeditor粘贴word文档图片的思路
由于工作需要必须将word文档内容粘贴到编辑器中使用 但发现word中的图片粘贴后变成了file:///xxxx.jpg这种内容,如果上传到服务器后其他人也访问不了,网上找了很多编辑器发现没有一个能直 ...
- Java进阶知识19 Struts2和Spring整合在一起
1.概述 1.Spring负责对象创建 2.Struts2负责用Action处理请求 3.整合的关键点:让Struts2框架Action对象的创建交给Spring完成. 2.整合实例 需要用到的 ...
- 51 Nod 1700 首尾排序法
1700 首尾排序法 有一个长度为n的数组 p1, p2, p3, ⋯, pnp1, p2, p3, ⋯, pn ,里面只包含1到n的整数,且每个数字都不一样.现在要对这个数组进行从小到大排序,排序的 ...
- cmake 学习-cmakelists.txt
#设置库的路径,电脑里有qt4以及qt5,使用qt5时 设置qt5的环境变量(路径). set(CMAKE_PREFIX_PATH $ENV{QTDIR}) #设定工程名称 Project(prona ...
- 沙雕题目 来自luogu
P5316 恋恋的数学题 题目描述 现在恋恋正在处理的题目十分简单:现在有k (2≤k≤4)k \space (2\leq k\leq 4)k (2≤k≤4)个数,恋恋不知道它们分别是几,只知道它们两 ...
- Selenium结合BeautifulSoup4编写简单爬虫
在学会了抓包,接口请求(如requests库)和Selenium的一些操作方法后,基本上就可以编写爬虫,爬取绝大多数网站的内容. 在爬虫领域,Selenium永远是最后一道防线.从本质上来说,访问网页 ...
- scrapy框架之进阶
五大核心组件 - 引擎(Scrapy) 用来处理整个系统的数据流处理, 触发事务(框架核心) - 调度器(Scheduler) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. ...
- 十二、 RAID
https://blog.51cto.com/sonlich http://note.youdao.com/noteshare?id=17083150f38dd19343f82ea6cc0e0e62& ...
- 利用python获取自己的qq群成员信息
利用python获取自己的qq群成员信息! 首先说明一下需要使用的工具以及技术:python3 + selenium selenium安装方法:pip install selenium 前提:获取自己 ...