Java:面向未來的七大強力新特性

51cto發表於2015-08-07

  誕生於1991年的Java如今已經成為世界範圍內應用最為廣泛的程式語言之一。在今天的文章中,我們將共同瞭解Java所擁有的七大關鍵新特性,展望其如何在未來的超級計算、大資料以及物聯網等領域繼續發揮核心作用。

  Java。作為與全球資訊網共同發展成長的程式設計工具,幾乎沒有任何一種其它語言能夠像它這樣從始至終對Web應用程式作出定義。自1991年誕生於Sun Microsystems公司(現已被甲骨文公司收購)以來,由James Gosling、Mike Sheridan以及Patrick Naughton共同設計而成的Java語言已經成為眾多企業級應用程式方案當中的核心組成部分。而在近25年的發展演變之後,Java還能否在我們的未來開發規劃當中繼續佔據一席之地呢?

  Java的主要優勢在於其作出的WORA:即一次編寫(Write Once)、隨處執行(Run Anywhere)。簡單來講,這意味著開發團隊能夠利用Java編寫一款應用程式,並將其編譯為可執行形式,而後將其執行在任何支援Java的平臺之上。這顯然能夠極大提高程式設計工作的實際效率,但實現這樣的效率也確實需要我們付出一點成本。

  此類主要成本之一就是在訪問低階機器硬體時,WORA的起效會帶來一系列限制條件。通用相容性需要抽象機制的支援,而抽象機制會給應用效能造成一定影響。正因為Java與硬體之間存在一定差距,因此C++才得以繼續充當主要開發語言之一,且往往與Java配合起效。不過這還僅僅是成本的一種表現。其它更為高昂的成本甚至有可能阻礙Java的未來發展。

  Java應用程式通常執行在瀏覽器視窗當中,對瀏覽器介面的熟知正是很多企業開發人員樂於利用Java建立應用程式的主要原因之一。不過問題在於,Java是通過外掛架構接入瀏覽器併成為其組成部分的,但這一架構目前正逐漸消失。新的微軟Edge瀏覽器不允許使用任何外掛。Chrome瀏覽器目前也對外掛作出了諸多限制。其它瀏覽器似乎也會遵循同樣的轉變思路。那麼這是否意味著Java將因此而逐漸淡出我們的視野?

  不,Java並不會就此終結。Java應用程式仍將繼續以獨立而特別的方式保持運轉。大量現有Java程式碼的存在意味著重視成本問題的開發人員(及開發經理)將在長遠的未來繼續使用Java。有鑑於此,我們需要了解與Java相關的哪些事實?

  軟體開發與程式語言本身一直在不斷髮展。Java當然也投身於這場經年累月的持續演進。下面我們就來一同瞭解Java的幾大相關重點,看看其發展方向會給我們的未來開發帶來怎樣的影響。

  當然,最後提一句。如果您正在使用Java進行程式設計,或者對其發展前景有何高見,不妨在評論欄中與我們分享。感謝參與:)

  Java已不再侷限於瀏覽器

  Java主要作為基於瀏覽器的應用程式開發語言的歷史角色已經發生了轉變。在步入Windows 10時代之後,我們將迎來新的Edge瀏覽器並在這裡徹底告別Java——因為這款新型瀏覽器不再支援外掛機制。

  現在,我要向大家分享一點小祕密:如果您出於某種考量而需要繼續使用基於瀏覽器的Java應用,完全沒問題。Windows 10當中同時提供IE 11瀏覽器,這套傳統瀏覽方案樂於迎接包括Java在內的各種外掛方案。這雖然也意味著大家仍然需要重視由外掛引發的安全問題,但至少我們多了一種選擇。

  不過面向未來,大家應當制定計劃,逐步將自己的Java應用程式轉移到桌面平臺之上。它們將在這裡迎來新的發展空間,而使用者們也將逐漸適應在瀏覽器視窗之外與Java應用順暢協作。

  JavaScript將一直存在

  Java與JavaScript是完全不同的兩種事物:Java是一款由Sun Microsystems公司開發的編譯程式語言,而JavaScript則是由Netscape公司推出的解釋型指令碼語言。Java應用程式可以執行在瀏覽器當中(利用外掛架構),同時亦可以獨立程式形式存在。而JavaScript則必須立足於瀏覽器視窗之內——單憑自身並不能夠獨立執行。

  著眼於未來,JavaScript仍將在瀏覽器領導保持至關重要的地位。它能夠與HTML 5攜手合作,共同為使用者提供豐富的互動式瀏覽器使用體驗。如果您是一位擁有豐富JavaScript使用經驗的開發人員,那麼您的發展前景可謂相當光明。

  如果您是一位開發工作經理,那麼在規劃當中利用HTML 5以及JavaScript進行應用開發也相當明智。二者相結合能夠為企業Web以及移動Web應用提供非常理想的支撐,從而應對未來很長一段時間內的實際需求。

  Java陣營的各類元件正逐漸匯聚

  甲骨文公司正持續開發Java專案,並計劃於2016年年內推出Java 9版本。其巨集觀圖景是將Jigsaw專案正式交付給開發人員,並使Java具備更出色的模組化特性。這意味著屆時將有多種“接入並起效”架構供我們選擇,從而進一步擴充Java的傳統程式設計模式。

  開發人員已經為Jigsaw專案制定了一系列發展目標,我們可以將其歸結為兩大門類:效能與可擴充套件能力。模組的出現能夠對結構進行進一步簡化,而總體來講結構精簡就代表著程式碼規模更小、執行速度更快。輕鬆將模組納入及移出整體應用程式的能力會使Java程式碼得以在不同規模的各類平臺之上順暢運作,從規模巨大的工程技術工作站到小巧的嵌入式物聯網處理器皆涵蓋於其中。

  Java將成為物聯網的溫床

  在剛剛誕生之時,Java原本是作為我們如今稱為物聯網裝置上應用程式的程式語言存在。該語言的早期開發者們希望針對網際網路電視機打造一款程式語言。不過問題在於,1991年時的嵌入式處理器根本無法同時支援Java框架及其應用程式。時至今日,情況已經發生了徹底轉變。

  Java Platform, Micro Edition(簡稱JPME)為甲骨文公司針對嵌入式及移動平臺所打造的解決方案,同時面向電視機以及媒體中心等特殊平臺。在物聯網領域當中,“一次編寫,隨處起效”原則的存在帶來了顯著的成本節約效果。更加值得一提的是,企業能夠藉此引導開發人員打造出商用Java程式設計成果,並將其分配至物聯網任務當中。

  將上述能力彙總起來,Java語言將成為成功的企業級物聯網發展戰略當中不可或缺的重要一環。

  Java向移動領域進發

  讓Java在物聯網領域得以大顯示身手的Java Platform,Micro Edition同時也能夠在移動應用程式開發工作中扮演重要角色。必須強調的是,Java在iOS領域面臨著巨大的競爭壓力。蘋果公司的Swift語言已經成為希望讓自己的應用成果順利進入App Store貨架的開發者們的首選程式設計環境。不過如果大家的主要目標市場為Android,那麼Java仍然是一款極為強大的開發工具,同時也能為我們帶來理想的跨平臺能力。

  Java能夠支撐超級計算機裝置

  當我們思考適用於高效能運算(簡稱HPC)的程式語言時,首先想到的幾乎不可能是Java。但實際情況是,世界上相當一部分高效能運算專案都在利用Java負責背後的流體分析(或者天文觀測)任務。Java的基礎架構看起來並不適用於高效能運算,但它所具備的多種特性卻足以保證其在高效能應用程式當中佔據一席之地。

  Java當中的一大關鍵性高效能運算能力在於其原生支援多執行緒執行機制。另一大要點則在於,Java允許開發人員輕鬆編寫出網路應用程式。雖然Java難於使用多核心處理器的弊端在一定程度上抵消了上述優勢,不過出於某些特殊高效能運算目標的科學專案仍然樂於將Java作為其中的重要組成部分。

  沒錯,Java不太可能在高效能運算領域徹底取代C++,但其肯定要比早已老朽不堪的FORTRAN更具活力。如果您的程式設計團隊中包含多位剛剛畢業且熟知Java開發知識的新人,那麼它絕對是您不可錯過的首選程式語言。

  Java,大資料技術領域的一匹黑馬

  等等,Java能夠在大資料領域有所建樹?沒錯,真是這樣,因為它能夠以現代高效能運算(簡稱HPC)體系為核心,將多數強大的大資料元件結合在一起。就在去年,IBM公司展示了一套實驗性專案,其中的一套Hadoop例項就執行在利用Tesla圖形處理單元(即GPU)構建的系統當中。這是一套極為強大的組合,能夠輕鬆完成大多數極為複雜的資料集分析任務。

  GPU已經成為目前大多數速度最快的超級計算裝置所不可或缺的處理器選項。而Java的“一次編寫,隨處起效”架構意味著技術團隊能夠在工作站上開發自己的軟體,而後將其移植到這些強勁的系統當中。當這些系統執行有Hadoop等大資料資料庫管理工具時,其結果絕對令人印象深刻。

  那麼,您是如何開發自己的高效能應用程式的?您是否會使用同樣的程式語言開發物聯網解決方案或者是基於瀏覽器的新型企業工作流應用?請大家在評論欄中分享您對於Java當前與未來發展圖景的看法。而其中最重要的問題在於:您是否會建議剛剛進入企業的新手將Java作為其掌握的基礎性程式語言之一?我們期待著您的答案——這對於下一代程式設計師們非常重要。

相關文章