使用 Visual Studio 開發的情況下 C# 的編程效率能否和 Python、Ruby 媲美?
來源:互聯網
上載者:User
回複內容:
C#大多數東西可以用linq寫,這個時候和python差不多
但有些東西比如類的定義之類跑不了,這個是先天特性。有時候這是好事,有時候這是壞事,看你幹什麼用。
最後一點是你自己用什麼東西熟練。用的熟練的永遠比不熟練的舒服。
沒有最好,只有適用。評論的,都帶嚴重的個人感情色彩。話說回來,如果開發大型系統,就不用比了,而開發指令碼,那也不用比了。理解了,就不會提這個問題了。這種問題問的,從問題就能看出結論來,
c# 是一種程式設計語言,它運行效率並不差!(可以說不比任何語言差)。
那為什麼通常我們還是認為c#效率不好呢,那是指平台,啟動階段,記憶體管理,聯合起來說的。當然,總體來說,都是因為 .net framework 這個平台的拖累。
c#沒有被編譯到目標語言,而是編譯到中繼語言,在具體環境上執行的時候,才被即時編譯到目標語言。這就導致 c# 程式啟動的時候吃力。還得給運行環境上裝 。net framework。
.net 的記憶體管理,被託付給平台負責。這就導致 .net 程式員,基本上沒有對記憶體管理的幹預,基本上 .net 程式耗費資源多,記憶體佔用更大。依賴於 gc 發現和回收,gc 的運作也是犧牲了運行時效率。
c# 之所以被人說不好,主要就是它的所在平台的拖累。這個平台打個比方,c#就是被放在一個柴油機車的火車上。品質和慣性太大,啟動的時候相當費勁。需要吭哧別賭的花很久,但是火車一旦跑起來了(這時候編譯也完成了,記憶體也足夠用,也不需要主動釋放,就隨隨便便的放在那),剩下的就沒有人能阻礙它的速度了,和汽車就一樣快了。
c++就好比一輛法拉利跑車,品質小,慣性小,馬力大,沒什麼平台拖累,跑跑停停那是輕鬆的。同樣的程式,C# 的僅比 Python 和 Ruby 的行數多 1/4 左右,基本上就是大括弧佔據的行數。實踐經驗證明 C# 的生產率跟 Python/Ruby 相當具備可比性。當然,如果是有些特別適合利用動態語言特性優勢開發的程式就是例外了。
如果你是 Vim 愛用者,那麼 Visual Studio 裝上 VsVim 外掛程式以後將極大提高編輯效率,VsVim 是比較完善的外掛程式,連 ciw 這種進階命令都支援。
最後說一句關於 Linux 的問題,.NET 程式通過 Mono 也可以很好的運行在 Linux 上面。雖然 Mono 的 WCF 之類支援不大好,但是,但是 WCF 也不見得是多出色的東西,ServiceStack 我覺得是更好的解決方案。編程效率是語言能影響得了的麼。。
是有一部分語言比較拖遝需要打很長時間的代碼才能寫出目標程式來。
但是大多數時候編程效率都不是語言類型決定的而是架構設計、演算法、資料結構構建決定的。
我就不信大型程式你想的還能比寫得還快嗎?
所以編程效率的瓶頸根本就不是語言或者IDE,而是自身的姿勢水平啊親!如果不把學習的代價算進去的話,我很想說熟悉函數式編程和.net的人用VS寫F#的程式要比python和ruby強多了啊visual studio 如此強大的IDE,寫啥語言效率都高
c# 如此強大的語言,用啥寫,效率都不低C#各個方面都比Python、Ruby好一個層級我個人認為效率是相對,這要看個人對工具使用和語言的熟練和熟知程度,還要看所選語言的特性對將要解決的問題是否合適.變數很多...用合適的工具做恰當的事。
也許有一些語言可以在不依賴任何工具的情況下高效的做任何事,比如python ruby等等。但是對於c# 或者java這類靜態先行編譯的語言,在有IDE的情形下,一定會比拋棄IDE使用文字編輯器要高效的多。IDE不只是一個編輯器,它是多種開發流程的整合,一站式服務,不是文字編輯器所能比擬的,包括VIM等高擴充的文字編輯器。