1. 程式人生 > >2019Java依然免費,你應該知道的事實真相,不要被誤導--技術領導必讀

2019Java依然免費,你應該知道的事實真相,不要被誤導--技術領導必讀

     2019年關於Java是否免費,一直存在誤解,國內新聞斷章取義,搞錯概念,誤導開發者。 作為企業的技術領導應該弄清楚關鍵的概念,避免被誤導。

     國內一直謠傳Java2019年1月1號收費,今天都2號了,使用Java的企業運轉一切正常。各種新聞標題聳人聽聞,但是如果你也被嚇到,那不妨看看本文調節一下心情。

      相信許多java開發者也會被這種新聞或者文章困擾,老外也遇到過,自2001年擔任美國加州聖地亞哥Java UG主席的Paul Webber也看過這種文章:   

   “在過去的六個月裡閱讀很多部落格,看不下去,因為那裡有許多關於Oracle許可和JDK釋出週期的錯誤資訊,”

   “本次大會Mark Reinhold的演講,這是一個可信的訊息來源- 他可能是真相的來源 - 不要被誤導。“

     本文會講解Oracle JDK、Open JDK、Oracle首席架構師宣告、Amazon JDK Corretto、大批公司轉Java、後期應對策略,給大家做個參考,尤其是公司的技術領導。

      

1、Java依然免費,國內新聞斷章取義誤導大眾,混淆概念

     首先搞清楚幾個基本概念,國內很多文章作者是完全沒有搞清楚概念的前提下,亂下結論,發文章誤導開發者。

      Oracle JDK 8 is undergoing the “End of Public Updates” process, which means there are no longer free updates for commercial use after January 2019.

      Oracle plans to provide full paid support for Oracle JDK 8 until at least 2025 and Oracle JDK 11 until at least 2026 (

details). There is a wide range of paid support options for Java SE / OpenJDK 8 and 11 binaries from Azul, IBM, Red Hat, and others.

     宣告的意思:Oracle 不在對JDK8的商業用途提供免費的公開的更新服務。看清楚第一行英文,斷章取義的國內文章基本就翻譯為Java收費。。。

     國內新聞偷換概念的地方在於,做個類比,Redhat自己研發的企業版Linux收費,然後新聞標題偷換概念:Linux收費!偷換了概念。誤導大家。

     

     當然 Oracle投入大量資金,維護 Oracle JDK,收費無可非議,但是這些基本概念完全不同,不要被誤導。  

     關於Java的幾個概念,範圍要界定一下。

     Oracle收費!=Java收費,這是偷換概念。

     Oracle JDK收取技術支援費用!=Java收費。

     Oracle JDK != Java JDK。

     e5e7ee7736d8f4aee5b6d3eb2998acd25c2663c4

     Java的JDK版本很多,包括Open JDK 和 Oracle JDK。

     Open JDK又存在許多的分支。

     Oracle JDK 8正在進行“公共更新結束”流程,這意味著2019年1月之後不再有商業用途的免費更新

 

      Amazon Corretto 是Java之父James Gosling 加盟了亞馬遜之後,今年11月15號永久開源了自己的JDK,其他公司可以免費使用,無需付費。

      當然還有其他的免費的JDK,以及對應的支援,我們下面詳細說明一下。

      但是,自Java SE 9以來,Oracle還提供Oracle的OpenJDK版本,可免費用於商業用途,其他公司提供免費的OpenJDK版本,如Amazon、谷歌、阿里巴巴、AdoptOpenJDK,Azul,IBM,Red Hat,Linux distros等。

     Java規範由Java Community Process(JCP)委員會管理制定,並通過Java規範(JSR)體現。國內阿里巴巴是唯一的JCP委員公司,參與Java規範制定。


2、Oracle首席Java架構師Mark Reinhold:Java永遠開源、免費

     ec978a7f40361e40d25041069659f52cc2732754

     2018年10月22日,Oracle首席Java架構師Mark Reinhold在Oracle Code One技術大會上演講表示:Java仍然是開放和免費的。

     

      Paul Webber ,美國加州聖地亞哥 Java Users Group 主席,2001年至今,說:

     “I stopped reading a lot of blogs in the last six months because there was so much misinformation out there about Oracle licensing and the JDK cycle,” said Paul Webber, who has been president of the San Diego Java Users Group since 2001. 

     “This was a keynote from a responsible source—he is probably the source of truth—to get rid of the misconceptions. He knows his stuff, so that adds to the credibility of the presentation.”


3、Open JDK永久免費,包含太多開源、免費的分支

Open JDK是最大的開源、免費 JDK專案。官方網站: http://openjdk.java.net/

眾所周知,如果只有Java語言是完全沒有用的,企業開發需要許多底層的庫,以及周邊的框架,架構方案。這樣才能完整地開發系統。

5299ad57fa158e4414e60464774a587fb4b7725e

需要掌握的一個關鍵點是,世界上大多數JDK構建都基於開源、免費的OpenJDK專案。

 Oracle JDK只是基於OpenJDK程式碼庫的眾多分支之一。

雖然過去幾年Oracle在JDK中有額外開發的擴充套件功能,但從Java 11開始,情況就不再如此。


使用Open JDK擴充套件的公司很多,國內著名的阿里巴巴,嚴格來說,BAT都有自己內部維護的Linux和Open JDK分支,為了防止可能的版權問題。


許多公司也提供基於OpenJDK程式碼庫的構建分支。這些構建可能具有額外的品牌和/或其他非核心功能。這些公司中的大多數也開源回饋貢獻給之前OpenJDK專案,包括安全補丁和更新包。

所以不要被 誤導,絕大部分公司,都已經做好了準備。

此外,獲得JDK有兩種主要方式。第一個是更新機制buit到作業系統(例如linux redhat)。第二種自己下載二進位制檔案安裝。

為了進一步研究這一點,讓我們分別看一下Java 8和Java 11。

Java SE / OpenJDK / Oracle的OpenJDK構建/ Oracle JDK

OpenJDK社群建立並維護Java SE規範的(GPLv2 + CE),

來自各種大廠(例如Amazon Azul,Eclipse,IBM,Red Hat,Oracle,SAP等)的Java SE實現,其中最常見的是Oracle JDK。

Oracle JDK 8正在進行“公共更新結束”流程,這意味著2019年1月之後不再有商業用途的免費更新

紅色字型部分,也是國內新聞斷章取義的關鍵點。


4、亞馬遜JDK Corretto 永久免費,並且長期支援Java 11

0113c8d243e526ea0a9c52d4954a9cb8de28a4c0

 Java之父 James Gosling 加盟了亞馬遜


Amazon Corretto是Open Java Development Kit(OpenJDK)的免費、開源的、多平臺,生產就緒版本。 基於GPLv2 開源協議。

原始碼已經開放 https://github.com/corretto/corretto-8。


Corretto提供長期支援,包括效能增強和安全修復。 亞馬遜在內部執行Corretto數千種生產服務,Corretto被認證為與Java SE標準相容。 使用Corretto,您可以在流行的作業系統上開發和執行Java應用程式,包括Amazon Linux 2,Windows和macOS。 亞馬遜Corretto 8是預覽版,但是可以用於生產環境。

8ec9353374471065523fb665b1f7549c2fef1622

Amazon Corretto 官方網站 https://aws.amazon.com/cn/corretto/

Amazon Corretto根據開源許可證GNU公共許可證版本2的條款獲得許可,具有類路徑異常(帶有CPE的GPLv2)。 亞馬遜不對其使用或分發收費。


5、Amazon Corretto的長期支援包括哪些內容?


Amazon在2023年6月之前為Corretto 8提供安全更新”,

至少在2024年8月之前支援Corretto 11進行季度更新”。 

亞馬遜計劃在2019年上半年釋出亞馬遜Corretto 11.

Amazon Corretto  8和11的當前更新計劃每季度進行一次,直到截止支援(2023年6月) 對於Corretto 8和824年8月為Corretto 11)。


6、使用JDK8或者9、10、11的選擇方案?


2019年1月1日之後如果繼續使用Java 8,但是注意更新自己的版本,所以即時跟進Open JDK更新:永遠留在最後一個免費釋出。但是存在安全隱患,所以請關注Open JDK。


1)依靠Linux作業系統獲取更新包。

在Linux平臺上,可以通過作業系統獲得最新JDK(例如Red Hat,Debian,Fedora,Arch等)。因此,JDK的更新通過作業系統提供商獲取。

Red Hat承諾在Red Hat Enterprise Linux中直到2023年6月更新Java 8  - 他們更願意將修復程式即時推回到“上游”OpenJDK專案。

所以使用Centos版本可以即時得JDK的最新安全補丁。


2)自己構建OpenJDK。

安全補丁流*在GPL許可下發布到公共Mercurial儲存庫。因此,完全可以通過跟蹤對該儲存庫的提交來自己構建OpenJDK。國內的BAT,阿里、騰訊、百度應該都有自己的分支維護團隊。小公司技術難度和成本太高,不如追隨大公司,風險最低。


3)使用AdoptOpenJDK的構建。

AdoptOpenJDK的社群團隊在過去幾年一直忙於建立一個構建開源JDK和測試平臺。因此,他們現在能夠獲取安全補丁並將其轉換為版本,就像商業版獲得的那樣。他們還執行Java TCK(測試相容性工具包),以允許這些構建完全認證為與Java SE規範相容。計劃支援Java 8版本,直到2023年9月或之後(Java 17釋出兩年後)。對於大多數想要在不付費的情況下使用Java 8的使用者來說,這可能是最佳選擇。


7、不要被誤導,技術領導必讀


Oracle首席Java架構師Mark Reinhold在Oracle Code One技術大會上演講表示:Java仍然是開放和免費的。Oracle收取的是技術支援更新服務費用,這是可以理解的。 比如汽車免費送你開,但是收取修車保養費合情合理,你可以選擇自己保養修車,也可以選擇找到免費的修車店保養車。

   

對於絕大部分企業來說,擔心可能的版權或者收費問題,注意一下幾點:

  • 不要輕易下載Oracle JDK8後續更新,避免許可證陷阱,後續更新注意方式,當然如果你打算付費購買技術更新支援服務也可以。
  • 目前Java 8版本已經足夠使用,大部分企業選擇穩定版本,後續語法糖特性應該影響不大。無需升級版本,除非萬不得已。
  • 直接使用 Open JDK 8發行版本,並且接受社群的免費的更新支援,Redhat紅帽已經表示會領導更新工作。
  • 使用Amazon Corretto  8,永久免費長期支援。
  • Java 11的所有部分都將作為長期支援版本進行維護。 但是,與Java 6,7和8不同,Oracle不會長期支援。
  • Redhat紅帽將接管這項任務 - 他們已經公開承諾。
  • 在Java 11的前6個月中,Oracle將在jdk.java.net上提供帶有安全補丁的GPL + CE許可免費下載。

 Java依然免費,Open JDK依然免費,Amazon JDK Corretto 永久免費!所以請放心使用Java。太多開源免費的方案。


8、Java長期第一,大批公司轉Java

     根據國外權威網站programming languages ranking的統計排名,Java長期排名第一。請看下圖

Java長期排名第一,市場份額超過10%的只有Java和c語言,超過5%的只有python、c++、vb。其他語言長期不到5%

0e501396bd8f5a7ef70d88a1d5296cf0cdb91c9a


阿里巴巴 騰訊  百度  螞蟻金服  今日頭條  滴滴 美團  小米 京東  360 攜程 拼多多 中國平安 等名 網際網路公司 都用Java。超過90%的中國網際網路公司是Java架構。

京東、攜程、拍拍貸、滬江網  VIPABC  汽車之家、易車網、同程旅遊、易果網、途虎養車、中通、申通 都轉Java了。名單還在繼續。。。


a77e9d70816a9b3bc3d8fee9909606f7a3fedf56

釘釘掃碼加群 實名制

如果你想轉Java,去BAT、TMD一線名企,歡迎加入阿里巴巴Java進階學習群,2個月超過1700人加入,中國一線網際網路名企的人才基地。


參考:

https://blog.joda.org/2018/08/java-is-still-available-at-zero-cost.html

http://openjdk.java.net/

https://github.com/corretto/corretto-8

https://www.forbes.com/sites/oracle/2018/10/24/dont-worry-its-still-free-mark-reinhold-dispels-5-myths-about-how-java-is-changing/#dbee87060731