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