C#與C++抉擇【z】

【篇首語】這篇文章對兩種語言的評價我很認同。快速開發用C#比較好。如果考慮效率,C++內核配合C#界面也是我常用的方式。

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

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

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

困惑2:爲什麼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呢?Linux,MAC OS上怎麼辦?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

原帖:http://www.wrsaw.cn/Article/Print.asp?ArticleID=13191

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章