J2SE1.5便於開發的新語言特性: Joshua Bloch的訪談錄(1)

J2SE1.5便於開發的新語言特性:Joshua Bloch的訪談錄<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

原文http://java.sun.com/features/2003/05/bloch_qa.html
by Janice J. Heiss
<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />May 8, 2003

隨着預期Java 2 Platform, Standard Edition 1.5 (J2SE 1.5) beta版本在2003年晚一些時候的發佈(衆所周知的Tiger項目),開發人員非常關注即將到來的新的變化。沒有誰能比Joshua Bloch更適合清晰地解釋J2SE 1.5了。他是Sun公司的資深工程師,是Java平臺核心工作組的系統架構師。他成功地設計並實現了獲獎的Java Collections Frameworkjava.math,而且對Java平臺的其他部分的設計和實現也做出了卓越的貢獻。他發表過無數的論文,並且出版過一本書《Effective Java Programming Language Guide》,這本書獲得了軟件開發雜誌的Jolt獎。他獲得了Carnegie-Mellon 大學的計算機博士學位。今天我們跟他交流一下,來看看Java程序設計語言的未來。

 

正在研發的Tiger項目試圖增強J2SE,在不損失兼容性的基礎上使Java程序更清晰、更簡短、更安全以及更易於使用。您能告訴我們在J2SE平臺中Java語言怎麼樣更容易使用嗎? <?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

CSDN_Dev_Image_2003-5-121508552.png

 

新語言特性都有一個共同特徵:它們都包含一些通用的語法並且提供了語言上的支持。換句話說,它們把編寫與語義代碼的責任從程序員轉移到了編譯器上。 因爲源代碼擺脫了語義相關代碼,它更容易讀寫。同時編譯器不是程序員,永遠不可能犯錯誤,所以導致新代碼更可能擺脫bug的困擾。

 

另外,整體的功能大於組成整體的各個部分之和,所有的新特性在設計的時候都是充分考慮其它部分的。它們一起協調作用,顯著地提升了語言的表現力和安全性。

 

您估計,哪一個變化是最難讓開發者適應的?還有,開發者需要做什麼樣的調整?

 

我希望,所有的新特性都不會讓開發者感到難以適應。不過,如果我非要從裏面選一個出來的話,那麼我覺得是泛型技術。因爲開發者必須在聲明中提供一些額外的信息,而不是僅僅說:

 

    List words = new ArrayList();

 

你必須這樣寫:

 

    List<String> words = new ArrayList<String>();

 

這樣做的好處就是如果你想插入一個其他什麼對象而不是String的話,在編譯的時候你就可以發現並修正你的錯誤。如果不使用泛型技術的話,只有當你們的客戶向你們抱怨他們所依賴的軟件Down掉了,原因是一個什麼類型轉化異常(ClassCastException)的時候,你纔可能發現你程序中的這個bug

 

這樣做的另外一個好處就是當你從集合(Collection)中取出一個元素的時候不用作強制類型轉轉。本來,你會這樣寫:

 

    String title = ((String) words.get(i)).toUppercase();

 

現在很簡單:

 

    String title = words.get(i).toUppercase();

 

CSDN_Dev_Image_2003-5-121508552.png Java 2 Platform, Standard Edition 1.5 (J2SE 1.5) beta版本將在2003年晚一些時候的發佈,這些變化也都通過了JCP的審覈。兩個問題:如何確保當前的構想會反映到最終的改變?開發者怎樣參與到這種改變的過程?

 

CSDN_Dev_Image_2003-5-1215085512.png相關JSRs (14, 201, 175)的專家組將會推敲當前的草案,但是我確信大體的輪廓在最終的版本中不會改變太多。當然,最終還是要專家組說了算。

開發者參與的最好的途徑就是閱讀最新的草案,並把意見和建議發給相關的專家組。最新的泛型草案可以在下面的地址中找到:

http://jcp.org/aboutJava/communityprocess/review/jsr014/.

你也可以下載一個預覽版的編譯器,嘗試理解泛型技術: http://developer.java.sun.com/developer/earlyAccess/adding_generics/.

其他方面建議的早期草案在這裏: http://www.jcp.org/en/jsr/detail?id=201 請注意3.1節,大約在這一頁的底部。

 

當前還沒有關於JSR-175 (metadata)元數據的草案,不過很快就會有了。開發的進一步信息請在這裏找: http://www.jcp.org/en/jsr/detail?id=175

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章