oracle如何把java“玩死”?java程序員該何去何從?

ForDream


個人認為Java生態過於鬆散是Oracle缺乏戰略掌控的錯。

  • Java生態中大量的開源框架無序競爭,讓開發人員無所是從,經常為了尋找一個技術解決方案不得不在一大堆類似的框架中比選;Oracle並沒有主導生態中強勢的技術,而是聽之仍之,自生自滅
    ——一門語言被生態所累是可悲的!

  • Java語言自身的麵條式風格越來越嚴重,匪夷所思的各種代碼範式讓程序員疲於記憶大量的跟具體框架相關的書寫規則
    例如:Object.GetValue().ConfigThis().ConfigThat().ConfigOther() ...這樣的拉麵語法被各種框架過度使用
    ——一門語言被第三方框架綁架也是可悲的!(類似的其他語言的例子諸如Angular.js對於Javascript)

  • Java的開發環境並沒有做到極致,主要依賴Eclipse作為IDE,開發效率受到開發環境的制約太嚴重,例如Eclipse就有Maven,Gradle,Ant等編譯環境的配置管理,導致不同的開源工程使用
    不同的配置體系,每個程序員需要花大量的時間來了解這些配置的差異和修改方法,今天要學點Maven的XML配置,明天又要搞定Gradle的Groove語法……
    ——一門語言被開發環境綁架更是可悲的。

Java程序員最佳去處——轉型為C#程序員,原因如下:

  • Java和C#語法非常類似,轉到C#非常順當;例如:包引用改import 為using ,類繼承改extends 為implement,多寫一點代碼就搞定了,大部分知識都可以共享,而且未來需要的時候要返回java也是容易的;
  • C#有Linq——一種Java沒有的語法特性,這是C#官方定義的一種極為便捷的非傳統語法特性,它主導了對集合的全面操作,把程序開發中最乏味的部分解決了。雖然Linq也會導致類似Java那種麵條式語句,但是這是一套放之四海而皆準的麵條,在所有程序中都可以用。例如:Collection.ToEnumerable().OfType().Select(i=> i.a=conditionA).ToList(),這些方法來自官方框架,在所有程序中都是通用的,長一點問題不大,反而作為一種固定的通用範式。Java有一點理想主義的傾向,導致有時候語法就是一種形式上的桎梏;而C#則要實用主義許多,Linq就是這種突破的表現,為了開發習慣上的實用,不一定要延續一致性的語法原則。除此之外的例子還有擴展方法(向現有類型追加任何方法)等等。
  • 使用C#則可以利用所有.net的生態,而且.net生態幾乎由微軟主導,尤其在微軟收購了Github之後,在開源界C#的生態也將受到微軟的管理(有時候選擇太多不是好事)。

  • C#擁有目前世界上最好的代碼開發環境Visual Studio。VS的各方面功能都是極佳的,對於程序員開發調試都是一大福音,用了VS你會恨死Eclipse。

  • 隨著.net core的流行,C#同樣具備了跨平臺的能力,而且微軟還在積極開發.net native編譯器,今後用C#開發本地代碼程序或許會非常便捷。

總結一下,C#既沒有被語法、也沒有被第三方框架或者開發環境所綁架,解決方案出來的時候你非常清晰你的路徑,而不會被猶豫的選擇、晦澀的語法和經常崩潰而且還找不到統一支持的開發環境所困擾。


小宇堂


Java是Sun公司最優質的資產之一,在Oracle收購Sun之後一直在謀求Java的盈利路線,相比於Sun公司來說,Oracle可能對Java並沒有那麼多的情懷,能否形成一個穩定的盈利應該是Oracle最為關注的事情之一,所以Oracle不斷地“折騰”在某種程度上來說就是一件合情合理的事情了。

隨著JDK11發佈之後,Oracle也制定了Java的“收費計劃”,對於廣大企業和Java程序員來說,可能未來免費使用Java的時代結束了。相比於早期Oracle對Java的“不管不顧”,以及剝離Java EE等動作來說,現在的Java似乎進入了一個快速發展的通道,Oracle承諾每隔6個月為Java更新一次,這樣的節奏顯然不是免費產品的更新節奏了。因此,Oracle計劃針對Java的收費策略就不難理解了。

相比於此前Oracle的消極態度來說,目前的收費策略也許對Java來說並不是一件壞事,但是收費的結果必然會導致一部分中小微軟件企業逐漸開始使用新的編程語言,對於Java語言的生態來說,收費絕對不是一件好事,但是對於Oracle來說,不能盈利可能是最糟糕的事情。

對於Java程序員來說,需要做好兩手準備,一方面目前Java有一個龐大的生態和大量的用戶,在未來較長一段時間內Java的應用應該不會有明顯的影響,所以還是應該及時更新自己的Java知識結構。另一方面應該有一個自主學習計劃,以應對未來可能出現的新趨勢,目前Go語言就是一個比較不錯的選擇,另外也可以考慮學習一下kotlin,雖然kotlin是基於JVM的,但是JVM也不是唯一的選擇,相信隨著Android支持kotlin之後,kotlin未來的發展前景還是非常值得期待的。

我從事軟件開發工作多年,目前主要的研究方向集中在大數據和人工智能領域,也在指導相關方向的研究生,我會陸續在頭條寫一些關於大數據方面的文章,感興趣的朋友可以關注我,相信一定會有所收穫。

我使用Java語言多年,也出版過Java編程書籍,如果有Java開發方面的問題,也可以諮詢我,謝謝!


IT人劉俊明


如同天要下雨、娘要嫁人一般,對於我們java程序員而言,這事兒誰都無法把控,又何必現在自尋煩惱,恐慌擔心並不能解決問題。我來說說自己的看法吧,以下權當個人已見,不代表任何方面觀點,不喜勿噴,想噴請前往評論區。

一、 2018年度Oracle 和 Java 事件回顧

1. Oracle 以 Java 侵權案從 Google 處獲取高達 88 億美元的賠償款,這個行為讓不少用戶認為 Oracle 已然將 Java 用作掙錢的工具;

2. Oracle宣佈Java 8 將停止維護,取消 JavaOne 會議(專屬 Java 的開發者大會)。

上圖為Oracle 官網提示的 JDK8 終止更新公告。原文翻譯:2019年1月之後,Oracle將不會在其網站上發佈Java SE 8商業使用的進一步更新下載。需要持續獲取安全的bug修復和安全補丁以及Java SE 8或以前版本的穩定性支持,可以通過Oracle Java SE高級版、Oracle Java SE高級桌面或Oracle Java SE套件。有關更多信息以及如何獲得Oracle JDK 8長期支持的詳細信息,請參閱Oracle支持路線圖。

簡言之,即:Java 8 在 2019 年 1 月之後不再免費向企業提供更新,想要更新就得付錢或者升級到 Java 9 之上,這讓不少程序員認為 Oracle 已然將 Java 用作掙錢的工具。現在要麼趕緊熟悉 Java 9,不然就付費吧,很多連java8都還沒用熟的程序員表示一臉懵逼。

二、Oracle與java的前世今生

java是編程語言,oracle是數據庫,同時,oracle也是一家生產oracle數據庫的公司,oracle於2009年以74億美元收購了生產java語言的公司sun,現在oracle是java的老闆。

試想,一個老闆會輕易放棄重金得到的產品嗎?

三、程序員們何去何從

java使用佔有率最高,oracle當初花了74億美元真金白銀收購sun,僅憑這兩點,oracle都沒有放棄java的理由,猜測這只是oracle為盈利而進行的一系列改革與計劃,我們都知道,開發和維護一款產品或工具,需要持續投入資源,考慮到Oracle在收購、開發、維護Java方面投入了大量資金,合理費用還是可以支付的,畢竟他們確實提供了免費的替代品。

個人愚見,java收費意味著企業成本增加,對程序員影響並不大,另外,同為java程序員,希望這頓午餐一直免費下去。



優知學院


Oracle說的很清楚了,是Oracle JDK收費,而不是Java收費。

Oracle收了Mysql之後,現在也是兩個版本,一個收費一個不收費,收費的做的更牛一些,你們可以花錢用;免費的稍微差點兒,很大大廠有研發能力,直接在免費的Mysql上改,也可以做到非常牛;而比較大眾的我們,直接用免費版就行了,也夠用。

這個要收費的Oracle JDK,也就是做的更牛一些,不差錢的公司可以考慮使用;比較大眾的我們,直接用免費的Open JDK就行了。


補充一下常見的JVM:

Hotspot,官網上下的基本都是這個,免費的。

J9,IBM的,商用的需要和IBM的其他軟件綁定,比如weblogic。

Zing,這也是收費的,而且很高,垃圾回收做的很牛,很變態。


上面幾個是主流,還有幾個順便提提:

JRockit,老人們應該比較熟悉。

Microsoft JVM,這個沒有了,你懂的。


軟件生態

關於軟件的生態,可以這麼理解:

如果一個軟件做出來,用的人多,社區活躍,別的框架都會主動向你靠攏,主動的“迎合”你,那麼這個軟件的生態是非常好的。

如果真的有一天,Java完全收費了,用的人少了,基於Java的各種開源框架也少了,其他軟件也不在出Java的驅動,如果到了這個地步,那麼Java才真的是被“玩死了”。


希望我的回答,能夠幫助到你!

我會持續分享Java程序開發、架構設計、職業發展等方面的知識和見解,希望能得到你的關注。


會點代碼的大叔


大概在兩年前,當Oralce輸掉了和Google在Android上的Java官司後,Oracle的Java開發努力便開始逐步減慢,而在Java EE方面則是處於完全停止的狀態。Java社區的大客戶們不僅吐槽Oracle正在放棄已經有20年的Java平臺兼容性,更有人形容這是一場危險的遊戲。

的確Java8還沒用熟就停止更新了, Oracle又把一年一度JavaOne取消了,以及Java付費時代的恐慌……這些種種都讓人們不禁發出“Oracle把Java玩死”的調侃。不過好在Oracle前不久官方聲明對Java SE 8的更新支持已經延展到了2019年1月,這對於廣泛部署Java的企業來說,Java8免費支持時間的擴展的確是一個好消息。

現在大家最緊張的就是如果未來Java失寵於Oracle,那麼Java程序員將何去何從?真的如我們想象中的那麼糟糕嗎?

選擇Java平臺意味著獲得健康廣闊的生態系統,以及豐富的知識、勞動力與相關產品。作為交換,由此帶來的技術債務在於,該平臺也許無法適應未來的技術演進,因為其所有者不打算繼續開發它。現在,你或許可以開發出健康的產品,儘管未來會的開發成本會越來越高,甚至犧牲未來的業務敏捷度。 其他的平臺選擇都有各自的技術債務。但簡而言之,各有各的不同。比如:

  • 選擇 Node.js 平臺意味著缺少豐富的穩定生態系統。但該平臺非常活躍,欣欣向榮,可能會持續發展很長時間,而且 Node.js 人才也越來越多。

  • 選擇 Ruby(很可能與 Rails 一起)平臺意味著能以合算的成本快速建立起工作系統的基礎架構,但壞處是擴展性不佳。

  • 你也可以選擇 Microsoft/.NET 生態系統,該系統擁有一些與 Java 平臺相似的優點,但缺點是你的公司命運會與另一個企業軟件巨頭的選擇綁定。

當然還會有許多其他選擇,其實每個選擇歸根結底都是利弊權衡的問題。 簡而言之,是否選用Java平臺作為新項目的基礎平臺很大程度上是個人決策,Oracle可能厭倦了 Java,但這是否應該影響這個決策呢?當然應該。但是,這絕對不是唯一的考慮因素。

個人認為,將全部職業生涯都賭在Java這一種平臺的程序員,也不用過度焦慮和擔心,畢竟圍繞Java生態系統的技能與知識需求不會在短時間內消失。


從不加班的程序猿


說點自己的想法。

這件事看起來是oracle對自己推出的jdk版本進行收費,影響面很大,畢竟這麼些年下來,使用oracle jdk的企業非常多。像我們公司,rhel裡即便自帶openjdk,我們也會裝一個oracle的版本。

但請注意,oracle只是針對企業收費,對個人並不收費。而且據我所知,oracle收費策略很靈活,不但可以談價格,還不收開發、測試環境的費用,並且對裝了weblogic這類自帶jdk中間件的服務器也不收費,所以這個費用遠沒有想象中那麼誇張。加之oracle承諾從11起對openjdk完全兼容,所以各個企業也並非沒有選擇。我就向公司推薦了zulu。

既然如此,oracle為何還要對自己的jdk版本收費呢?我覺得賺錢是其次,關鍵是推銷雲戰略,讓更多用戶選擇成本相對較低的oracle雲數據中心。雖然jdk收費沒那麼誇張,但多掏錢了誰也不樂意不是?

所以那些對Java產生的困惑,我覺得完全沒必要,oracle至少不會把自己玩死。搞不好oracle哪天看風頭不對,又取消收費了呢。

倒是我們這些在底層做技術的小白,真的要coding一輩子嗎?


zmd77354349085


個人覺得oracle是玩不死java的,java已經很成熟,社區很活躍。就算oracle現在不更新java了也阻礙不了java繼續流行下去,因為java一開始設計就很優秀。

java程序員繼續玩下去,完全不用擔心,可以慢慢往深入方向走:如大數據、機器學習。有些理論是永遠不會過時的。

歡迎關注我,小編在java web開發、大數據、知識圖譜、機器學習有一些經驗,歡迎多多交流~

k6k4


一棒子人長篇大論的都是外行。。。

只要spring不收費,apache不收費。java會死?

他們才是java的支柱。至於jdk也就是有的沒得而已。


chandler605


open jdk和oracle jdk都是oracle的,類似mysql一樣一個社區版,一個商業版。

大多linux上用的都是openjdk。oracle自己一堆東西都是java寫的,那麼精明的公司不會把手好牌打爛的。


耕雲不盡釣月無痕


有SQL MySQL access 你在怕什麼


分享到:


相關文章: