net如今已經很流行成為趕時髦的程序員的首選但是大量剛剛接觸net的程序員的確存在一定的認識誤區這裡先介紹一部分
一net程序再運行一次就會更快
許多人對此的解釋是net程序第一次運行時會被編譯成本地代碼所以再次運行會更快但遺憾的是其實每次運行那些IL都會被翻譯一次不會保留下來所以並不會變快但為什麼有時候真的覺得快了呢?其實所有程序都是這樣這是Windows再為你緩存用過的組件真正需要CPU時間的程序多運行是不會加快速度的
二net程序運行起來一定很慢
由於存在IL被翻譯成本地代碼的過程net程序的確要消耗一部分時間但是net程序仍然具有很高的效率這一點許多Java虛擬機都比不上這是為什麼呢?因為多數net程序內含的代碼很少幾乎都是調用net Framework中的類庫而這些類庫在net Framework安裝的時候全部編譯成為本機優化的本地碼並保存在程序集緩存裡面有了這個程序集緩存你程序事實上的大部分已經是高效的本地代碼所以當然快了但是如果你進行大量數值計算類的操作還是能夠感到第一次運算的速度明顯下降所以建議大家將計算密集型的程序分離出來編譯成本地代碼並保存在程序集緩存中三連素材以後使用起來就很快了
三C#比VBnet快功能更強大
必須得承認C#編譯器和VBnet編譯器在處理某些細節上確實有些不同導致兩者編譯功能類似的程序效率通常會有差異但對於一個編制完整的項目是不會有任何差別的原因是首先VBnet編譯器並沒有比C#有實質上的缺陷其次大部分代碼都是net Framework類庫中的代碼兩者調用起來沒有差別至於C#比VBnet功能強大這牽扯到心理學問題VB並不比C#差也沒有“語法混亂”“為了兼容而設計”之類傳說中的毛病用VBnet一樣可以寫出出色的結構完美的應用程序而且VBnet也是Visual Studionet唯一的宏語言
這裡面還有一個問題著名的Linux下的net——Mono中是否只支持C#?當然不是用VBnet開發出的程序一樣可以在Mono中正確運行而且最新的Mono將包含Mono Basic語言這樣掌握VBnet語法的人就可以完全在Linux等系統下開發
四微軟只想推廣C#他想放棄VBnet
不要聽信杞人憂天的話微軟無時無刻不在推廣VBnet上用心MSDN上關於net開發的文章用VBnet做例子的比用C#還要多微軟還專門推出VB技術節目——VBTV幫助開發者更好地了解VBnet微軟在列出Visaual Studio中的開發工具時Visual Basic總是排在第一個——這是微軟年來的傳統所以擔心VBnet會被淘汰的人現在該松口氣了
五微軟用net對抗Java所以我也要支持net反對Java
千萬不要有這種想法MS當然想占領Java的市場Sun當然不願意但這不關你的事哪一方贏了你都不會有實質上的好處還是兩個都學吧與其在網上挑起爭論不如多學一個本事你馬上就會看到回報的
好了從下一次開始將著重介紹技術上的誤區祝大家好運
From:http://tw.wingwit.com/Article/program/net/201311/14182.html