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)