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