歡迎您光臨本站 註冊首頁

Java已死?九百萬程序員說不

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
Java沒死,事實上它擁有足夠的能量讓你的應用跑起來.那些對Java吹毛求疵人頻繁地聚焦在一些小眾問題上,總是和其他技術或者語言做些不公平的對比,這些語言並沒有像Java一樣得到廣泛應用及長遠的歷史.

現在的小孩都能學Java,它在Web和企業開發中廣泛被採用,特別是近些年更是有了些讓人驚訝的改善,一些新特性正在籌備中.即使拋開這些最新的特性,Java仍然很酷,應用的廣泛性、JVM平台背後卓越的設計、清晰的語法、擁有豐富的工具和庫文件構成的生態系統.Oracle說有超過 9,000,000 Java 開發者(億萬的應用和設備用戶),所以為什麼我會聽到諸如"Java正在被淘汰中",2007年開始,Java就已經淪為"21世紀的Cobol語言"的言論?

Java平台是工程師的夢想

就是Java平台的存在,HotSpot JVM 是一項非凡的設計,CLR(公共語言運行庫)有了大量的優化,Java應用在性能上甚至可以與C相媲美,當然還有其他可選的虛擬機供可用(如:JRockit,Zing),應你的環境有特殊的需求而定.

再者,多種基於JVM的語言是的這個平台更奇妙,如:Groovy,Jython,JavaFX,Scala,當然還不局限於以上流行的語言. Java現在包含有位元組碼指令:invokedynamic和java.lang.invoke包,是的JVM構建動態語言更簡單,現在已經有超過50中基於JVM的語言.其中最有意思的一個是php.reboot,它的目標是保持php的哲學理念,但是移除了其中一些缺陷,它同樣能在Android中運行.

Java是一門成熟的語言,並不適合"老人"

Java成為被批評,抱怨,詛咒的靶子,我說這門語言還沒死,恰恰相反當有人抱怨Java的時候正是推廣Java時機.人們總會做些奇怪的對比,好像仍然以為Java還是停留在1.4的版本,用記事本編寫、需要EJB2的支持、只能用來寫寫簡單的留言板,然後把這些用來與一個高端框架甚至是CMS來對比.

作為Java程序員,這種對比對我來說沒有任何意義.更為明智的方法對比Java就得理智地選擇競爭對手,看看Java vs PHP、Python 或者Ruby,或者用框架Play 對比 Ruby on Rails,SpringMVC vs Zend Framework,有鑒於此,我覺得Java似乎根本就不適合老人.


Java 冗長嗎?當然

人們常說Java太啰嗦了,減緩了運行速度.批評者矛頭通常指向Java的強類型靜態語言特性,缺乏前沿技術在語言中,然而,我認為他們是經過深思熟慮的,這正是Java良好的特性.動態語言在啟動一個小項目時開始會覺得很受歡迎,但是可以考慮一下,在時髦框架及合適的工具(如:考慮用IDE代替記事本)下創建一個"Hello 留言板"類型的應用,Java很簡單,只是10分鐘的事情,如果你想做個試驗的話,使用Spring Roo 再準備一個秒錶,如果有需要的話.現在就可以開始繁瑣的CRUD了.



想象一下,你正為移動運營商搭建一個系統,運行客戶登陸網站,你不得不在後台調用各種子系統收集大量的數據,Cool框架通常分解你的程序模塊而不需要匹配任何用戶模型.要更多的了解建議你看看Joel Spolsky發表的一篇文章.


Java是一門強類型靜態語言

強類型靜態語言有很多好處,我喜歡它簡單的視覺外觀,我可以粗略看一段代碼就知道是做什麼的,它就像是可視化的用英語反饋,語言非常易讀,字母混合成單詞仍然可讀.其它的一些好處是有強大的IDE支持,動態語言在這點一直是弊端,大項目中有強大的IDE和工具支持是無價的.

批判者的觀點在Java在讀文件、轉換xml或迭代集合的時候缺乏表達力,但是你可以總是創建一個方法去處理這些常用的事例,或者是用 FileUtils.readLines(),java語言上表達力的缺點有很多庫對其支持.在Java7中能看到一些優雅的加強型功能,如自動關閉資源、siwtch語句支持String、數字類型支持下劃線(強烈建議讀Coin 項目).Java8承諾了更多的東西(最有意思的應該是閉包).Java是不是在任何方面都是那麼的完美無缺呢?當然不是,這就是Java8、Java9 在準備階段的原因.我個人也不喜歡那些不太優雅的核心API.是否的確將更多的事情留給平台而不是語言本身?java核心包括API進階設計跨度長達20 年,API的更新會破壞向後兼容性,有些設計太抽象,但有些還不夠抽象,有些太零碎,有些根本不可思議.看看其競爭對手.NET,核心API做的很好,比如統一的通信API.Java8在Jigsaw項目的幫助下,會有所改變.

所以你值得擁有Java,正確地使用它,它是一門很棒的語言.堪比Klingon語言,它將繼續改善並不會很快消失.不應把努力放在取代Java上,而是和其他JVM語言結合使用,這是最明智的,但是對我的下一個Pet Clinic 還是堅持使用Java.


[火星人 ] Java已死?九百萬程序員說不已經有444次圍觀

http://coctec.com/docs/java/show-post-59822.html