Will Closures Make Java Less Verbose?
March 29, 2008
要是沒看過的話,這裡是他這篇文章的連結。他的觀點是,Java已經太過於追求“到處都是對象(everything is an object)”了,使其在思想表達上不夠簡潔、清晰。他將Ben Franklin詩中的“因小失大(For want of a nail)”巧妙地用到了Java上面,更好地傳達了他的意思。
而我的問題是,如果閉包可以讓你多用一點動詞、少用一點名詞(按照Yegge的思路),那麼程式員會因此建立更易於閱讀的程式嗎?或者說,十多年根深蒂固的文化會讓任何解決該問題的嘗試付之東流嗎?即,無論有了多少額外的語言特性,Java程式還會繼續保持它的原樣嗎?
如果在這個問題上沒有弄清楚的話,之後再怎樣修補也無法挽回Gosling等人早期做出的決定(即認為使Java“打入市場”要比試圖增加泛型和閉包使之更像一種語言要重要得多)。
這是任何軟體系統架構的決定性因素,也是影響系統中所有東西的核心決策。有一些問題你必須做出正確的決策,而其他問題可以晚些時候通過戰略構思來解決。這些決策必須由擁有豐富經驗的架構師來完成,他們知道在做什麼,也會提出很多問題,但這恰恰是他們的職責所在。
Java 3K
在2008年Java非正式研討會(Java Posse Roundup '08)的最後一次技術會議上,我們再一次討論了Java的未來。我們大致得出這樣一個結論,向後相容性起初是為服務一些公司而保留下來的,但不管怎樣這些公司是不會升級到Java最新版本的。
最成功的語言都從已有語言輕鬆轉變過來了,因此程式員的知識仍然不會貶值。C++之所以如此成功就是因為它讓C程式員能夠輕易地過渡過來。Java如此成功同樣也是因為它能從C++過渡過來。
到底應不應該發布一個“Java 3K”呢(學一下Python 3000,Guido Van Rossum為Python可向後相容的修複版本起了這個名字,今年晚些時候會發布)?一個仍在JVM上運行且文法和老版Java相似的新版Java沒有受任何向後相容性問題的羈絆,因此它實現了真正的泛型、閉包且去除了基元(primitives)等等。如果一個公司不想投入到Java 3K的懷抱—這樣的公司也往往沒有升級到Java 5—那麼它便繼續用已有的那些東西。但那些飽受老版Java的舊問題和糟糕的舊決策困擾的程式員們便可以輕鬆地轉移到Java 3K上面了,他們只需一條短小的學習曲線,且對生產力沒有絲毫影響。
你怎麼看呢?
(原文連結網址:http://www.artima.com/weblogs/viewpost.jsp?thread=227728)