英文原文:Java is not the new COBOL
导读:COBOL(Common Business Oriented Langauge)是面向商业的通用语言,又称为企业管理语言、数据处理语言等,是最早的高级编程语言之一,是世界上第一个商用语言。前段时间网络上就 Java 是不是 COBOL 进行了一番热议,公说公有理,婆说婆有理。究竟孰对孰错?本文对此进行了一番分析。
文章内容如下:
如果你用 Google 搜索“Java is the new COBOL”你会发现有很多结果,对 Java 的误解进行反驳,我相信这一想法大多数是从 Ruby 社区提出的,Ruby 从开发人员的角度来分析,认为 Java 太依赖开发工具,不需要打开一个文本编辑器就可开始编程。另一方面,Java 有很多类型,它是一种静态类型的语言,使开发人员工作起来繁琐,这就是为什么 Java 开发者认为 IDE 是如此重要。
当不少 Java 开发者迁移到 Ruby 后,好像 Java 停滞了,不管是谁写了 Swing 应用程序都能提示你:匿名内部类使你的代码比原有的大5倍。所以,很多人认为 Java 是新的 COBOL,他们有这些共同点:
1. Java 太冗长
2. Java 呆滞
3. 只有大型企业使用它
原文作者详细分析了这些观点:
冗长和呆滞
在 Java 7 和 Java 8 中冗长呆滞已经得到解决,Java 7 解决了冗长的很多问题,而 Java 8 已经将语言推向了一个新的编程范式,面向函数编程。
Java 8 是 Java 的一个转折点,这也表明显示 Oracle 非常重视语言向后兼容性的演绎性发展。
Java 7 地址太冗长
Java 平台首席架构师 Mark Reinhold 说:Java 7 是演进,Java 8 是革命。
在 Coin 项目中 Java 7 借鉴了很多新特性,以下是一些新特性:
switch (lang) {
case "Java" :
out.println ("I like frameworks!");
break;
case "Ruby" :
out.println ("I like Pabst Blue Ribbon!");
break;
case "PHP" :
out.println ("I like WordPress!");
break;
}
类型推断:
Map<String, List<String>> peopleByDept = new HashMap<String, List<String>>();
变成:
Map<String, List<String>> peopleByDept = new HashMap<>();
在 Inspired by Actual Events JavaOne 2011 keynote post 提到了很多 Java 7 新的简化方式。
Java 8 推动语言进步
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
那么企业还在用 Java 吗?当然,Apple, Twitter, LinkedIn, SquareSpace 都在使用,还有很多公司直接的或者间接的通过 JRuby Jython Scala 或 Clojure 这些基于 JVM 的新语言来拓展 Java 的开源生态系统。
综上所述,Java 没有停滞,正在越来越好,如果你说 Java 是新的 Cobol,就如同说 Ruby 是新的 Java 一样错误。
英文出自:tataryn.net
联系客服