定義這篇文章討論的范圍 類似這篇文章的主題,事先定義一個(gè)范圍是很重要的。首先,我們不討論任何非Java的技術(shù)平臺(tái)。你也許會(huì)認(rèn)為這有些太狹隘了。我不這么想,這篇文章是要單獨(dú)的討論Java平臺(tái)的各個(gè)方面,并不是要和其他的語言平臺(tái)進(jìn)行比較。我的愛好在于那些為了完善Java平臺(tái)提出的具有建設(shè)性意義的觀點(diǎn)。假如可能,我希望其他技術(shù)平臺(tái)的支持者能夠發(fā)表類似的文章提出他們認(rèn)為最完美的技術(shù)平臺(tái)。另外,我在這里還假設(shè)Java語言已經(jīng)是各種技術(shù)平臺(tái)中最佳程序語言。并且我也不會(huì)討論最新的Java2平臺(tái)J2SE1.5,盡管在J2SE1.5中我可以感覺到其中的一些變化比如標(biāo)有” keeping up with the Joneses”的是把矛頭指向了C#語言。一個(gè)語言的穩(wěn)定與否至少需要將近8年的不斷驗(yàn)證才能證實(shí)它的最初設(shè)計(jì)是否是健壯的。參數(shù)化集合的實(shí)用行在JDK1.5中是顯而易見的,其中的一些新特性比如autoboxing, enumerations和 static imports引起了開發(fā)人員的廣泛關(guān)注。
我不得不痛苦的承認(rèn),開發(fā)Java程序并不輕易。相對簡單的項(xiàng)目還好,但假如項(xiàng)目不斷增長以至于變得越來越復(fù)雜就會(huì)不斷出現(xiàn)越來越多的問題。比如J2EE應(yīng)用就是這樣。因此在項(xiàng)目的開發(fā)中我程序員需要花更多的時(shí)間來跟蹤底層的問題,比如類引導(dǎo)(classloading)問題而不是解決實(shí)際的業(yè)務(wù)邏輯問題;還有令很多程序院頭疼的EJB(查看我過去的文章To EJB, Or Not To EJB?)通常情況下他們都是在清除一系列的警告信息,EJB也許想把負(fù)責(zé)的問題簡單花,但是它并沒有更貼近于現(xiàn)實(shí)中的持久化問題或業(yè)務(wù)邏輯的解決方案,這還與Java開發(fā)工具的不足有關(guān),坦率的說,微軟的Visual Studio在這方面比Java作的要好,Java需要學(xué)習(xí)。