Java 2007新年展望:開源后將走向何方
2007 年將是載入史冊的一年,Sun Microsystems 公司將于這一年在開源許可協(xié)議下發(fā)布 Java 開發(fā)包(JDK),從而放棄了對 Java? 平臺的統(tǒng)馭,將權(quán)力交給了 Java 開發(fā)人員社區(qū)!在本文中,Java 開發(fā)人員 Elliotte Rusty Harold 從各個方面預(yù)測了 Java 平臺的新方向,從腳本到 bug 修復(fù)到新語法。
2006 年又是 Java 平臺繁榮的一年。盡管遭遇了來自 Microsoft(C#)和腳本語言社區(qū)(Ruby)的沖擊,但 Java 語言仍然保持著其世界頭號編程語言的地位。同時,盡管 Java 6 的發(fā)布很值得慶祝,但比起宣布 Java 將在 GNU General Public License 下完全開源這一事件來說,卻不免有些黯然失色。Java 在 2007 年還能保持這種勢頭嗎?讓我們來看一下成敗的可能。
Java 平臺將成為開源平臺
2007 年上半年,Sun 將在一個開源許可協(xié)議下發(fā)布 Java 開發(fā)包(JDK)。解除 JDK 的禁錮對于 Java 開發(fā)人員社區(qū)來說是巨大的一步,它將在今后的十年中推動 Java 平臺的發(fā)展。
JDK 的質(zhì)量將會顯著改善,因為程序員們不再僅僅報告 bug 并開始修復(fù)。Java Developer Connection 的 bug 報告將會包括對 JDK 中的問題部分的詳細(xì)分析,并提供修復(fù)的補丁。正如Linus 法則 所陳述的那樣,“只要給予足夠的關(guān)注,任何 bug 都是顯而易見,即調(diào)試是可并行進(jìn)行的。優(yōu)化也是一樣。開源使兩者得以 并行。
分支項目
遺憾的是,設(shè)計并不是和調(diào)試、優(yōu)化一樣可以并行完成的。清潔的 API 有時也需要有一只獨裁的手。但獨裁者的缺點是:有時他們知道在做什么,有時卻不知道。意圖成為獨裁者的各方面之間的競爭往往是發(fā)現(xiàn)問題最佳解決方案的惟一方式。
很少有公司能夠負(fù)擔(dān)得起這樣的代價,為一個產(chǎn)品開發(fā)多個獨立的實現(xiàn),以便在多個產(chǎn)品中選定保留一個而摒棄其余的產(chǎn)品,但開源社區(qū)卻在朝這個方向努力。所以,您會在 Java 平臺的各個層次中發(fā)現(xiàn)分支產(chǎn)品:語言、虛擬機(jī)和庫。大多數(shù)的分支產(chǎn)品會失敗,但這沒什么。好主意會脫穎而出。一些分支產(chǎn)品會一直存在下去,一些會重新并入標(biāo)準(zhǔn) JDK 中。明年的這個時候,分支產(chǎn)品與主流產(chǎn)品之間的差異也許不會很明顯,但這個過程會繼續(xù)下去。
Sun 會在幾個月后發(fā)布 Java 7,Dolphin 的一個早期的 beta 版,以此作為開端。Sun 無法發(fā)布更早的 JDK 版本,因為存在一些只有在 Dolphin 中才能解決的構(gòu)建問題和許可協(xié)議問題。盡管如此,仍有望看到第三方著手進(jìn)一步細(xì)分 Sun 的版本,來提供 Java 6、Java 5、Java 1.4,甚至更早版本的流行開源實現(xiàn)。
早期的一些探尋分支產(chǎn)品的人們可能會侵犯 Sun 公司的商標(biāo),收到 Sun 的律師寄來的討厭的律師信。我們需要一個通用的未注冊為商標(biāo)的名字,讓所有人都能使用。我建議用 “J —— 我希望沒人用單字母作商標(biāo)。
開源項目從未消亡,只是有些褪色。就像之前的 Blackdown Project、GNU Classpath、Kaffe 和其他開源 JDK 項目一樣,他們的開發(fā)人員都轉(zhuǎn)向其他事情了。如果一個項目至今還沒有達(dá)到 1.0,那么恐怕以后永遠(yuǎn)也達(dá)不到了。
期待 Java 7
Dolphin 不會在 2007 年發(fā)布。2008 年是更為現(xiàn)實的目標(biāo)。那就是說,工作尚在進(jìn)行中,它的一些功能也許會作為早期的標(biāo)準(zhǔn)擴(kuò)展或至少作為 beta 登場。
遺憾的是,為一門語言添加功能遠(yuǎn)比刪除功能要簡單得多。幾乎不可避免地,隨著時間的推移,語言不是朝著簡單的方向發(fā)展,而是越來越復(fù)雜,越來越讓人困惑。即使是那些單獨看起來很好的功能,在彼此疊加后也會出現(xiàn)問題。
令人遺憾,Java 社區(qū)沒有接受這個教訓(xùn),盡管這種失敗并無特殊性。但總有一些太酷又太讓人激動的新語法令語言設(shè)計者難以抗拒 —— 即便這樣的新語法不能解決任何實際問題。于是對 Java 7 的新語言功能就有了巨大的要求,包括閉包、多繼承和操作符重載。
我猜想在這一年結(jié)束前,會在 Java 7 beta 中看到閉包,也許還能看到操作符重載(有五成的把握),但不會出現(xiàn)多繼承。Java 中有太多東西是基于單個根的繼承層次。沒有可行的方式改進(jìn)多繼承,使之適應(yīng)這門語言。
目前有許多語法糖方面的提議,有一些有意義,有一些沒有。許多提議都專注于將像 getFoo() 這樣的方法替換為像 -> 這樣的操作符。
……
完整文章請察看原文:http: //ibm.csdn.net/ISN_J.aspx?action=JMP&pointid=1530
相關(guān)文章:

網(wǎng)公網(wǎng)安備