程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 閉包能讓JAVA語言變得簡潔嗎?

閉包能讓JAVA語言變得簡潔嗎?

編輯:關於JAVA

眾所周知,JAVA語言一直因其語法上的簡潔優雅(Java1.5中泛型的引入或多或少改變了這點)而被大部分人所喜愛.

但另一方面,語法上的簡潔也造成了使用上的一些不方便.譬如,你只想實現往控制台輸出一個"Hello,world",你也得老老實實先寫一個class,然後再寫一個public static void main(String[] args)方法,最後才是System.out.println("Hello,world");

而如果使用Python之類的語言,可能只需一行代碼就搞定了.

當然,上面這個例子看起來不是那麼有說服力.

不過如果你做過GUI開發的話,你就會感受到"Everything is an object"所帶來的不便之處了.為了監聽GUI事件並做出相應的反應,你會大量用到匿名類(而實際上你的目的只是要傳入一個回調方法而已),這樣不僅做了一些額外不必要的工作,也給代碼的可讀性造成一定影響.

譬如這類的問題還有很多,Stevey寫過一篇文章:名詞的王國(Execution in the Kingdom of Nouns),用形象生動的語言描敘了為什麼使用JAVA會讓某些工作變得的啰嗦.他的觀點是由於Java中的"everything is an object",在某些時候限制了我們用清晰而合理的表達方式來表述我們的思想.

在JAVA誕生以來,語法上最大的變動可能就是在JAVA 1.5中泛型的引入了.而且隨著JAVA的開源,以後可能會有更多的元素被引入到JAVA語言裡面來(官方的或非官方的).目前正在進行中的JDK7就有可能增加一些新的語言特性(見javapolis舉行的關於JAVA7語言特性投票的結果),其中最重大的改變莫過於閉包的引入了.毫無疑問,這些語言特性的引入都是為了讓我們這些Javaer活的更輕松一些.

那麼,閉包能改善目前Java語言所存在不足嗎?就是說閉包能夠讓我們寫出簡單而易讀的代碼嗎?要知道閉包並不是一個面向對象的東東.

Bruce Eckel在他的文章Will Closures Make Java Less Verbose裡討論了這個問題.並且在文章的末尾,他提出了一個很大膽的想法Java 3K(其實我也一直這麼想的^_^):

引用

我們知道Python有個Python 3000計劃,這個Python 3000相對之前的Python有大幅度的修改,並且不兼容之前的Python語法,這樣可以完全擺脫因考慮向後兼容性而帶來的不必要的負擔.那麼我們為什麼也搞個JAVA 3000呢?它與之前的JAVA有著類似的語法,並且也能運行在JVM上,但語法上與原有JAVA語言不兼容.在JAVA 3K裡面我們可以有真正的泛型,閉包,並且可以丟棄掉int那些基本類型.對於那些想繼續使用原有JAVA的人來說繼續用就是了,而程序員想學習新的Java語言也很容易.

你是如何看待這件事情的呢?

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved