瘋狂軟件對Oracle放棄Java EE的看法

瘋狂軟件對Oracle放棄Java EE的看法

近日網絡上出現了一些關於Oracle將要放棄Java EE的說法,在Java行業引起不小的關注,甚至有些人開始擔心Java會不會就此消亡,但事實上這不過是杞人憂天,《瘋狂Java講義》圖書李剛根據多年來Java行業的從業經驗,對此提出以下幾點分析拋磚引玉,供廣大Java從業者參考。

第一點:Oracle根本沒有力量左右Java發展

自從Java發展壯大以來,無論是以前的Sun公司,還是後來Oracle公司,一直都無力左右Java的發展:實際上Java的規範制定,都需要通過JCP審覈,一些新機制、新功能往往並不是Oracle想加就加的,Java是一個龐大的生態圈,由龐大的社區力量在推動Java的發展。

Java本身有太多的規範都是來自社區的。世界上大量開源組織和公司,爲Java貢獻了非常多的專利和代碼,每次JavaOne大會都是全世界Java界的聖會,匯聚一堂討論、決定Java的走向和發展。

Java世界,可以說正左右着全球的發展,全球所有頂級的、核心的項目,絕大部分都是基於Java做的,即使不是完全基於Java,也和Java有千絲萬縷的關係。深入最深的是美國。美國軍方絕大部分的控制系統、甚至航天控制系統,都是基於Java或者和Java相關的。

除此之外,包括世界上所有的銀行、通訊、航空、電力、交通、公共安全等領域的核心繫統,也都是基於Java的,如果完全放棄Java,等同於把世界上所有的這些應用系統全部要替換掉,哪個公司、哪個團體有這個能力?如果這些系統全部不能運行,人類社會等同於重回到傳統時代!

如果放棄Java,你不能從銀行取錢、不能在線買飛機票、火車票、不能在線購買商品、不能刷公交卡、不能打電話……甚至連你的身份證信息都不復存在!

有人說:Java不賺錢,因爲Java規範是開放的,所以Oracle纔想要放棄。但如果真的不賺錢,那麼Oracle爲何要和谷歌因爲Java的專利而打官司呢?

第二點:即使Oracle放棄Java,其他的公司會樂意繼續扛起Java的大旗

先說現在正在和Oracle打官司的谷歌,正是因爲Java的各種專利糾紛,如果Oracle真的願意放棄Java,那麼谷歌將首先表示歡迎、並非常樂意繼續領導Java的發展。

即使谷歌不想要Java,光是國內的那些巨頭,個個都想要Java,以便對自己的產品進行更深度的定製,現在因爲要定製自己的產品。此外,能肩負扛起Java大旗的風光,國內軟件巨頭都不差錢,他們絕對非常樂意去做這件事情。不過話說回來,美國政府應該不會允許Java主導權落入中國,所以這一點我們只能是空想。

第三點:Oracle可能放棄Java EE,但不會放棄Java

Java剛開始的時候,因爲各種應用和生態不成熟,很多東西需要有人牽頭制定強制規範引導Java的發展,於是Java EE曾經引領了企業級應用的開發。

但隨着時代的進步,以及越來越多的公司和組織參與到Java世界,出現了各種各樣的Java EE組件的代替者,比如HibernateSpring就是其中兩個典型。相反,Java官方制定的各種Java EE規範反而不太受歡迎,他們制定了JSF規範,但實際企業開發喜歡用Struts 2Spring MVC;他們制定了EJB規範,但實際企業開發往往還是喜歡用Spring;他們制定了JPA規範,但實際企業開發往往還是喜歡直接用HibernateMyBatis

現代企業級應用常用的各種框架和工具,比如Struts 2SpringHibernatejBPMActivitiLuceneHadoopDroolsCXF等這些大家耳熟能詳的組件,全部都不是來自Oracle官方,但是卻在企業應用中開發經常用到的。

現在企業裏面,真正常用的Java EE規範有什麼?ServletJSPJMSJNDI。這些技術都只是充當了一個程序的入口而已。

Oracle之所以可能考慮放棄Java EE,正體現了Oracle對喪失Java控制權的無奈。企業的本質是逐利,Oracle每年爲制定Java EE規範投入不少人力、財力,但制定的規範最終並沒有獲得市場的青睞,所以Oracle可能放棄這種吃虧不討好的事情。

Java不同,20166月,Java在商業語言排行榜上的市場份額將近21%,龐大到恐怖的市場份額,背後隱藏着巨大各種專利使用費和盈利商機,任何一個理智的公司都不會放棄這個會下金蛋的母雞。

第四點:從C的歷史來看JavaJava絕不會過時

C語言是一個誕生於上個世紀70年代的編程語言,在AT&T的貝爾實驗室裏面,由一個想玩遊戲的老夥伴整出來的。

後來隨着社區力量的介入,C形成了國際標準,參與其中的廠商、開發者不計其數。貝爾實驗室早已不復存在,連AT&T也早已解體,但C語言依然堅挺,偶爾還跑到Java的前面,排名第一!

C發展到現在,已經形成了整個軟件、硬件產業上下級紐帶,絕大部分硬件設備的固件、驅動程序都是C語言寫的。我所知道的操作系統的內核,也都是基於C語言。如果換掉C語言,現在電腦會變成裸機,可能還不如一堆廢鐵。

Java現在的情形,和C非常相似:Java已經深入到世界的骨髓。正如前文指出的:從美國的航空航天、軍方控制系統,到日常生活的銀行、通訊、電力、交通、公共安全等領域的核心繫統,絕大部分都是基於Java開發。正如世界無法淘汰C一樣,世界也無法淘汰Java

第五點:Java可能不是最好的語言,但Java是最成熟的整體解決方案

經常有人會問我,Java是最好的編程語言嗎?我會告訴他:應該不是。我知道的很多語言,如果僅就語言功能來說確實優於Java,就比如日趨沒落的C#,由於很多特性都模仿了Java,有在某些方面做出了改進,因此語言特性要優於Java;再比如Apple新推出的Swift,編寫起來簡潔、優雅……然而並沒有什麼用,它們都無力、也不可能取代Java。就像世界上比C優秀的語言多如牛毛,但C依然、也將一直堅挺。

Java可能不是最好的語言,但Java一定是最成熟的整體解決方案。舉幾個業內公開事實:taobao最初使用了PHP,發展、壯大起來不得不全部換成Java實現;京東最初使用了dot Net實現,發展起來之後整個後臺不得不換成Java實現;小米服務端的消息系統最初使用Erlang開發,當時消息推送系統的第一版是基於Erlang的,隨着小米用戶數量的增長,後來開發團隊不得不選擇使用Java重新開發……還有無數中小型的企業“迷途知返”的案例,我就不想一一列舉了。從這些事實可以發現,對於一個併發量小、穩定性要求不高的系統來說,可供選擇的方案看似很多:PHPdot NetErlang……,但公司發展壯大之後,最成熟的解決方案卻只能是Java

Java的成熟並非體現在Java語言特性多麼簡介、優雅,而是來自它龐大的社區和開發者,以及各種各樣框架、類庫和工具。軟件行業的各種新理論,新方法,幾乎最先都是用Java實現的。選擇Java作爲企業級應用的解決方案,可以避免地“重複造輪子”,很多開發中面臨的棘手難題,往往都有開源的解決方案;幾乎所有行業,都有非常成熟的Java應用案例,可供後來的開發者作爲參考。選擇Java,並不是簡單地選擇了一門語言,而是選擇了一個成熟、穩定的解決方案。

Java的成熟更體現在包容氣度上,有人說Java語法臃腫、更喜歡RubyOK,那就JRuby吧;有人說我喜歡PythonOK,那就GroovyJython吧;有人說我喜歡LispOK,那就Clojure吧……各種語言的開發者都可在JVM上大展拳腳,Java以海納百川的方式包容、融匯着各種語言的特性,最終成就了Java的“夫唯不爭,故天下莫能與之爭”。


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