谈谈最近的Oracle与Google之争
近日获悉,Oracle将对Google提起诉讼,理由是Android系统侵犯到Oracle所拥有的专利和著作权。 同样是JCP成员,同样是Java技术的使用以及支持者,Oracle与Google之间为什么会发生这种事呢?理由很简单, 现在主宰Java体系者是个冰冷的龟壳,而不再是温暖的太
近日获悉,Oracle将对Google提起诉讼,理由是Android系统侵犯到Oracle所拥有的专利和著作权。
同样是JCP成员,同样是Java技术的使用以及支持者,Oracle与Google之间为什么会发生这种事呢?理由很简单,
现在主宰Java体系者是个冰冷的“龟壳”,而不再是温暖的“太阳”了。
作为现今的Oracle公司来讲,既然收购了Sun,当然也拥有了原Sun公司的权力与义务,而Google的Android,作为Java技术的一项重要分支,特别是作为Java ME在移动操作系统领域的主要竞争者之一,自然成了Oracle的死敌。要知道,坏小子Oracle可不是那个谦虚谨慎的Sun先生,在他们眼里看来,此刻的Android,仅仅是个将会阻挡Oracle发财的拦路虎,仅仅是个不领“牌照”就上路的违规者,当然要除之而后快。我相信,根据Oracle的一贯风格,对这种情况的发生,相信很多人早已提前有了思想准备。
所以,当Oracle与Google相遇时,怪兽大战奥特曼的情形,便无法避免的发生了。
但是,关于Oracle的诉讼请求,也就是“寻求法庭发出禁制令禁止谷歌进一步开发和销售Android软件,并希望就谷歌的故意侵权行为获得补偿金”的诉讼请求能否实现呢?我认为,或许可以实现,但仅仅在于实现后半部分,前半部分是不可能的了。
首先,Google本身同Oracle(Sun)、IBM、Red Hat等公司一样,是JCP(虽然有人说它已经死了)的一员,也是JSR的参与及制定者,更是Java社区的重要支持者之一,很多Java技术的改进与标准的制定,本身就来源于Google,而并非Oracle(Sun)所独有。Oracle现今虽然拥有很多Java技术专利,但也仅限于Sun所拥有的部分。反过来说,作为Java社区重要成员的Google,难道就没有一点握在手中的Java技术专利吗?我想是不可能的。假如未来这场“口水战”发展到白热化,Google不管不顾的启用到手中“黑匣子”,反过来给Oracle一下,他们到时能否吃得消,也在两可之间。更何况,虽然为了经济利益,很多时候顾不得道义,但身为JCP成员的Oracle与Google同室操戈,对Java体系将是大大的不利,如果Oracle玩得过分,很可能闹得整个Java体系崩溃,那么刚刚花了70多亿收购Sun的Oracle,所遭受的损失,恐怕将远远在Google之上。埃利森虽然视财如命,倒也不是个糊涂人。
其次,Android的底层系统采用Linux,Java核心包来自Apache的Harmony,图形引擎采用Skia封装,虚拟机是丹伯恩斯坦研发的Dalvik。实际上,Android所采用的技术,半数以上来自于第三方开源项目和Google自主研发(甚至是重复造轮子),除了标准语法以外,说Android体系同传统Java体系绝缘也不为过。一旦Oracle起诉成立,就等于法官将要同时理清这N多开源项目的来龙去脉(拥有者大多与Google无直接从属关系),难度可想而知。更何况,早在2006年起,由Sun主导的开源Java,也让Java以GPL协议的方式获得了很大程度上的自由,很多Java技术,早就非Sun所独占了。当然,专利依旧存在,但在美国这种司法上承认开源协议的国家,当专利与开源协议冲突时,官司将变得相当纠结。难道Oracle能够将这所有开源项目一笔抹杀,这所有开源协议一笔勾销吗?我相信即便Oracle能够做到,以后他们也不用在地球上混了(某个被戏称为火星的世界或许还有戏)。
最后,也是最主要的,基于多种开源项目组合而成的Android系统,不单本身开放源码,而且是100%免费的(某些额外的商业授权需要和Google联系并收费,但金额很小,也不是必须使用)。也就是说,Google虽然是Android体系的开发及拥有者,但直接获利却少的可怜。在大多根据侵权获利判定侵权惩罚的美国,即便最终侵权成立,想单独在Android身上卡出油水来,也会是件非常困难的事情,恐怕连请律师的费用甚至诉讼费都会远远超过这个数字了。更何况,那许多的Android使用者也不可能愿意负担连带责任。假如Oracle想从Android上获利,那么Oracle与Google和解将是最好的方式,死卡着Android不放,一旦将众多手机厂商也卷入进来,Oracle势必成为众矢之的,得不偿失。
即便在美国,即便Oracle与Google能找到最具有专业经验的法官去审理此案,这许许多多的开源协议与专利归属问题(很多还是交叉授权),恐怕也会将他搞的如坠云里雾里,就连搞清这个官司究竟在争论些什么,究竟谁使用的技术是谁所拥有,都会有相当程度的困难,更别说理清头绪,审清案件了。
——找十位法官判决此案,出现十种截然不同的结果,我也不会感到一丝诧异。
当然,即使判决难度很大,但判决结果却是必然会有的。根据以往经验,由于前Sun有大量员工跳槽到Google,他们或多或少总会透露一定的Sun技术给Google,所以这场官司大约能让Oracle从Google那里套现并取得和解,最极端情况下,甚至此后每卖出一台拥有Android系统的手机Oracle也能获得一定的利益。但是,凭此便想搞掉Android,却是绝对不可能,因为Android的市场占有率,早已不是一纸公文可以改变得了的,更何况Google手里还有大量底牌。事实上,微软的J++与J#很早以前就面临过与Android系统非常类似的问题,此刻不是依旧幸福的活着吗?
可以肯定的是,这场官司对于整个Java体系是弊大于利的,除了律师以外,没有任何人是真正的赢家。
我想,埃利森应该很清楚这点,也仅仅是为了争取“分一杯羹”这一终极目标,而去起诉Google的。特别是在他收购了Sun,却找不到太多盈利途径的时候——你Google吃肉,至少要给Oracle留碗汤喝嘛。
对了,施密特,我给你出个“好主意”,连汤也不想给埃利森的话,干脆和微软达成协议怎么样啊?咱爷们有志气,以后Android连Java语法都不用,改用J#吧(^^)。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Oracle 打不開的解決辦法包括:1. 啟動數據庫服務;2. 啟動監聽器;3. 檢查端口衝突;4. 正確設置環境變量;5. 確保防火牆或防病毒軟件未阻止連接;6. 檢查服務器是否已關閉;7. 使用 RMAN 恢復損壞的文件;8. 檢查 TNS 服務名稱是否正確;9. 檢查網絡連接;10. 重新安裝 Oracle 軟件。

解決 Oracle 游標關閉問題的方法包括:使用 CLOSE 語句顯式關閉游標。在 FOR UPDATE 子句中聲明游標,使其在作用域結束後自動關閉。在 USING 子句中聲明游標,使其在關聯的 PL/SQL 變量關閉時自動關閉。使用異常處理確保在任何異常情況下關閉游標。使用連接池自動關閉游標。禁用自動提交,延遲游標關閉。

Oracle 中,FOR LOOP 循環可動態創建游標, 步驟為:1. 定義游標類型;2. 創建循環;3. 動態創建游標;4. 執行游標;5. 關閉游標。示例:可循環創建游標,顯示前 10 名員工姓名和工資。

在CentOS系統上搭建Hadoop分佈式文件系統(HDFS)需要多個步驟,本文提供一個簡要的配置指南。一、前期準備安裝JDK:在所有節點上安裝JavaDevelopmentKit(JDK),版本需與Hadoop兼容。可從Oracle官網下載安裝包。環境變量配置:編輯/etc/profile文件,設置Java和Hadoop的環境變量,使系統能夠找到JDK和Hadoop的安裝路徑。二、安全配置:SSH免密登錄生成SSH密鑰:在每個節點上使用ssh-keygen命令

Oracle不僅是數據庫公司,還是雲計算和ERP系統的領導者。 1.Oracle提供從數據庫到雲服務和ERP系統的全面解決方案。 2.OracleCloud挑戰AWS和Azure,提供IaaS、PaaS和SaaS服務。 3.Oracle的ERP系統如E-BusinessSuite和FusionApplications幫助企業優化運營。

Oracle 日誌文件寫滿時,可採用以下解決方案:1)清理舊日誌文件;2)增加日誌文件大小;3)增加日誌文件組;4)設置自動日誌管理;5)重新初始化數據庫。在實施任何解決方案前,建議備份數據庫以防數據丟失。

要停止 Oracle 數據庫,請執行以下步驟:1. 連接到數據庫;2. 優雅關機數據庫(shutdown immediate);3. 完全關機數據庫(shutdown abort)。

可以通過使用 Oracle 的動態 SQL 來根據運行時輸入創建和執行 SQL 語句。步驟包括:準備一個空字符串變量來存儲動態生成的 SQL 語句。使用 EXECUTE IMMEDIATE 或 PREPARE 語句編譯和執行動態 SQL 語句。使用 bind 變量傳遞用戶輸入或其他動態值給動態 SQL。使用 EXECUTE IMMEDIATE 或 EXECUTE 執行動態 SQL 語句。
