轉蔡學鏞:該學Java或.NET,歡迎大家討論,要對事不對人呵

xxsh97發表於2003-11-14
原文連結

該學Java或.NET


翔威國際高階工程師蔡學鏞  06/11/2003


自從.NET問世以來,程式員都很關心的一個問題是“該學Java或.NET”。我也在掙扎,該“該繼續Java的研究,或者該開始準備培養.NET的知識”。當然,最好是能兩者兼顧,但是每個人的時間都很有限,想要兼顧兩者,其實不太容易。投入在.NET的時間越多,所能花費在Java的時間自然就少了,反之亦然。在資訊爆炸的時代,重要的不是資訊的取得,而是資訊的抉擇。資訊太多,時間太少,如果不能慎選適合的技術,只會平白浪費許多時間,斫喪自己的競爭力。

由於我喜新厭舊的個性使然,過去這兩年半,我著實花了不少時間在.NET上,對於.NET的認識越來越深,也修正了對於.NET原先的一些誤解,漸漸的認同.NET的許多技術理念。姑且不論我們對於微軟是褒是貶,單純就技術本身來看,.NET的確是很卓越的。

我並不是唯一一個這樣想的人。以“Thinking in Java”等技術書籍廣受歡迎的Bruce Eckel也是如此。他原本認為C.NET只是Java的模仿者,並無新意,但是在深入瞭解之後,才發現C.NET其實是改良版的Java,不管在各方面,都有比Java更突出之處。當我看到Bruce Eckel說出這樣的話,我感覺他說出了我的心聲。

下面,我試圖從許多不同的角度,簡單地比較Java和.NET。

從技術的觀點

通常新的技術會比舊技術更好,因為新技術可以從舊技術學到優點,且新技術可以摒除舊技術的缺點。NET比Java誕生的時間晚了六年,許多方面都比Java先進,當然是無庸置疑。

我的意思並不是Java這六年停滯不前,事實上,Java一直在進步中,只是有許多縫縫補補、修修改改的地方。例如,XML是在這六年之間出現的技術,所以.NET對於XML的整合可以說是天衣無縫,但Java是後來才把XML整合進來,且整合的程度比不上.NET。

從歷史的觀點

以史為鏡,可以知興替。如果你瞭解近二十年的軟體產業發展史,你會發現微軟挫敗的機會很小,即使是在頭幾場戰役失敗,也會在整場戰爭中獲勝。換句話說,.NET挫敗的機會不大。在Office軟體大戰中,WordPerfect、Ami Pro、Lotus 123如今安在?在作業系統大戰中,OS/2也已經銷聲匿跡。在瀏覽器大戰中,Navigator如今只整剩下小小的疆土。你一定可以舉出更多這樣的例子。

從市調的觀點

分析機構如Meta Group和IDC皆預測,在Windows Server 2003推出之後,未來幾年市佔率會大幅提高。我認為,在longhorn推出之後(2006年?),PC更是會全面.NET化。由於“精通”.NET知識可能需要費時兩三年以上,技術人員應該儘量提早學習.NET以為因應。

三年前(2000年)學習.NET恐怕有點太早,三年後(2006年)學習.NET恐怕有點太晚,而現在學習.NET正是時候,不會太早,也不會太晚。學會之後,可以立刻投入市場對於.NET技術的人力需求。

從行銷的觀點

任何人都不能否定微軟行銷功力的厲害。平面的行銷,包括在電子時報、IT Home等資訊媒體,甚至連商業週刊等非資訊媒體,都看得到相關的廣告。動態的行銷,包括PDC、TechEd.、修練講座、產品發表會…等活動,直接走入人群,接觸客戶。電子的行銷,包括MSDN中英文網站、微軟TechNet Flash新聞信…等,提供技術新知。

另外,還有多得拿不完的教學光碟,讀不完的線上檔案,看不完的Microsoft Press出版品…。我發現,微軟的作法和另一家公司的作法大相逕庭。微軟給我們一堆技術資訊,要什麼有什麼,但另一家公司卻常常把資訊當成“傳家寶”,捨不得釋放出來給大眾,連透過內部管道都還不見得拿得到,“好像很不希望有人學習他們正大力推廣的技術”。

從銷售指標的觀點

關於某個城市的消費者物價指數,麥香堡指標(BigMac Index)是一個很有名也很簡易的評估指標。我也發明了一個類似的指標,稱為天瓏指標(TenLong Index),可以用來評估IT技術的熱門程度。天瓏書局是臺灣最大的IT圖書門市,它的技術書籍銷售量,對於判斷技術的熱門程度,有一定程度的參考價值。

2002年全年和2003年上半年,天瓏書局在.NET書籍的銷售量都不高,但是在2003年下半年之後,.NET書籍已經有相當不錯的表現,這意味著最近準備採用.NET技術的公司已經增加了。

我記得在Java推廣初期,由於大家對於Java認知不夠,所以對於Java有許多FUD存在。現在微軟在推廣.NET上,也遭遇到許多FUD,這是微軟目前必須極力消除的障礙。如果你對於.NET也存有這些FUD,你不妨嘗試著去破除這些FUD,就如同七八年前破除Java的FUD一樣。你將會發現,就目前來說,.NET是一個非常有潛力的技術,值得投入。

相關文章