Java永久免費 Java12區塊鏈領域擊敗Go、緊追C++

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。

     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永遠開源、免費

     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語言是完全沒有用的,企業開發需要許多底層的庫,以及周邊的框架,架構方案。這樣才能完整地開發系統。

需要掌握的一個關鍵點是,世界上大多數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

 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是預覽版,但是可以用於生產環境。

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%

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

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章