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