Java是新的COBOL嗎?
COBOL(Common Business Oriented Langauge)是面向商業(yè)的通用語(yǔ)言,又稱為企業(yè)管理語(yǔ)言、數(shù)據(jù)處理語(yǔ)言等,是最早的高級(jí)編程語(yǔ)言之一,是世界上***個(gè)商用語(yǔ)言。前端時(shí)間網(wǎng)絡(luò)上就Java是不是COBOL進(jìn)行了一番熱議,公說(shuō)公有理,婆說(shuō)婆有理。究竟孰對(duì)孰錯(cuò)?本文對(duì)此進(jìn)行了一番分析。
文章內(nèi)容如下:
如果你用Google搜索“Java is the new COBOL”你會(huì)發(fā)現(xiàn)有很多結(jié)果,對(duì)Java的誤解進(jìn)行反駁,我相信這一想法大多數(shù)是從Ruby社區(qū)提出的,Ruby從開發(fā)人員的角度來(lái)分析,認(rèn)為Java太依賴開發(fā)工具,不需要打開一個(gè)文本編輯器就可開始編程。另一方面,Java有很多類型,它是一種靜態(tài)類型的語(yǔ)言,使開發(fā)人員工作起來(lái)繁瑣,這就是為什么Java開發(fā)者認(rèn)為IDE是如此重要。
當(dāng)不少Java開發(fā)者遷移到Ruby后,好像Java停滯了,不管是誰(shuí)寫了Swing應(yīng)用程序都能提示你:匿名內(nèi)部類使你的代碼比原有的大5倍。所以,很多人認(rèn)為Java是新的COBOL,他們有這些共同點(diǎn):
1.Java太冗長(zhǎng)
2.Java呆滯
3.只有大型企業(yè)使用它。
原文作者詳細(xì)分析了這些觀點(diǎn):
冗長(zhǎng)和呆滯
在Java 7和Java 8中冗長(zhǎng)呆滯已經(jīng)得到解決,Java 7解決了冗長(zhǎng)的很多問題,而Java 8已經(jīng)將語(yǔ)言推向了一個(gè)新的編程范式,面向函數(shù)編程。
Java 8是Java的一個(gè)轉(zhuǎn)折點(diǎn),這也表明顯示Oracle非常重視語(yǔ)言向后兼容性的演繹性發(fā)展。
Java 7地址太冗長(zhǎng)
Java平臺(tái)***架構(gòu)師Mark Reinhold說(shuō):Java 7是演進(jìn),Java 8是革命。
在Coin項(xiàng)目中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 = newHashMap<String, List<String>>();
變成:
- Map<String, List<String>> peopleByDept = newHashMap<>();
在Inspired by Actual Events JavaOne 2011 keynote post提到了很多Java 7新的簡(jiǎn)化方式。
Java 8推動(dòng)語(yǔ)言進(jìn)步
Java 8則是轉(zhuǎn)向了新的語(yǔ)言,增加兩個(gè)主要特性:
1.Lambdas / Closures
2.A proper module system(aka Jigsaw)
原來(lái)我們用內(nèi)部類實(shí)現(xiàn)類似閉包時(shí),如下:
- Component button = new Button("Click me!");
- button.onClick(new EventHandler() {
- public onEvent(Event e) {
- out.println("I was clicked!");
- }
- }
而Lambdas則可以表達(dá)成:
- button.onClick(e => out.println("I was clicked!"));
企業(yè)使用Java
那么企業(yè)還在用Java嗎?當(dāng)然,Apple, Twitter, LinkedIn, SquareSpace都在使用,還有很多公司直接的或者間接的通過JRuby Jython Scala或Clojure這些基于JVM的新語(yǔ)言來(lái)拓展Java的開源生態(tài)系統(tǒng)。
綜上所述,Java沒有停滯,正在越來(lái)越好,如果你說(shuō)Java是新的Cobol,就如同說(shuō)Ruby是新的Java一樣錯(cuò)誤。
原文:http://sd.csdn.net/a/20111109/307231.html
【編輯推薦】