谷歌贏得十年Java官司:複製Java SE API到移動系統重新實現屬於合理使用
美國最高法院裁定:谷歌複製Java SE API是合理使用。
駭客新聞網友討論:
重新實現API是軟體開發的重要組成部分,屬於合理使用。
這是保護互操作性和相容性的勝利,與Google與Oracle無關!
“合理使用”意思是:Android(用於智慧手機)並沒有直接與Java SE(用於膝上型電腦和桌上型電腦)競爭。表明Android是其他Java用途的可行替代方案。
歸類為合理使用的一類行動描述了這樣一種情況:即社會可以在不破壞鼓勵創新的情況下放開版權,為社會帶來實質性利益。一個經典的例子是引用某個書籍進行討論。思想的自由交流極大地豐富了社會,同時不鼓勵取代閱讀原文。
Android(至少,在切換到OpenJDK之前的版本)與Java SE程式並不完全相容原始碼或二進位制檔案,實際上,谷歌之所以不能獲得Java SE許可,是因為Sun堅持要首先將Android鎖定在相容性方面。因此,這完全代表了現有合理使用先例的擴充套件:現在,合理使用不僅適用於為實現互操作性而進行的完全重新實現,而且還出於程式設計師的方便性而適用於部分重新實現。
Google重新實現了使用者介面API,僅採納了投入新的、變革性的程式中所需要的功能,因此Google複製Sun Java API是對Java的合理使用。
這是軟體歷史上最重要的法律決定之一。美國最高法院基本上是挽救了整個軟體行業(以及FOSS專案),使其免受版權巨魔的破壞。
這將為重新實現API的人們開啟一扇大門。特別是,社交媒體聚合器(一個用於顯示Twitter,FB,Instagram等的應用程式)可能具有新的保護措施。
我認為將重點放在合理使用上會更好。這意味著即使您可以對該API進行版權保護,也沒關係,因為其他人可以重新實現它。
對於計算機程式碼,多數派還是認為使用0.4%的程式碼可以視為合理使用。在電影,教科書等中,我認為(儘管我不確定)應該也有一個先例,可以在合理使用條件下複製(複製)高達5%的產品,用於批評,學術分析等。
這是好事。複製API的能力可以帶來更多競爭,可以提高服務質量,因為其他API可以提供類似的功能,並且由於可以更輕鬆地從一種服務遷移到另一種服務而可以強制進行改進。
我確實看到的一件事是,可以防止開發演算法內部的敏感和昂貴的工作洩漏到API中。我再說一次,除了贏得開發者之外,別無他法。從根本上來說,API是用來完成工作的,如果開發人員不需要知道實現細節,我總體上認為這對使用API的開發人員來說是一個勝利。
雖然結果令人大為放鬆,但我認為這並不像我注意到一些頭條新聞(和評論員)所聲稱的那樣具有決定性。
一個懸而未決的大問題是“ API是否具有版權?” 法院迴避了這個問題,而是著眼於它是否合理使用,就是說,這種情況確實建立了一個先例:如果您複製API主要是為了匹配介面,以便開發人員可以重新實現它,那麼您就處於合理使用的範圍內。
谷歌複製這些API程式碼行不是因為它們的創造力或美觀,而是因為它們可以使程式設計師將其技能帶到新的智慧手機計算環境中。
總而言之,我認為這是一場勝利。
Google的複製增加了Java的價值,但是複製API時通常情況並非如此。
特別是如果我試圖建立一種與您的產品競爭的產品,並且出於互操作性的目的複製了您的API,那麼我很難要求合理使用。因為我的產品直接減少了您產品的市場。
舉一些歷史上重要的例子,Microsoft從Netscape複製了JavaScript的API,Microsoft從Lotus 1-2-3複製了Excel的API,從Wine複製了Windows的Linux的API,結果是Netscape倒閉了,Lotus 1-2-3停產了,Linux變得更流行了。
現在是否可以複製x86介面並避免為指令集向Intel或ARM支付許可費嗎?
在程式設計世界中,複製貼上與寫書並不相同,程式設計本質上始終是功能性的。
我認為將程式設計介面與電影指令碼(藝術作品)進行比較是不公平的,該程式設計介面更類似於設計房屋的水暖建築等。是的,寫得很好的API可以被認為是藝術,但是透過管道的類比,“模仿者”將確保將相同的管道連線到位於相同位置的馬桶。於牆後面發生的一切都沒有關係。
相關文章
- Java se 複習05Java
- [轉帖]十年拉鋸戰終結束,Google 贏得 Java API 版權訴訟GoJavaAPI
- GFS(谷歌檔案系統)的JAVA簡單實現谷歌Java
- java Arrays.copyOf實現淺複製Java
- Java常見的系統屬性值及如何通過Java程式設計獲得系統屬性值Java程式設計
- Java物件複製之MapStruct使用Java物件Struct
- H5實現移動端複製文字功能H5
- Java引用複製、淺複製、深複製Java
- 使用Playwright對Java API實現自動視覺測試 - applitoolsJavaAPI視覺APP
- Java SE, Java EE, Java MEJava
- 製作屬於自己得nuget包
- [轉帖]Oracle 敗了、谷歌贏了:Java API 版權案最終裁決Oracle谷歌JavaAPI
- mac系統上hdfs java api的簡單使用MacJavaAPI
- Java NIO - 零複製Java
- 使用簡單的Java程式碼實現酒店管理系統Java
- Java淺複製大揭秘:如何輕鬆複製兩個不同物件的某些相同屬性Java物件
- 從 MySQL 到 ClickHouse 實時複製與實現MySql
- vim複製文字到系統貼上板
- 簡單快遞系統 java實現Java
- java bean 物件屬性複製框架BeanMapping-01-入門案例JavaBean物件框架APP
- 03-Java框架FTPClient 使用rename()移動檔案和檔案重新命名Java框架FTPclient
- Java物件複製原理剖析及最佳實踐Java物件
- 香橙派: 複製系統到新sd卡(系統備份)SD卡
- 基於java的網路招聘系統的設計與實現Java
- 基於java的文章釋出系統的設計與實現Java
- MongoDB mongoshake 遷移分片到複製集合MongoDB
- 谷歌助力,快速實現 Java 應用容器化谷歌Java
- 讓我們打一場動態代理的官司–Java動態代理Java
- java bean 物件屬性複製框架BeanMapping-release_0.0.2-註解支援JavaBean物件框架APP
- ElasticSearch Java API使用ElasticsearchJavaAPI
- ZooKeeper 使用 Java APIJavaAPI
- EasyExcel Java API 使用ExcelJavaAPI
- 使用Java Stream API中DistinctBy刪除重複資料JavaAPI
- js 實現深複製/深複製JS
- Java Platform SE 8(Java™程式語言)JavaPlatform
- 基於Java+SpringBoot+vue+elementui圖書商城系統設計實現JavaSpring BootVueUI
- 短視訊系統原始碼,動態內容實現長按複製貼上原始碼
- java實現控制元件的移動及使用滑鼠改變控制元件大小Java控制元件