轉蔡學鏞:該學Java或.NET,歡迎大家討論,要對事不對人呵
原文連結
該學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是一個非常有潛力的技術,值得投入。
該學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是一個非常有潛力的技術,值得投入。
相關文章
- 蔡學鏞:這一題不答(圖靈訪談)圖靈
- 關於DAO的封裝,請板橋幫助,歡迎大家討論封裝
- 【案例討論】災難與拯救 資料安全精彩案例大討論!歡迎大家踴躍參與!
- 在專案中使用設計模式的淺見,歡迎大家討論:)設計模式
- 求一.NET算術演算法.歡迎朋友們都進來討論討論.演算法
- C語言寫的磁碟排程演算法,歡迎大家來討論C語言演算法
- JAVA開原始碼交流QQ群!!歡迎加入並討論!!Java原始碼
- 蔡學鏞專欄:全世界所有程式設計師都會犯的錯誤 (轉)程式設計師
- 自創一個簡單的Web分散式解決方案,歡迎大家討論Web分散式
- 歡迎參與討論POP(Project Oriented Project)Project
- [技術討論]科學基礎的分析和探討對話
- 微信分享,交流學習oracle技術,歡迎大家關注Oracle
- 多層架構的討論,歡迎拍磚架構
- 既然大家如此熱烈討論 AI,那我來問一下,該如何學習 AIAI
- 轉吳軍數學之美對幾種型別的科學從事人員型別
- 你學或不學,Java就在那裡,不離不棄Java
- 關於最近學習的Less預編譯語言的筆記,歡迎大家一起探討~編譯筆記
- 歡迎大家訪問http://www.sf.net/projects/luntbuild/HTTPProjectUI
- 重新顯示 Windows 98 歡迎對話方塊(轉)Windows
- 歡迎學習LinuxLinux
- 儲存過程和分層的討論。。儲存過程與分層難道真的是對立的嗎?歡迎大家來各抒已見儲存過程
- 如何講授和學習《軟體創新設計》課程,歡迎討論,敬請指正
- 學習 Java 你出過哪些錯?歡迎留言Java
- 如何在多個Web專案中共享資訊,歡迎討論Web
- 桌面桌布分享【歡迎大家參與】
- 機器人宣誓要消滅人類:我們該如何應對?機器人
- 遷移學習:該做的和不該做的事遷移學習
- 在大型的很繁忙的DB 上使用NTP Server 自動同步時間危害有多大?歡迎大家討論Server
- 程式猿/媛必備的開發學習資源彙總(不斷新增中,也歡迎大家補充...)
- 【GoLang 那點事】你眼中的異常和錯誤有什麼區別?歡迎留言討論Golang
- 尋求解決之道.歡迎探討!!!
- 孩子要學Python了,別慌,它們或對你有幫助Python
- 寫了個連線池的類,和大家一起探討,歡迎交流
- 成為前端,你不該學的東西,以及不該做的事兒!前端
- HHDESK新功能釋出,歡迎大家使用
- 對容器映象的思考和討論
- 日記8(對外api討論)API
- JAVA新手該不該轉行?Java