search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

Java 已死?聽聽這些重量級大咖是怎麼說的

在 Java 的世界發生了什麼事?事實上,很多。Java 9 在 9 月將會來臨,Jigsaw 終於獲批,而 Java 大咖正在給我們提供關於這一編程語言的未來的有價值的洞察。在這分為 3 部分的訪談系列中,我們闡明了 Java 的發展趨勢以及什麼語言才是值得尊敬的對手。

Java 哪都沒去

在其發布之後的二十年,Java 依然是開發人員的最愛。如果說這門編程語言正在死去,可以肯定地說它死過了。它死過又復活過的次數比我們所能統計的還要多,可是它仍然活著沒有倒下。我們將在 9 月當 Java 9 發布時看到 Java 更多的內容。

迄今 Java 已經存在很長一段時間,有足夠的時間為其建立優越的編寫、維護和調試代碼的工具。例如,各種開發環境像是 Eclipse 或 NetBeans 已經使得編寫 Java 容易許多。它們甚至能夠被用來編寫基於 Java 的新興語言的代碼。

為什麼我們會一次又一次看到文章宣布 Java 即將來臨的死亡? 就像 Mark Twain 所說的,Java 之死被誇大其詞了。

Wayne Citrin 博士, JNBrideg 有限責任公司的 CTO 和 聯合創始人

大咖列表

誰在 Twitter 上影響力最大?JAX 團隊翻查了數千個技術賬號並從中找出 20 個 Twitter 大號,這些大號被每個 Java 開發人員的 Twitter 所關注。如果你想聽聽他們對 Java 9 有什麼想說的,他們希望在 Java 10 里看到什麼, 以及他們怎麼看待 Java 的對手,你是幸運的!

請看這裡的清單。

在這分為 3 部分的訪談系列中,10 位 Java 大咖將評論 Java 的人氣、談論其模塊化生態系統,並展示他們對 Java 10 的願望清單。

在這個訪談系列的第 1 部分,我們邀請了 Java 大咖來談論 Node.js 超越 Java 的可能性,以及評論關於斯坦福大學決定以 JavaScript 取代 Java 來教授其 CS 科系入門教程 事件。

問題一:有些人似乎相信,Node.js 可能在不久的將來有取代 Java 的機會 。Java 真地可能被廢黜嗎?

Markus Eisele( Lightbend 公司 Developer Advocacy 的負責人,Java 擁護者):

JavaScript 革命清晰地表明了我們的世界將是多元化和多樣化的。展望未來,我們將不再擁有隻需學習單一語言的特權,而是依賴於在開發應用時平台和行業標準默認的(語言規範)。

Java 這門語言仍然被廣泛學習和傳授。但某些部分也在快速變遷:集中的基礎設施正在消亡,服務端渲染的全棧的 Java 應用在快速地步其後塵。現在首屈一指的前端語言是 JavaScript。在雲環境和容器領域佔據優勢還有 Go 。在 Java 保持其主導地位再久一會兒的同時,這份清單還將會繼續擴大。

Mario Fusco(在 Red Hat 從事 JBoss 規則引擎 Drools 開發的高級軟體工程師,Java 擁護者):

Node.js 會吸引那麼多人真是超出我的理解。我們正處於多核 CPU 時代,連我的智能手機都有 8 核,而我們真的想在我們的伺服器上運行一個單線程框架嗎?在一個典型的 Node.js 應用運行於 8 核機器上時,經常發生的是,一個核始終是利用率 100% ,而其他核實際上閑置著。

如果開發人員喜歡 Node.js 實現的事件循環模式,有許多別的 Java 框架能以更加強壯和穩健的方式提供同樣的模式。我認為一些公司之所以採用 Node.js ,唯一可以理解的原因是,現在有更多的 JavaScript 開發人員,他們通常也更廉價。

十年前,我看到了類似反向的趨勢。那時有許多 Java 程序員被要求進行網頁端的開發而他們不喜歡使用(或學習)Javascript。為此,有很少的類似 GWT 可以使用 Java 開發 web 系統的框架。 GWT 沒那麼不堪,但伸縮性不好,無法創建數百萬併發用戶的網站。Node.js 是 GWT 的伺服器端的對標技術,也會存在類似的問題。

我的意見是我們應該總是使用合適的工具來完成手頭的工作。Javascript 對於 Web 開發是可以的(即使不是很理想),但是對於後端,我可以想到很多更好的替代方案。

Marcus Biel(軟體工匠、JCP 成員和 《整潔代碼之道》 的傳道者):

對我來說,這個比較真的不重要,這是蘋果和梨的比較。 Java 最適合複雜的(多線程)業務系統, Node.js 很適合實時 Web 應用程序。

問一個 Java 開發人員,他或她當然將擁護 Java ;問一個 Node.js 開發人員,他們自然會擁護 Node.js 。各有各的領域。

Lukas Eder( jOOQ 背後的公司 Data Geekery GmbH 的創始人及研發部負責人,Java 擁護者):

說這些話的唯一人群就是 Node.js 背後的供應商。關於 Java 的長期未來(下一個 20 年)我們不能過於多說。但如果「不久的將來」意味著 2-3 年,那 Java 覺得是不會被任何人廢黜的。

Java 在 Valhalla、Graal 和 Truffle,以及許多其他項目中還很受歡迎,即將到來的改進也將確保 Java 會跟上形勢。

Trisha Gee( JetBrains 的 DA、倫敦 Java 社區的核心成員, Java 擁護者):

我想我們是在這裡比較桔子和蘋果。 Java 是極好的伺服器端語言,出於很多理由被企業重度使用,包括穩固的向後兼容性、跨平台支持(在操作系統層面)、以及非常龐大的 Java 開發人才池(從初級到極為有經驗的)可供聘請。

Node.js 也被用在企業環境,但不是給相同類型的應用程序,我們更多地在初創公司中看到它,用於快速原型和敏捷應用開發(在各種規模的組織里)。我個人認為,考慮到可以用技術解決的大量問題,這兩門語言以及許多其他語言和框架都有足夠的應用空間。

Vlad Mihalcea( Hypersistence 的 CEO , 《高性能 Java 持久化》的作者):

我想不會。Node.js 對於建立快速原型是很好,但缺乏像 Java 擁有的經受戰鬥考驗的許多成熟的框架。

Jake Wharton( Square 公司的安卓工程師):

JavaScript 社區一直支持其進攻 Java 真正主導的許多事情:靜態類型、更強大的工具,以及具備廣度和深度的庫的生態系統。我認為這是朝正確方向邁出的一步,但從長遠觀點來看還有很多工作要做,才能在所有的三個領域真正取代 Java 。

Thorsten Heller(綠鳥集成技術公司CEO,該公司提供網格智能平台Metercloud ):

可能會,也可能不會。我相信在不久的將來 Java 可能會被廢黜或至少受到挑戰,但我不會賭 Node.js 。如果要賭,我會押注在 Kotlin 上。它的簡單性、精益語法、函數式方法 - 僅僅是它的部分特徵 - 將提高它的流行性。好像還可以提高代碼的整潔度?總的來說,我相信不久的未來將會更加異構:指定任務最合適的編程語言。

對我來說,Java 更多地是一個平台而不是一門語言。

Baruch Sadogursky( JFrog 的 DA ):

Java 對 JavaScript 正如 ham(火腿) 對 hamster(倉鼠)。編程語言有許多,而它們不一定相互競爭。JavaScript 是一門驚人的前端語言和真正的瀏覽器之王,但總的 來說,在伺服器端,JavaScript(尤其是 Node.js )是一個有趣的嘗試,而不會取代一門合適的面向後端的語言,比如 Java 。

Quentin Adam(智慧雲 CEO):

我認為這不會發生。Node.js 和 Java 是用途各異的不同工具。Node.js 及其工具套件正在憑藉強大的構建工具,和一些小型伺服器部件,促使 Web 前端成為一個真正的生態系統。

然而 Java 有一個非常強大的生態系統和龐大的代碼庫,以 Node.js 完全取代 Java 的可能性渺茫。在某些領域,像大數據(Hadoop 生態系統或 Kafka ),JVM 是平台質量本身的首選,而 Node.js 在將來絕無可能驅動 Hadoop 。我們將會看到越來越多的項目同時使用 Node.js 和 Java 。Node.js 將經常在前端面向用戶,但它不會處處取代 Java 。

問題二:今年, 斯坦福大學著名的編程入門課程 棄 Java 而取 JavaScript。對於 Java 的相關性和流行度,該如何評價?

Markus Eisele:

Java 是企業中的頭號編程語言,它帶來了一個充滿活力的工具、標準和方法學的生態系統。 它不是最簡潔或最漂亮的語言,但它可以擴展到大型團隊,讓我們學會了確保體面的質量。前端開發大多已經轉向 JavaScript ,而我認為應用程序的可視化部分一直是編程的切入點。

對我來說,這會是一個自然的過程,卻並不一定要講述一個 Java 的相關性或流行度的故事。更多地是關於它的可用性和學習曲線。

Mario Fusco:

我看了這則新聞感到驚訝,不是因為他們放棄了 Java 而是因為他們選擇了 JavaScript 。從教學的角度來看,Java 也許不是一門好語言,但在這方面 JavaScript 無疑還要糟糕得多,因為它會引誘(有時強求)一種不好的代碼技巧,而不是促使開發人員以一種清晰的方式去思考。

我認為一所大學不應該選擇一門編程語言,只因為它在業界流行而且被廣泛採用。Alan Perils 曾說過:「一門不影響你的編程的思維方式的語言是不值得了解的。」 不幸的是,我認為 Java 和 Javascript 都可以歸於此類。我們學習它們更多是出於商業原因,而不是因為我們喜歡使用它們。在我看來,一門面向對象編程的語言如 Smalltalk,一門涵蓋函數式方法的語言如 Haskell ,更不用說像 Clojure 這樣的現代 Lisp 語言,都是更好的選擇。

Marcus Biel:

對我來說,首要問題是:關於此事斯坦福大學是怎麼說的?斯坦福認為作為第一編程語言學習 Java 並不好。這就如他們所說的,如果他們這樣認為,那也沒關係。

Lukas Eder:

絕對不會。當我在 EPFL ( Scala 語言在此被創造)學習計算機科學時,我的編程課程包括當時時髦的語言如 Ada、 VSDL、 PL/SQL、 SQL、 Java、 XSLT、Scala、 Prolog、C++。假設我現在才開始學習,我敢肯定 JavaScript 也會成為課程的一部分。

我確實希望,作為一個行業,包括大學教師,需要意識到個別語言在大環境中並不重要。每一門語言都有其存在的空間和理由,而 Java 由於各種各樣的原因一直是最流行的語言。個別大學並不會去改變這一點,他們為什麼要這樣做呢?

Trisha Gee:

同樣,這是使用正確工具進行工作的情況。 JavaScript 按理說是比較容易教給初學者。它輕儀式、樣板代碼少,而且你可以使用如 REPL(REPL是互動式解釋器環境,R 指 Read,E 指 Evaluate,P 指 Print,L 指 Loop,因為互動式解釋器會讀取輸入內容並對其求值,再返回結果,並重複此過程)這樣的工具快速獲得反饋。雖然 Java 9 將擁有 REPL,但整體而言 Java 有相當多的儀式(設置你的環境、類路徑、一個集成開發環境或編輯器),外加更多的樣板代碼,所有這些都是學習編程之路上的絆腳石。任何教編碼的人都想要輕量級的、易於上手的語言,這是可以理解的。

Java 在斯坦福的更高級的課程中仍然被教授,這表明學習 Java 仍然是相應的和重要的。特別是,有些東西起初看起來礙事,如靜態類型、更嚴格的結構(在類等方面),一旦他們掌握了基本編碼的工作原理,似乎對開發人員來說更有用。

Vlad Mihalcea:

雖然出於教學原因 JavaScript 可能幫到他們,因為你不需要編譯代碼就能從瀏覽器運行所有的示例,但是我不認為這一舉動會影響 Java 的人氣。

Jake Wharton:

我不認為這會對 Java 造成消極影響而對 JavaScript 帶來正面效果。JavaScript 是一種動態類型和原始類型比 Java 寬容得多的語言,也不要求一個編譯步驟就可執行。編程入門應該關注於基本面,如批判性思考和問題解決技巧,而為此你並不需要 Java 所具備的益處。

Thorsten Heller:

起步階段採用 JavaScript 也許容易些,所以我認為這是斯坦福放棄 Java 的動機。讓人們更快速地起步,迅速地給他們一些成功的信心。然而,Java 作為不同編程語言的平台(比如 Java 本身、 Kotlin、 Scala 等等),在相關性和人氣上將不會落後。 Java 平台是現在的企業平台,並且也將是未來的企業平台。

Baruch Sadogursky:

大學在採用教學編程語言上通常落後於行業趨勢數年。在斯坦福,Java 被採用於 2002 年,那是在 Java 被引入 5 年之後,在 Java 已經變得極度流行 2-3 年之後。所以,斯坦福只是趕上 JavaScript 在年輕開發人員中的流行趨勢,正如我們已經好幾年在 StackOverflow 和 GitHub 統計調查中看到的那樣。

Quentin Adam:

這更多地是反映了 JavaScript 的人氣。對於初學者來說, JavaScript 會是簡單快速獲得UI(User Interface,用戶界面)反饋的好選擇。 如有必要,人們接下來會去學習 Java 。

採訪系列的第二部分是全部關於 Java 9 :我們剖析了 JCP 執行委員會的決定--不批准 「JSR 376 大眾評審投票」 [複議投票已經被批准] ,也會談論模塊化的生態系統。敬請期待。

原文地址:



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦