Friday, June 19, 2009 - 文章

【閒聊】大家選擇的是C#或VB.NET呢?

一時興起想到的題目。

開發.NET程式,C#與VB.NET幾乎具有完全相同的能力,微軟的官方想法本來也就是蘿蔔青菜各有所好,把使用語言的決定權交給開發人員決定。

我在學.NET前寫過好幾年的VB及ASP,因此一開始入門是從VB.NET開始的,但只玩了一兩個月後就改走C#(雖然微軟在推出C#/VB.NET時的說法,C#適合有C/Java背景的人,我兩個都沒有),一直到現在。

我個人偏好C#的理由是: (純個人意見,非關語言優劣)

  1. 用字比較精簡,{ } vs Begin End、繼承、實作介面C#只用一個:就打死,而VB.NET則是用保留字。程式一長,當場省下好多文字。
  2. 語法區隔性比較強。像C#陣列用[],函數用(),等於比輸用==;而VB.NET陣列與函數都用(),指定與比較都用=。
  3. 排列自由,可以任意空白、換行,把程式碼調成自己想要呈現的方式,易於閱讀。
    例如:
    if (
         a == b || //Blah blah
         c == d || //Blu Blu
         e == f     //Kero Kero
        )
    { … }
    VB.NET也可以,但要多加_,比較繁瑣。
  4. C#裡有@"..."可以用,程式要內嵌SQL或Javascript時很方便:
    string sql = @"
    SELECT *
    FROM WTFTable
    WHERE Col1 = ‘kerokerokero’”;
  5. 與Javascript的語法較相近,不必同時熟悉兩套不同的語言(年紀大了腦容量變小),寫Web時可以減少大腦Context Switch的功夫(呵)。不過,還是常常不小心把二者搞混,在Javascript中打成foreach (var p in q)或for (int i = 0; …)。
  6. 網路找到的進階範例程式,C#的比例比VB.NET高。以CodeProject做個不嚴謹的例子,比一下文章的發表頻率便知: C#VB.NET(看下方Last 10 Updates的發表日期)。
  7. 當初還有個天真的想法,C#跟Java比較接近,"萬一"(呃... 只是萬一而已)必須轉到Java時,可以比較快接軌。(不過現在看來,這個萬一發生的機率跟中樂透頭彩差不多)

但C#還是有吃癟的場合:

  1. VB.NET在.NET 3.0裡對XML表示有額外的支援: 如直接內嵌XML(XML Literals)、Default Namespace
  2. VB.NET支援Named Parameter及預設參數值,例如: word.Documents.Open( FileName:=file_title, ConfirmConversions:=False, ReadOnly:=False ),若用C#寫,十幾個參數得全部列出來。
  3. 有些應用程式只支援VB.NET,例如: Reporting Service的Embedded Code。

大家都慣用哪一種語言呢?

Posted 19 June 2009 10:01 AMJeffrey | 35 comment(s)
Filed under:

搜尋

Go

<June 2009>
SunMonTueWedThuFriSat
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011
 
RSS
【工商服務】
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


BlogLook Score and Rank

Syndication