Java是新的COBOL嗎?

fmms 13年前發布 | 14K 次閱讀 Java

導讀:COBOL(Common Business Oriented Langauge)是面向商業的通用語言,又稱為企業管理語言、數據處理語言等,是最早的高級編程語言之一,是世界上第一個商用語言。前段時間網絡上就 Java 是不是 COBOL 進行了一番熱議,公說公有理,婆說婆有理。究竟孰對孰錯?本文對此進行了一番分析。

文章內容如下:

如果你用 Google 搜索“Java is the new COBOL”你會發現有很多結果,對 Java 的誤解進行反駁,我相信這一想法大多數是從 Ruby 社區提出的,Ruby 從開發人員的角度來分析,認為 Java 太依賴開發工具,不需要打開一個文本編輯器就可開始編程。另一方面,Java 有很多類型,它是一種靜態類型的語言,使開發人員工作起來繁瑣,這就是為什么 Java 開發者認為 IDE 是如此重要。

Java is the new COBOL?

當不少 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;

  }</pre> 

</blockquote>

類型推斷:

  Map> peopleByDept = newHashMap>();

變成:

  Map> peopleByDept = newHashMap<>();

在 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!");

  }

  }</pre> </blockquote>

而 Lambdas 則可以表達成:

button.onClick (e => out.println ("I was clicked!"));

企業使用 Java

那么企業還在用 Java 嗎?當然,Apple, 推ter, LinkedIn, SquareSpace 都在使用,還有很多公司直接的或者間接的通過 JRuby Jython Scala 或 Clojure 這些基于 JVM 的新語言來拓展 Java 的開源生態系統。

綜上所述,Java 沒有停滯,正在越來越好,如果你說 Java 是新的 Cobol,就如同說 Ruby 是新的 Java 一樣錯誤。

英文出自:tataryn.net

      來自: CSDN

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!