言的選擇
導 讀:每個組織遷移到.NET將選擇采用哪種.NET語言。微軟提供了四種語言:C#, VB.Net, 可管理的C++和 JScript。本文簡要的討論了我們關於這些語言和哪種語言將被使用的看法。
原文出處:http://www.dotnetdan.com/articles/misc/LanguageChoice.htm
每個組織遷移到.NET將選擇采用哪種.NET語言。微軟提供了四種語言:C#, VB.Net, 可管理的C++和 JScript。本文簡要的討論了我們關於這些語言和哪種語言將被使用的看法。
簡而言之,我們相信C#將占據主要的市場份額;JScript是沒有競爭力的;C++將被忽視,VB.Net顯現出對市場的准備不足。
失敗者
JScript
我們希望JScript在很少用戶的基礎上結束它的使命。現在很少有關於這方面的資料而且在.Net論壇中也不大有關於JScript的內容。它已經不是主流了。不要在把錢投到這項技術上,放棄它才是最明智的。
可管理的C++
C++,即使它新的可管理的形式也將漸漸的被忽視。當越來越多的開發者趨向於語法清晰的語言,例如JScript, Java, VB.Net和C#, 使用C++ 的圈子越來越小。另一個C++ 面臨的問題是他不能作為一種教學語言。無疑,盡管如此,有經驗的C++開發者將繼續使用它的能力,模板,多重代碼的繼承性和決定性的最終確定。其余的人都能輕松的應付。
勝利者們
在這裡確切的說應該是勝利者。因為我們相信C# 是唯一的真正的勝利者。VB.Net處在尚無人支持的境地。
C#具有相當的優勢
大多數專業的軟件開發者,即使獨立開發微軟平台,如今也將采用一些Java語言中的形式。
Java相對於C++和VB6較有利。他去處了許多C++ 中的語法特性而沒有絲毫降低它的功能(因此C++的開發者轉向使用Java是非常容易的)。它在支持面向對象的工具方面要優於VB6。
Java以其清晰的面向對象的語法結構和巨大的類庫在大多數主流的具有生產性的語言中占據了最高地位。正是由於這個原因,許多擅長面向對象技術的C++ 和 VB 開發者開始向Java轉移。
C# 為那些原本不支持微軟的人轉向使用微軟的開發工具提供了依據。實際上它和Java是一致的,只不過在它們的不同之處,C# 更顯示出了它無可厚非的優越性。此外,它是一種ECMA標准的語言,因此它提供了跨越多平台的潛在能力。
嚴肅的講,開發者想要微軟的最有生產能力和主流的.Net語言,C# 是最明智的選擇。
VB.Net孤立無助
還剩下VB.NET。我們仍舊對微軟為什麼僅僅使VB.Net成為一個更復雜的C# 而提出疑問。也許這兩門語言的歷史背景是知道這個轉變的關鍵,但是我們要討論的是技術方面的問題而不是市場的問題。
無疑,VB.NET已經成長到一個新的階段。它現在已經成為了面向對象俱樂部中快速成長的一員。但是現在誰關心它呢?也許是一群對其不滿的人和非面向對象的程序員,但他們將立刻得到它。隨著C#的產生,VB.Net看上去更象是個過時的產品,而不是改進。
DecHand代碼生成器能在VB.NET或C#中生成代碼。如果你選擇VB.NET選項,你會得到一個文件,它和C#實現同樣功能,但卻要比C#生成的文件大33% 左右。讀某人用VB.NET編寫的的代碼時,冗長的語句會帶來很多麻煩。當我們把這和前面所提到的原因結合起來時,我們只能希望有經驗的面向對象的開發者應該喜歡C# 勝過VB.Net。
那麼什麼樣的市場會丟掉VB.NET呢? 目前的市場卻使軟件公司僅使用VB來作為開發工具,並造就了一大批VB愛好者.不幸的是,說實在話VB.Net並不是為這些人所開發的。
從VB6移植
只用VB編寫程序的工作間可能正期望從VB6更新到VB.NET,而且能象現有的VB升級一樣容易。不幸的是,他們可能會遭到嚴酷的打擊。盡管已經有一種工具可以自動完成操作過程,但升級到VB.Net仍然會累人的多。
正如我們上面提到的,VB.NET是一種面向對象的語言,而VB6不是。問題在於,如果你不按照面向對象的方式思考,而許多機構也正是這樣做的,你就無法體會到VB.NET轉換經歷的樂趣。因為這不僅僅是一個結構,而是一種范例的轉變,而這種轉變是很昂貴的。很多組織可能會覺得如果他們想改變思維方式,他們不如改變語言。如果VB.Net被很快淘汰掉,也沒什麼可驚訝的。
過去曾經輝煌而如今孤寂的愛好者
最終的市場分割造就了愛好者。對他們而言,VB6是一種可選擇的語言。它提供了簡單而功能強大的工具來構建簡單的應用程序包括GUIs。
VB.Net不是這麼簡單的。正像我們前面說過的那樣,它是一種功能強大的面向對象的語言。但對於一般的愛好者來說,他們不想也不需要了解‘-isms’和面向對象領域中的抽象事務。他們只想把一項任務盡快完成,而忽略我們某些專業人士所要求的精細之處。