熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

C#與C++誰更強?還是關公戰秦瓊

2013-11-13 10:09:33  來源: .NET編程 

  我一直不明白C++真的比C#強大嗎?望高手指點

  困惑為什麼飛信之前的版本用NET做的感覺不是很好用最終放棄了NET而使用C++重寫了

  感覺重寫之後的版本好一點難道是他們的技術不好?還是C++真的比C#強大嗎?

  困惑為什麼QQ一直使用C++開發(雖然QQ開發的時候C++還是最主流的C#還不是那麼流行

  )但是概念版QQ只是使用了WPF的技術實現了其界面但是內核還是C++現在C#已經流行起來了啊!

  為什麼不出現完全C#的QQ 呢?還是C++真的比C#強大嗎?

  討論開始後有技術人員表示這個要看具體需求其實這裡不太存在效率的問題現在的計算機效率已經不成問題了

  如果效率有問題MSN怎麼跑的?有人說所以MSN很慢?

  MSN慢是因為MSN的服務器在美國而不是因為用了NET編寫的才慢的就樓主所說的飛信QQ(還不止飛信和QQ還有很多)

  這種軟件一般都是使用C或者C++開發為什麼不用NET呢?

  這個就牽涉到一個用戶群的問題

  飛信QQ這種是即時通訊軟件他的用戶群非常廣泛那麼也就碰上一個問題如果你在安裝飛信QQ的時候他先提示你去安裝一個NET framework

  你是不是要暈掉?

  就算你知道這個是什麼?但是你不能保證所有的老百姓都知道NET framework啊

  那麼你可能要問直接把NET Framework打包到飛信或者QQ中?!別天真了NET Framework太大了就算真的打包進去是不是都要下載半天?

  那麼用戶體驗就很差了!還有就是牽涉到跨平台的問題用C或者C++基本上不存在跨平台的問題你用NET呢?LinuxMAC OS上怎麼辦?

  你不能讓你的用戶為了用一下飛信或者QQ全部先換OS吧?所以一般官方的版本都是使用C或者C++寫的

  那麼開源的版本嗎這個就是隨便了你愛用不用!至於MSN那是微軟的策略所以他就是用NET寫成的而且官方的MSN只支持window

  (不知道是否已經出了官方別的平台的版本?)  一般情況下你要在Linux或者MAC OS上只能用開源的MSN客戶端!

  CTO編輯注意到上面這位技術人員的觀點是從操作系統的角度來談也就是不同系統對不同開發工具的適應程度

  特別是NET Framework如何運行在Linux這樣的開源系統中的問題

  對於飛信用C++重寫的問題有人表示了不同的觀點新版飛信一如既往是NET的也不知道從哪裡傳出說是C++重寫的其實根本沒有

  QQ的話不得不考慮組件重用的問題原本用的好好的核心沒必要換不是嗎

  總體來說NET運行效率應該比不上原生代碼的但是性能的差距肯定不會太懸殊畢竟虛擬機可以針對硬件平台優化代碼原生程序則很難做到

  NET難以保證代碼的安全確實是個問題但是使用各種手段增加破解難度也是可行的 畢竟就算是原生程序對於代碼的安全也不能%確保
這樣的觀點是支持NET廣泛使用性的不過也認為一套已經成熟的開發手段沒必要做平台的調整

  C#比C++多了一層中間語言Common Intermediate Language在運行的時候生成計算機的語言再去運行 和C++直接生成計算機語言相比效率更差

  最早的時候計算機編程是用打洞的字條進行輸入的那個字條就相當於最後C++編譯好的計算機認識的程序

  NET強大在於開發效率易於維護(誰讓C++這麼多的宏啊常量啥的)NET並不慢第一次加載可能會因為要加載runtime需要更長的時間

  一般的指令執行可能比C/C++慢百分之幾十而已

  是同一個數量級的如果說NET寫的程序慢的不能忍受那麼絕對不是NET的問題不過NET程序更占內存這個我同意誰讓要加載虛擬機呢

  誰讓類型帶了這麼多元數據呢 這一點恐怕所有虛擬機語言都好不到哪裡去

  有技術人員提出這個問題主要是權衡吧托管的封裝好的代碼必然會給程序員帶來很大的幫助想想當年程序員們為內存洩露而打飛干戈的年代吧

  C++是很好就好比給你一把玄鐵想打造什麼樣的銳利武器你自己打造把但是打造不好可怪不得C++而C#呢給你一半鋒利的劍你去厮殺吧
  但是隨便你武力再好遇到一個比你鋒利的劍你就要認倒霉

  封裝給我們帶來巨大的好處物以類分這符合每個人的習慣而C和C++呢萬物來自核心從核心出發吧這符合那些造物者的思維!

  所以很多東西的核心是C++而至於界面或者快速開發那還是需要時間的而造物者卻很稀缺如果所有的事情都讓造物者來完成時代就要倒退了

  考慮到效率問題我覺得正如上面某樓說的科學計算或者仿真等方面不用太憂慮其實讓我們機子卡的程序還真不多!


From:http://tw.wingwit.com/Article/program/net/201311/12744.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.