Sun JDK bug 分析

來源:互聯網
上載者:User

  很多人都想知道 Sun JDK bug 分析資料,因為每一個開發工具/開發語言都有自己的長處和缺點,如果我們能夠使用 Java 的長處,避開 Java 的缺點,則我們有可能寫出好的程式,否則,我們不可能寫出好的程式。這是一個淺顯的道理,每一個程式員、系統分析員、專案經理、技術經理,都應該知道這個道理。

  這篇文章的分析資料都來源於 Sun 網站上的公開資料。
  JDK 1.4.2 的 bug 資料來自: http://java.sun.com/j2se/1.4.2/fixedbugs/fixedbugs.html 。
  JDK 5.0 的 bug 資料來自: http://java.sun.com/j2se/1.5.0/fixedbugs/fixedbugs.html 。
  
  更早版本的,比如 JDK 1.3,已經從 Sun 網站上被刪除了。沒有辦法再進行分析了。

  JDK 1.4.2 的 bug 資料餅圖如下:

  可以看出,前六位佔據了超過半數的 bug:
java/classes_awt    13.7%
java/classes_swing   12.6%
java/classes_2D     11.5%
java/classes_net    6.3%
java/classes_sound   4.1%
java/classes_util    3.7%
java/javadoc       3.7%
java/classes_nio    3.3%
javawebstart/other   3.3%
java/compiler      3.0%

  JDK 5.0 的 bug 資料餅圖如下:

  可以看出,前六位同樣佔據了超過半數的 bug:
java/classes_swing    22.5%
java/classes_2D      9.5%
java/classes_awt     7.6%
java/classes_lang     4.6%
java/compiler       4.1%
java/classes_sound    3.3%
java/classes_util_i18n  2.5%
java/classes_util     2.5%
java/javadoc       2.4%
java/classes_net     2.2%

  在這兩個版本中,前三位都是 Swing、AWT、2D,這說明了在圖形介面(專業術語為 GUI)設計中,Sun 的軟體工程師的水平仍差強人意,這可以解釋。Sun 所開發的軟體產品中,主要面向小型機伺服器市場。這些市場對於軟體的介面要求不高,基本上都是傳統的 Unix service 程式。也許 Sun 的強項並不在 GUI 方面。GUI bug 在兩個版本的百分比分別是 37.8 和 39.6%,都超過三分之一。
  
  相比較其他流行的開發語言,比如 .Net,或者即使是十年前的老版本 Visual Studio,或者 Borland 的 Delphi/CBuilder 中, GUI bug 所佔的分量也沒有這麼高。

  這說明了儘管 Sun 不停地宣傳 Swing 類是多麼的設計巧妙,儘管每個版本的 JDK 文檔中 Sun 都在新版本的新特點中提到 Java Swing/AWT/2D,我們仍然應該避免使用 Java Swing/AWT/2D。很多第一線的程式員都能明確瞭解使用 Java GUI 編程是一個非常糟糕的想法,但是在中國國內,還是有很多系統設計師和專案經理有這個糟糕的想法。

  JDK 1.4.2 中排名第四的是 java/classes_net,在 JDK 5.0 中則是第十名。考慮到 JDK 1.4.2 相對於以前的版本,增加或者增強了 IPv6、HTTP Digest Authentication、Unconnected/Unbound Socket Support、Connected UDP Socket Support、FTP Protocol Handler、JNDI DNS SP Support in InetAddress、URLEncoder and URLDecoder Improvements、TCP Out-of-Band Data、Full V5 (RFC 1928) & V4 TCP support。由於這是一個比較大的動作, bug 比較多也屬於正常範圍。

  兩個版本中,java/classes_sound 都出現在前十,並且排名都比較中前,這說明了 Sun 在多媒體方面的技術也不盡如人意。

  讓我們失望的是,java/classes_util 在 JDK 1.4.2 和 5.0 中都出現在前十中。這個包的類庫使用得比較普遍,每個專案經理或者產品經理都應該派專人去查一查,自己的軟體中是否在 java/classes_util 的使用上,有沒有避開以上 bug。

  在 JDK 1.4.2 中 bug 出現在前十名的 java/classes_nio 沒有出現在 JDK 5.0 中,這是一個好訊息。終於有一個 Java 包可以放心使用了。

  比較讓我們哭笑不得是,在兩個版本的前十名 bug 中,java/javadoc 和 java/compiler 都出現了。這個怎麼說呢,實在是很不應該。java/javadoc 有 bug 好像對於國內的 Java 軟體開發來說沒有太大的影響,因為重視使用 javadoc 的並不多。至於 java/compiler ,因為 Java 編譯器是 C 寫的,大概是編譯器很難寫吧,所以會難免有些 bug。但是編譯器是基本上每個 Java 程式員都用的,而且 Sun 的 Java compiler 似乎也是所有 Java compiler 中使用者最多的,Sun 需要繼續努力。

  JDK 5.0 中,java/compiler bug 所佔百分比比 JDK 1.4.2 中提高了好幾個名次,很不好的一個趨勢。Sun 現在將 Java 開源,希望有助於提高這一部分的軟體品質。

  以上的 bug 分析,希望對大家有所協助。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.