[轉載]回顧與展望,2006與2007的Java 技術
與以往不同的是,2006年對于Java是具有決定性意義的一年。對于Java命運最重要的是Sun決定以GPL許可方式發布其Java實現,它已經發布了HotSpot VM、javac編譯器、Java ME。而更多的源代碼將會逐漸在明年開放..這是許多人在一年前不敢想像的,更沒有人想到Sun會選擇GPL。
但未來會怎樣?這是一個大問題。盡管今年發生了如此多的大事,但這些事情將會如何引導發展方向? 似乎并不明顯。在這篇文章中,我們將列出這些主要事件,并指出它們在2007年的發展預期。[@more@]開放源代碼Java
2006:Sun采用GPLv2發布其Java VM和編譯器
2007:期待類庫、關注衍生版Java
采用GPL發布Java編譯器和VM表明Sun對于開放源代碼Java是認真的,但要判斷它的結果還為時過早。其一,Sun發布的是早期版Java SE 7,Sun不希望開放源代碼影響在12月初發布的Java SE 6。Sun發布的代碼還缺乏打造一個有用的Java環境所需要的類庫。
提供類庫的挑戰之一是,必須從數百萬行代碼中找出Sun可以在Java中使用、但無權以GPL方式發布的代碼。其中一些代碼已經有了開放源代碼版替代品,但是,Sun還必須重新許可、編寫、放棄一些代碼,這是不可避免的。
除此之外的一大問題是,在采用GPL后,人們會如何“處理”Java。除了與在一些版本的Linux中包含Sun的JVM所牽涉的“政治性”問題和將JVM移植到Sun沒有興趣這么做的平臺上外,人們還會做出一些不可預測的事來。HotSpot的動態運行編譯器會服務于其它語言的runtime嗎?開發人員會通過修改編譯器或者增添和刪除功能構建多種不同版本的Java語言嗎?這樣的語言可能不能再叫Java了,但它叫什么呢?Java可能被用于某些特定域相關的語言, 使用"J"開頭進行命名。
2006:Sun制定并推廣Java分銷許可(Distro License for Java,DLJ)
2007:Java分銷許可還有用嗎?
如果你是一家Linux分銷商,Sun現在無疑給了你當頭一棒。在選定GPL前,Sun向Ubuntus和Debians推薦了Java分銷許可,它使平臺開發商能夠以對它們的平臺有意義的方式封裝Java SE,使用戶能夠象apt-get那樣獲得JVM,而無需人工安裝。
有了GPL版Java,DLJ似乎就再無用武之地了,用戶能夠方便地修改類庫、JVM。因此,只有在GPL Java被封裝為.dpkg軟件包時,DLJ才是必需的。
Java平臺
2006:Java SE 6發布
2007:開發人員何時會采用它
Java SE 6在12月中旬發布,比原定計劃略微晚了一些。Java SE 6提供了包括XML Digital Signature在內的一些新API,更新了JDBC 4.0和JAXB 2.0等API,重新設計了圖形渲染管道,提高了Swing的Windows的精度GTK。
但是,由于開發人員、部署人員、用戶在采用新版Java方面的動作比較緩慢,Java SE 6能夠立即吸引人們嗎?除非需要一些特定的新功能,安裝全新的JVM值得嗎?盡管性能有所提高━━特別是對于桌面應用軟件而言,但在進入2007年時,SE 6不會成為許多人的缺省Java版本。
2006:Java SE 6支持Java之外的其它語言
2007:我們會在JVM上運行什么語言?
Java SE 6中最有趣的變化是它內置地支持腳本語言。新的javax.script API使我們能夠在Java中使用腳本語言引擎,在腳本語言和Java之間交換數據。Java SE 6提供了對JavaScript的內置支持,第三方廠商肯定會增添更多的腳本語言。
由于Sun在9月份招聘了JRuby的開發人員,最可能的“下一種語言”是Ruby。很顯然的是,Sun還在吸引Perl和PHP等其它腳本語言的開發人員。
2006:JDK 7開發工作啟動
2007:與closures有關的爭論達到頂峰
JDK 7的開發已經在進行,但功能清單的發布還需要一段時間。JDK 7中最有爭議的語言功能是在Java語言中增添closures。
在這一問題上有二種觀點。其一是closures是否有必要,或者說closures帶來的復雜性是否超過了它帶來的好處。考慮到closures提供的一些功能已經能夠由inner類完成,closures能夠減輕的“痛點”可能只不過是證明另一種語言結構是不必要的;第二種觀點與closure的語法有關,即它對簡潔的期望是否會使Java closures不容易理解。
2006:Java EE 5發布
2007:EJB 3能夠重新贏得開發人員的青睞嗎?
Sun在今年夏季發布了Java EE 5以及EJB 3.0企業對象框架。
2007年值得關注的是EJB 3.0能否重新贏得放棄了EJB 2.x的開發人員的青睞。
2006:Java ME在手機上非常普及
2007:GPL ME會改變什么嗎?
在三大Java平臺中,Java ME最不引人注目,但由于被應用到了手機上,它的應用比SE或EE要廣泛得多。盡管有了一個開放源代碼CLDC/MIDP平臺,是否有人采用它還是個問題。手機制造商可能會選用當前的許可協議,但GPL ME對于其它領域的初創廠商是非常理想的。