年末展望:Oracle 對 JDK收費和.NET Core 給我們的機遇
2018年就結束了,馬上就要迎來2019年,這一年很不平凡,中美貿易戰還在繼續,IT互聯網發生急劇變化,大量互聯網公司開始裁員,微軟的市值在不斷上升 ,在互聯網公司的市值下跌過程中爬到了第一的位置,我們展望2019年,相信前方的坑很多,這裏想聊下一個和我們的工作生活息息相關的問題,那就是Oracle 對 JDK收費和.NET Core 給我們的機遇。
Oracle宣布,"2019年1月之後",如果沒有商業許可,Java SE 8公開更新將無法用於"商業,商業或生產用途"。組織現在需要對運行Java SE 8的所有軟件進行評估,並開始計算明年他們正在尋找的潛在賬單。
圖片截自:
https://www.oracle.com/assets/java-se-subscription-pricelist-5028356.pdf
國內又有那些互聯網公司是使用Java作為核心技術的公司呢?這些公司是否給Oracle付費了,是否所有服務器都付費了呢?中國的政府機構又有多少需要給Oracle付費購買授權?
阿裏巴巴
騰訊
唯品會
京東
快手
攜程
美團
....
這些互聯網只有阿裏巴巴有自己的AJDK(基於openJDK 魔改),
其他的小公司呢? 尤其是京東,估計直接將openJDK拿過來改個名字叫JJDK.
當然其實並不一定搖給錢,只要JDK永遠只使用JDK 8u192版本。
首先我們要搞清楚JDK到底是什麽?
JDK != Oracle JDK
由於Oracle長久以來提供近乎免費的 JDK,讓大多數Java的用戶錯誤的以為JDK就是 Oracle公司的那個 Java Development Kit。其實,Oracle也有一個免費的社區版JDK:OpenJDK。另外,IBM、Azul、Redhat等都有自己的JDK產品公開發布,企業用戶也大有人在。
前2年Android系統就因為Java的授權問題被Oracle給告了。而機智的Oracle這次又在JDK的收錢套路上給用戶準備好了律師函,Oracle律師團隊整裝待發。
其次,我們要搞清楚對我們的影響是什麽?
從Oracle JDK發布以來,一直采取的策略是,經過多年的免費支持以後,該Oracle JDK版本EOL(End of life),然後讓出領導權,由社區接手並主導後續更新事務。 但是,Oracle JDK 8經過了近5年的發展,仍然很受歡迎,用戶沒有準備好,也沒有足夠動力去升級,更不用提好多還在用JDK 6、7的用戶了。
此次,OracleJDK 8只是在支持了近5年後,停止了免費更新,註意是"更新"。繼續使用JDK8的用戶,和目前停留在JDK 6、7的用戶沒有什麽不同。為方便理解,大家可以對比現在還使用Windows 7或XP的客戶,僅是無法獲取安全更新,但並不會喪失使用的權力,這取決於用戶自己的判斷和選擇。
那如果還想要得到JDK8 的更新怎麽辦?
這個就要看你使用的是什麽JDK了,咨詢下相應廠商的策略吧。大多數企業用戶應該是在使用Oracle JDK,那麽就需要訂閱Oracle JDK支持服務才可以更新了,當然個人用戶還可以繼續免費更新到2020年12月。其他如Azul、Redhat、IBM等廠商的用戶也是需要確認相關路線圖,對於JDK 8的用戶,這是唯一可能需要掏錢的情況。
那麽,有人說 "我公司想要使用JDK 11等新版本,但不想付費,怎麽辦?"
企業用戶仍然有可靠途徑獲取免費的JDK,既可以使用Oracle等發布的GPL協議的OpenJDK,也可以使用AdoptionOpenJDK社區等發布的OpenJDK產品,甚至是有能力的用戶自己從源碼構建!
引申:"Java是GPL授權,我是不是要將Java開發的應用也開源?" 不,這純屬無稽之談,Java開發的應用與OpenJDK的GPL授權沒有關系!OpenJDK的GPL授權,只會約束基於OpenJDK源碼生產並發布JDK產品的廠家,而不是Java開發的應用,絕大部分用戶根本就不可能是JDK生產商,所以這個擔心完全沒有必要,而且,Java不是今天才開源的,使用GPL授權的開源項目比比皆是,如Linux,這也是業界最普遍、最受歡迎的授權選擇之一。微軟為Xamain的Android開發發布了自己的微軟OpenJDK, 可以在安裝Visual Studio 的移動開發裏面看到,我猜測微軟也會發布全功能的OpenJDK, 畢竟Visual Studio 2019和 Visual Studio code支持Java開發了。
眾多沒有能力開發維護OpenJDK的公司完全可以轉向更具有競爭力的.NET Core,.NET Core從屬於.NET基金會,由微軟進行官方支持。使用最寬松的MIT和Apache 2開源協議,文檔協議遵循CC-BY。這將允許任何人任何組織和企業任意處置,包括使用,復制,修改,合並,發表,分發,再授權,或者銷售。唯一的限制是,軟件中必須包含上述版 權和許可提示,後者協議將會除了為用戶提供版權許可之外,還有專利許可,並且授權是免費,無排他性的(任何個人和企業都能獲得授權)並且永久不可撤銷,用戶使用.NET Core完全不用擔心收費問題,你可以很自由的部署在任何地方,。
現在是雲計算時代,.NET Core已經磨練5年時間,準備好了迎接雲計算時代的雲原生應用開發,雲系統中,用更少的硬件為更高密度的用戶提供服務是非常重要的。應用程序的占位面積越小,密度越高。容器只包含應用程序及其依賴項。文件大小要小很多倍,啟動時間以秒為單位,只有應用程序加載到內存中,容器保證在任何主機上工作。鑒於容器的明顯優勢,.NET Core的設計決定之一就是使其成為模塊化。這意味著你的.NET Core應用程序可以被"發布",使得它和它的所有依賴關系在一個地方,這很容易放入容器。
2018年8月我看好.NET Core的未來發展前景,離開工作11年的騰訊創立一家以.NET Core技術為主的公司在中國地區開展幫助企業從.NET 轉向.NET Core的咨詢服務,目前為止,我已經服務四家客戶,客戶的分布很典型,其中不凡大企業,也有進入B輪的工業互聯網創業公司,也有傳統的醫療行業,他們都有共同的特點是當年創業賺錢的業務系統使用.NET技術構建的,現在面對的一個環境,大量的公司在被忽悠轉Java,他們自己也有系統使用Java構建,但是和.NET Core相比較,整體的成本增長很可觀,例如項目的開發周期和團隊規模被放大1/3,運營的服務器成本放大1倍以上,同樣是跑在K8s集群上,.NET Core應用所需資源是Java應用的1/4到一半。
2018年年末的聽到大量的互聯網公司裁員消息,但是我服務這幾家客戶都有很強烈的招聘.NET Core開發人員的需求,這是大量學習Java的同學轉向.NET Core平臺的好時機,我一直認為做Java開發的同學比做傳統.NET的人員更容易用好.NET Core, Java相比C#,在使用了C#後你不會再去想用Java,而且.NET Core有你非常熟悉的Spring Cloud那一套約定的編程範式,然而見過很多.NET 開發人員, 依賴註入都沒用過,更別說用Linux了。在這裏我沒有貶低.NET開發人員的意思,技術更多的還是要靠自己的努力,我們努力一起成為一群不被時代拋棄的程序猿。
年末展望:Oracle 對 JDK收費和.NET Core 給我們的機遇