星期一, 1月 07, 2008

Java即將變成另一個COBOL了?

不要人云亦云。

先照順序看:
Java is becoming the new Cobol
Java會步上 COBOL 的後塵嗎?
關於”Java即將變成另一個COBOL”這篇文章
版本控制,版本升級是不是個問題?
回應”版本控制,版本升級是不是個問題?”
Java , COBOL 以及版本控制

因為不是高手,而且以前用Java,現在用.Net,所以才可以客觀地以一個dummy的角度看待Java。基本上我的看法和Q大濕差不多啦。
  1. 使用Java差不多有十年,雖然不是一直在用,但是JDK 1.0寫的程式到現在也沒什麼大問題。GUI程式編譯確實會不相容,但以前編譯出來的class確能在新版JVM跑。"Write Once, Run Anywhere." 指的就是binary的相容,而不是source code相容。
  2. 就算是Perl/PHP,舊版相容性都不夠好,更別提.Net了。.Net的Binary向前相容性不算好,Source code就更差。.Net 3.5是基於.Net 2.0,所以根本不能算向前容性,只能說是Library的擴充。
  3. Servlet Container有時候會用一些undocumented api,像com.sun開頭的那些,所以JDK更版時常會有問題,確實會在更版時造成困擾。
  4. EJB是基於Java的一個framework,但不能代表Java。.Net上也有很多人開發一些framework最後無疾而終。以前太無聊學Struts,買了本1.0的書,結果1.1不太一樣,2.0差更多,但這也不是Java的問題呀!不信的人請從asp.net 1.0玩到3.5看看...
據在平均50分的資管系任教的學弟(他也是非本科系,Civil的Ph.D)表示,他們學校做專題也開始改用.Net,因為企業都在用,而且容易上手。
這是Sun一開始對UI處理方向的問題,而不是Java的錯。現在NetBeans也算是很容易開發,我感覺用jsf和asp.net也沒有差很多。別忘了Java有成堆的library,也有成熟的runtime;mono基本上還沒有成熟到能與jdk拼的程度。(mono真的很成熟時,微軟也會煩惱Windows Server賣不出去)

至於ROR Framework,在我不專業的眼光看來,由於activerecord、scaffold等神奇的功能加上Ruby魔幻的語法,可以用很短的code寫出相同的程式。但在下這種笨蛋就是學不會複雜的語法,所以嘸蝦米輸入法、Ruby、Groovy都覺得太複雜,所以看了幾本書都沒辦法真正學會C++呀!

由於OpenSource社群的活躍,我相信Java絕對不會掛點或奱成小眾語言(COBOL、SmallTalk等)。XDite也有指出ROR的快速開發也不是我們這種笨蛋能輕易學會,要熟悉ROR的framework要花不少的心力,還有靈巧的Ruby語言。不管什麼程式語言都會有一段熟悉期,到大改版時陣痛是免不了的啦!所以老板想用Asp.Net就給他Asp.Net,要PHP就給他PHP,若能自己決定時就看你自己爽啦XD

Update:Q大又追加一篇 ”版本控制,版本升級是不是個問題?”後記

沒有留言: