Java是新的COBOL吗?

fmms 10年前
     <p> 导读:COBOL(Common Business Oriented Langauge)是面向商业的通用语言,又称为企业管理语言、数据处理语言等,是最早的高级编程语言之一,是世界上第一个商用语言。前段时间网络上就 Java 是不是 COBOL 进行了一番热议,公说公有理,婆说婆有理。究竟孰对孰错?本文对此进行了一番分析。</p>    <p> 文章内容如下:</p>    <p> 如果你用 Google 搜索“Java is the new COBOL”你会发现有很多结果,对 Java 的误解进行反驳,我相信这一想法大多数是从 Ruby 社区提出的,Ruby 从开发人员的角度来分析,认为 Java 太依赖开发工具,不需要打开一个文本编辑器就可开始编程。另一方面,Java 有很多类型,它是一种静态类型的语言,使开发人员工作起来繁琐,这就是为什么 Java 开发者认为 IDE 是如此重要。</p>    <p style="text-align:center;"><a><img title="Java is the new COBOL?" border="0" alt="Java is the new COBOL?" src="https://simg.open-open.com/show/e22dd739490975b1eda919e8d0b72c3f.jpg" width="202" height="300" /></a></p>    <p> 当不少 Java 开发者迁移到 Ruby 后,好像 Java 停滞了,不管是谁写了 Swing 应用程序都能提示你:匿名内部类使你的代码比原有的大5倍。所以,很多人认为 Java 是新的 COBOL,他们有这些共同点:</p>    <p> 1. Java 太冗长</p>    <p> 2. Java 呆滞</p>    <p> 3. 只有大型企业使用它。</p>    <p> 原文作者详细分析了这些观点:</p>    <p> <strong>冗长和呆滞</strong></p>    <p> 在 Java 7 和 Java 8 中冗长呆滞已经得到解决,Java 7 解决了冗长的很多问题,而 Java 8 已经将语言推向了一个新的编程范式,面向函数编程。</p>    <p> Java 8 是 Java 的一个转折点,这也表明显示 Oracle 非常重视语言向后兼容性的演绎性发展。</p>    <p> <strong>Java 7 地址太冗长</strong></p>    <p> Java 平台首席架构师 Mark Reinhold 说:Java 7 是演进,Java 8 是革命。</p>    <p> 在 Coin 项目中 Java 7 借鉴了很多新特性,以下是一些新特性:</p>    <blockquote>     <pre class="brush:java; toolbar: true; auto-links: false;">       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;          }</pre>    </blockquote>    <p> 类型推断:</p>    <blockquote>     <p>  <code>Map> peopleByDept = newHashMap>();</code></p>    </blockquote>    <p> 变成:</p>    <blockquote>     <p>  <code>Map> peopleByDept = newHashMap<>();</code></p>    </blockquote>    <p> 在 Inspired by Actual Events JavaOne 2011 keynote post 提到了很多 Java 7 新的简化方式。</p>    <p> <strong>Java 8 推动语言进步</strong></p>    <p> Java 8 则是转向了新的语言,增加两个主要特性:</p>    <p> 1. Lambdas / Closures</p>    <p> 2. A proper module system(aka Jigsaw)</p>    <p> 原来我们用内部类实现类似闭包时,如下:</p>    <blockquote>     <pre class="brush:java; toolbar: true; auto-links: false;">   Component button = new Button ("Click me!");      button.onClick (new EventHandler () {      public onEvent (Event e) {      out.println ("I was clicked!");      }      }</pre>    </blockquote>    <p> 而 Lambdas 则可以表达成:</p>    <blockquote>     <p> <code>button.onClick (e => out.println (</code><code>"I was clicked!"</code><code>));</code></p>    </blockquote>    <p> <strong>企业使用 Java</strong></p>    <p> 那么企业还在用 Java 吗?当然,Apple, 推ter, LinkedIn, SquareSpace 都在使用,还有很多公司直接的或者间接的通过 JRuby Jython Scala 或 Clojure 这些基于 JVM 的新语言来拓展 Java 的开源生态系统。</p>    <p> 综上所述,Java 没有停滞,正在越来越好,如果你说 Java 是新的 Cobol,就如同说 Ruby 是新的 Java 一样错误。</p>    <p> 英文出自:<a href="/misc/goto?guid=4958198744726938991" rel="nofollow" target="_blank">tataryn.net</a></p>    <div id="come_from">           来自:     <a id="link_source2" href="/misc/goto?guid=4958198745458344986" target="_blank">CSDN</a>    </div>