好問題!我真的常常被這麼問,尤其是以前用VB6的開發者想要進軍.NET的程式開發就會問這樣的問題,「VB.NET不好嗎?為什麼非要C#不可?」有一大半的原因是他們覺得用被輕視了,因為C#有個”C”而VB.NET有”VB”這個字眼,而聽到一些人說C#比較好,彷彿只要是掛上VB的招牌就一定比較差。
其實這的確沒有什麼好的答案,還記得在很久很久以前的遠古時代有一個被世人所稟棄的爛東西BASIC語言,功能簡易到難以至信的地步,當時的開發人員都笑稱BASIC跟本就是小孩子的玩具(Toy),好吧,跟C語言或是Aassembly比起來BASIC還真的滿像玩具的,但是你知道嗎BASIC還是可以用來做很多有用的事,據我所知目前在船務承攬運送業還是有BASIC的系統存在而且運作良好,哈!看到這裏我知道你一定很驚訝竟然有人用BASIC開發系統,不過這是真的我決對沒有在亂蓋,所以說語言好壞不是用它的功能去評斷的只是你如何去利用語言本身的優點去做出好用的東西,使用者才不會管你是不是用最尖端的技術來完成系統,他們只想要在搜尋列輸入歌名然後就可以聽MP3,或者你的程式能順便幫他清理狗大便而己,另外在2004年時期,
全球VB開發者人數約在八百萬左右,而Java只有四百多萬,很顯然的VB才是真正被多數人接受的好東西,所以VB的開發者們,不管別人怎麼說,至少還有八百多萬人跟你們一樣做出了最適合自已的選擇。
「等等,既然VB(VB.NET)那麼好為什麼還要用C#?」
就如同我前面有講的這的確沒有什麼好的答案,對我而言答案很簡單,原因是我只會C#,其它的C、C++、VB、VB.NET及JAVA都不算熟悉,至少還不夠能寫出好的程式,如果你已經決定要投入微軟.NET的陣營但是實在不知道該花時間去學習哪個語言的話我還是建議你選擇C#吧。
我會做出這種建議的原因如下:
- VB.NET不是VB,所以你就算學VB.NET也沒辦法繼承以往VB開發的經驗,必需要以學習新的東西的方式去看待,否則你反而學不會,因為這兩者真的不一樣,而且觀念天差地遠,別天真的以為你可以一下子就學會怎麼駕駛一台叫作Mazda 3的飛機。
- C#本來就是為了 .NET 而生的語言,老實說我覺的C#的真正名字應該就是「.NET」才對。
- 綜合上述兩點,反正要投入.NET就是要放棄以往學新的東西,那還不如去學原本 .NET中最正宗的C#語言。
- 學習C#後就有比較大的機會再來pure C#網站。(哈)
好了這些都只是我個人建議選擇C#的理由,不一定適用每個人也不是說用VB.NET就會寫出爛程式,如果你還是非要問我C#跟VB.NET哪個好,我當然會說C#比較好,不過那僅僅只是因為我是C#開發者,也許你可以去問問VB.NET的開發者就能找讓你更滿意的答案。