6月5日外電頭條:探秘Java 7模塊化 類路徑永遠(yuǎn)消失
原創(chuàng)【51CTO.com快譯】14年前,Sun Microsystems創(chuàng)立了Java語言和它的應(yīng)用平臺(tái),如今隨著Java SE Development Kit 7(JDK 7)的升級(jí),Java將向著更加模塊化的方向前進(jìn)。
JDK 7將使開發(fā)者能夠提早得到原計(jì)劃在Java Standard Edition 7中提供的功能。51CTO.com在之前的外電頭條中曾報(bào)道過Java 7將向細(xì)顆粒并行化發(fā)展;在舊金山舉行的本屆JavaOne大會(huì)的發(fā)布會(huì)上,Sun官員談到了即將到來的Java發(fā)布計(jì)劃,模塊化是JDK 7改進(jìn)計(jì)劃中的一個(gè)重要部分。(51CTO.com編者注:JavaOne是Sun組織召開的每年一次的Java開發(fā)技術(shù)大會(huì),本屆JavaOne 2009是Sun被Oracle收購后最后一次組織JavaOne,詳細(xì)請參考6月2日的外電:JavaOne 2009,Sun最后的挽歌? ,更多關(guān)于JavaOne 2009的消息請參考51CTO.com的獨(dú)家報(bào)道:JavaOne 2009技術(shù)前瞻以及JavaOne 2009 第一天和第二天的熱點(diǎn)技術(shù)關(guān)注。)
“我們正在定義Java平臺(tái)的模塊形式和實(shí)現(xiàn)工作,我們正努力使Java虛擬機(jī)演變成為一個(gè)支持各種高級(jí)語言的真正的多語言統(tǒng)一運(yùn)行時(shí)平臺(tái)。總之,我們的目的是使開發(fā)者變得效率更高,”Java SE和OpenJDK的首席工程師Mark Reinhold說。
走向模塊化的道路是為了解決Java變得越來越大的問題,Reinhold說。Sun正在著手處理模塊化的實(shí)現(xiàn),通過Jigsaw項(xiàng)目和Java規(guī)范請求294(Java Specification Request 294)。據(jù)Reinhold的描述,Jigsaw通過采用低層次的模塊系統(tǒng)來讓開發(fā)者使用自己的代碼。
在模塊化格式中,模塊可以被添加到基礎(chǔ)平臺(tái)比如聲音模塊或者用作Swing開發(fā)。此外,模塊將減少開發(fā)者對類路徑使用的需要,Reinhold說。類路徑是Java運(yùn)行時(shí)環(huán)境用來搜索類和其他資源文件的路徑。
“類路徑永遠(yuǎn)不會(huì)出現(xiàn)了?!?/STRONG>Reinhold說。(英文原文:Class path is dead)
“如果我們有了一個(gè)模塊化的平臺(tái),那么,我們幾乎可以立即解決下載大小和文件系統(tǒng)footprint這些問題”,因?yàn)樗行枰螺d的只是應(yīng)用的實(shí)際需要,Reinhold表示。而且在安裝時(shí)可以做到優(yōu)化。
Java的模塊化有可能會(huì)走向一個(gè)單一的Java實(shí)現(xiàn),Sun應(yīng)用平臺(tái)首席技術(shù)官Robert Brewin說。目前,Java提供企業(yè)版、標(biāo)準(zhǔn)版和面向設(shè)備的微型版等各種版本。
“模塊化給我們帶來了一些特殊的感覺,也許我們已經(jīng)走到了這一點(diǎn),從這里我們可以開始思考如何最終把Java合并成一個(gè),”也就是提供一個(gè)統(tǒng)一的Java版本,Brewin說。
通過模塊化可以讓最小型的設(shè)備在運(yùn)行時(shí)減少Java碎片,比如讓ME系統(tǒng)內(nèi)置的藍(lán)牙模塊在SE系統(tǒng)上運(yùn)行。但Brewin在發(fā)言后繼續(xù)表示,目前Sun還沒有想要整合為一個(gè)Java這樣的計(jì)劃。設(shè)備碎片一直是ME系統(tǒng)的一個(gè)問題,供應(yīng)商需要自己提供實(shí)現(xiàn)辦法。
模塊化是解決復(fù)雜性問題很重要的工具。把應(yīng)用分成不同的部分(模塊、庫、包、子項(xiàng)目和組件),再分別進(jìn)行計(jì)算,是行之有效的方式。也是目前Java突破當(dāng)前發(fā)展瓶頸的科學(xué)探索。但Java模塊化在真正的應(yīng)用中還有些需要注意的問題,比如依賴性、路徑、依賴沖突等。更多關(guān)于Java模塊化的技術(shù)應(yīng)用請參考51CTO.com之前的報(bào)道:走進(jìn)Java 7模塊系統(tǒng)。
Reinhold在發(fā)言中說,為了提高Java虛擬機(jī)的能力以處理除Java之外的其他主要語言,Sun正在大力開發(fā)Da Vinci Machine項(xiàng)目。在提高開發(fā)者生產(chǎn)力方面,JDK主要是通過Coin項(xiàng)目,對Java語言作出微小調(diào)整,使編程更加容易。但這種改變并不會(huì)太大,51CTO之前曾進(jìn)行過Java 7新特性的展望,事實(shí)上,語言層的改變很少;在今年1月更新的Java 7路線圖中也沒有包含社區(qū)中議論紛紛的閉包特性。Reinhold說。其中一項(xiàng)變化是“diamond operator(菱形運(yùn)算符)”的使用,將用于向編譯器發(fā)送指令重復(fù)完成任務(wù)。
另外值得注意的是JDK 7修改了語言規(guī)范方式,增加了標(biāo)注的使用?!斑@是為了給靜態(tài)檢查工具更好的提供信息,”Reinhold說。
JDK 7中的有些功能已經(jīng)可以使用了,Reinhold說。JDK 7的Milestone 3已經(jīng)在上個(gè)月發(fā)布,功能完整的Milestone 6計(jì)劃在10月份發(fā)布。JDK 7的候選版(也可能就是最終版)預(yù)計(jì)在2010年2月發(fā)布。
在Java企業(yè)版方面,Sun的Java企業(yè)平臺(tái)集團(tuán)高級(jí)工程師Roberto Chinnici說,Sun正在完成的還包括Java Enterprise Edition 6的改進(jìn)工作。Java EE 6將擁有歸檔和修剪功能,以適合用戶的需要。
RESTful網(wǎng)絡(luò)服務(wù)功能也將進(jìn)入Java EE 6,Java EE 6的最終版計(jì)劃將在9月份發(fā)布。
Sun在大會(huì)上還宣布了Kenai項(xiàng)目的連續(xù)整合的功能,進(jìn)行版本控制和源代碼管理。連續(xù)整合功能基于java.net的Hudson項(xiàng)目。
【更多關(guān)于Java 7的動(dòng)態(tài)】
【關(guān)于JavaOne 2009】
- Java開發(fā)者盛宴:JavaOne 2009技術(shù)前瞻
- JavaOne 2009第一天:Java軟件商店啟動(dòng) 甲骨文CEO登場
- JavaOne 2009第二天:Java領(lǐng)域的幾大趨勢 向多語言發(fā)展
【51CTO.com譯稿,非經(jīng)授權(quán)請勿轉(zhuǎn)載。合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com,且不得修改原文內(nèi)容?!?
原文:Java to get more modular with JDK 7 upgrade 作者:Paul Krill