Java不是新的Cobol

Java is not the new COBOL对很多Java误解进行了反驳,特别是在google里搜索“Java is the new COBOL” 可以看到很多结果,作者认为这一提法大多数是从Ruby社区提出的,他们认为Java太依赖开发工具,不能打开一个文本编辑器就能开始编程。当不少Java开发者迁移到Ruby后,好像Java停滞了,很多人认为Java是新的COBOL有下面这些共同点:

1.Java太细节了,太罗嗦了;
2.Java呆滞
3.只有大型企业使用它。

作者详细分析了这些观点:
在Java7和Java8中冗长呆滞已经得到解决,而Java8已经将语言推向了一个新的编程范式,面向函数编程Functional Programming

Java8真正是Java的转折点,显示Oracle非常重视语言向后兼容性的演绎性发展。

Java平台首席架构师Mark Reinhold说:Java 7是演进;Java8是革命。

Inspired by Actual Events JavaOne 2011 keynote post提到了很多Java 7新的简化方式,java 7很多是借鉴了Coin项目

而Java 8则是转向了新的语言,增加两个主要特性:
1.Lambdas / Closures
2.A proper module system (aka Jigsaw)

原来我们用内部类实现类似闭包时,如下:
Component button = new Button("Click me!");
button.onClick(new EventHandler() {
public onEvent(Event e) {
out.println("I was clicked!");
}
}
而是要Lambdas则可以如下类似:
button.onClick(e => out.println("I was clicked!"));

那么企业还在用Java吗? Apple, Twitter, LinkedIn, SquareSpace 都是,还有大量通过JRuby Jython Scala或Clojure这些基于JVM的新语言来拓展Java的生态系统。

作者最后总结到:Java没有停滞,正在越来越好,如果你说Java是新的Cobol,就如同说Ruby是新的Java一样错误。

Ruby is beautiful (but I’m moving to Python) Ruby是美丽的,但是我已经转向python