Java的發展趨勢向好向壞?

ava語言在業界的重要地位不容置疑,但是隨着多種新語言的誕生和各種老語言的復興,也由於Java自身的一些問題,在開發社區中時不時的會有唱衰Java的言論出現,那麼事實到底是怎樣的?每個人都有自己的看法,資深評論家Andrew Binstock撰文分析了Java的發展現狀和趨勢,並看好Java的未來前景。

Andrew承認Java語言是有一些冗長,但並不認爲它在衰亡——沒有證據支持這一點。他說,Java是有些囉嗦。Java 7在一年半前問世,在此之前,編寫一個像寫文件這樣簡單的任務需要冗長的、多步驟的過程,這些過程含有各種“儀式”。針對編程任務普遍冗長這一狀況,人們推出了幾種腳本語言,旨在幫助開發者從長句法段落得到解脫進而採用簡單動作進行交流。這些腳本語言包括NetRexx、Groovy、Scala等。我本人是Groovy的粉絲並將它應用在了我的項目中。但這是因爲Groovy的附加功能(可選類型、閉包、方法注入、元編程等)而不是因爲它的簡潔性。即使是新推出的Java 7,開發者也合理的指出了有些類和方法的名字實在太長了,例如MethodExpressionValueChangeListener這個名字實在是打起來費勁記起來困難。不過,我認爲想開發一種有能力支撐企業運算的主平臺語言和庫,要求它不出現長的、描述性的名字是不大現實的。相對於短小難懂的名字,例如C標準庫中的strstr(),我個人更喜歡長的、描述性的名字。簡潔並不一定是最好的。儘管冗長,Java仍然可以減少其執行很多任務時所需的“儀式”。

接着,Andrew從另一個角度分析了Java的繁榮程度。JavaOne是Java程序員的年度大會,相比較於前兩年,最近的一場大會更大、更好,參與的人也更多。我和展臺的供應商交流過,他們和我的觀點是一致的(真的沒有一個人例外),他們都表示今年的關注度都遠高於去年,而去年的也比前年的要好。通常,當某種技術開始衰落時,我們最先在它的展會上發現徵兆:供應商不想爲參與人數少的展會花錢,開發者也需要把他們的旅行經費花在更有價值的事情上。於是,當一個展會冷清得像墓地時,我們就可以知道這種技術的死期到了。

從技術角度上講,Andrew認爲Java語言在不斷地進步。

正如我所提到的,不管是在語言水平還是JVM水平,Java 7 都是一個重要的版本。而預計明年3月問世的Java 8,更值得我們期待。Java 9的一些特性已經發布,並預計在2016年發佈。與Sun公司之前對Java的管理方式不同,Oracle公司堅持每24-30個月更新一次Java版本這一目標。Java 8將會加入閉包(也就是lambda 表達式)。閉包減少代碼,減少需要的匿名內部類,並促進函數式編程。更好的模塊性(這個將在Java 9中進行完善)將幫助有效管理部件,而幾項用來簡化語句的改進也將出現在這個版本中。

JavaFX仍在不斷完善中,並且它比Swing語句簡單的多。當今對用戶體驗的關注給Java帶來了很大的發展機會,它的發展甚至可能比我們預期還要好。Oracle敏銳地注意到了Java在小型設備中扮演的角色。據該公司描述,當今有30億臺手持設備在運行Java。Oracle集成了前JavaME與JavaSE版本,並積極地推動Java的發展以迎對即將到來的物聯網浪潮。Eric Bruno在IoT的一篇博文描述了一個用來監控JavaOne會議出勤情況的項目。這個項目從前端攝像頭到後端實時分析都是用Java語言寫的。Java語言既能在小型設備上運行又能支持大量的企業級系統,應用如此廣泛的平臺和語言並不多。

安卓的本地開發語言是Java語言,因此當我們把Android生態系統列入考慮範圍後,我們更難去說這門在多領域廣泛應用的語言——應用在服務器、網絡、桌面、移動設備——正在處於衰落階段。 

同時,JVM的生態系統很健康,這是證明Java沒有在衰退的更有力的證據。JVM也在隨着語言版本的更新而更新。Java 7中新加入的字節碼(包括invokedynamic),這體現了JVM表現的有多優秀。當JVM中增加了實現Ruby、JRuby指令的本地支持後,它的性能已經遠遠超越了基於C的Ruby VM。而基於C的Ruby VM多年來一直是Ruby的參考平臺。

Andrew最近參加了由“No Fluff Just Stuff”組織的SpringOne 2GX大會,而這個大會展現了Groovy社區有多活躍(儘管它很安靜)。VMware/Pivotal 依舊依賴於Groovy和Grails,並且語言和框架都從持續的投資中受益。

在這裏我不再談其他主要的JVM語言,我只想說一點——今天最流行的Lisp實現是Clojure,它是運行在JVM上的,並且三年前它還是不爲人知的。

GitHub是人們今天保存項目的“聖地”,來自GitHub的數據顯示,在去年和今年的項目所選編程語言排行榜中,Java均名列第三。(它排在JavaScript和Ruby後面也是有一定歷史原因的:GitHub最初主要是用來存儲Ruby語言的工程的。)在較有爭議的Tiobe索引中,Java排在第二,位列C之後。(自從2002年以來C和Java交替佔據着一二名的位置。)Ohloh是開源社區中最大統計門戶網站,過去的七年Java始終在Ohloh中保持同樣的比例。

因此,Andrew認爲,他所看到的是一門在不斷改進和發展的語言,它有一個規模龐大並且活躍的社區,它擁有一個廣泛應用新語言的平臺。從這之中看不到任何這門語言在衰落的跡象。不過,受困於連續出現的安全問題,Java 8發佈時間推遲到2014年。Oracle的Java平臺組首席架構師Mark Reinhhold在其博客上宣佈,Oracle決定將Java 8的發佈時間推遲4-6個月。Reinhold提到,Oracle正在全力解決近來引發公衆關注的這一波安全漏洞問題, Java 8項目組不可避免地被抽調走了很多工程師。他說,“維護Java平臺的安全性,其優先級總是比開發新功能要高,所以這些工作不免會抽調一些正在進行Java 8開發的工程師。”此外他還強調,爲改進代碼質量並減少缺陷,Oracle“升級”了開發流程。看起來Java 8 GA(General Availability)版本的發佈時間會從原計劃的2013年9月推遲到2014年第一季度。這已經是該版本的第二次跳票了。Java 8最初計劃於2012年底發佈,後來受Java 7開發延期的影響,被推遲到了2013年9月,並且放棄了Jigsaw項目。目前這次延期也會波及到JDK 9,我們預計JDK 8將於2014年第一季度發佈,而JDK 9則從2015年推遲到2016年初。InfoQ去年7月曾報道過,Java 8放棄了Jigsaw項目,而且Reinhold否定了該項目再次進入Java 8的可能性。

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