沒有什麼語言能比C++更加貼近Windows自己了,這一點也是不能否認的。若是哪一天C#也能寫驅動的時候,那麼C++就真的會淘汰了(這天可能不會太遠又或者很遙遠)。 C#能作的,C++不必定都能作,C++能作的,C#也不必定都好作,因此常常看到有人拿這2個語言對比,我以爲確實沒什麼必要。 C#繁雜的調用Win32 API的方式,確實讓人很不舒服,C++這一點作得比它好。可是,C#強大的網絡操做,代碼量大大地低於C++,咱們拋棄不用Socket,改用WinInet或是MFC中的封裝好的網絡類,好比CHttpFile,仍是沒C#簡單。C#的傻瓜式的類庫操做和麪向對象編程的完美特性,確實讓其成爲了Windows平臺上最受歡迎的語言。也許,是微軟想將Win32 API漸漸地所有封裝到C#的類庫中去,我感受微軟有這個意圖,也許未來C#就不須要調用那些繁雜的Win32 API了,類庫中均有提供也說不定。 咱們爲何學VC?這點我曾經也問過本身。聖經上說:你必須知道真相,真相會使你自由。咱們學VC是爲了自由,不受微軟的框制。微軟經過種種的FrameWork讓你陷於其中,你以爲,哇,原來編程是這麼容易啊,幾句話就能搞定。你想知道微軟在內部幹了些什麼呢?你不知道,固然,你若是認爲你不必知道,這個我徹底贊同,我後面會說。就說殺進程吧,C#中不經過Win32 API就那麼一種方式,經過System.Diagnostics.Process找到進程,而後Kill之(若是我說的不對,使用C#的朋友請指正),而C++中,咱們徹底有無數種選擇,就說不邪惡的,TerminateProcess,邪惡點的呢?不可勝數。進程內存填0,卸載模塊,消息洪水,句柄強制關閉,強制釋放它的堆,太多太多了,甚至我注入進去,內部Raise一個異常,它也就掛掉了。保護進程, 無論內核下仍是應用層,C#確定是作不了的,C++有本身高端的地方,其餘語言沒法涉足。你見過C#作的殺毒軟件嗎? C#,極其簡易的界面操做,使人看着很舒服的編碼,他有太多的地方,C++根本沒法涉足。拿C++作Web Services除非是大腦進水,用C++作網絡蜘蛛,也根本是無聊之舉,要麼就C#,要麼就拿Python來幹(我的漏見),超級大量的數據,拿垃圾回收基本上爲0的C++去作,簡直就是自找麻煩。C#的WebForm,和Jsp佔據着Web的大片江山,C++能嗎?不能。C#是一門博大精深的語言,類庫強大到變態,基本上能夠這麼講,因此用C++的朋友也不能隨便貶低C#程序員,C#的程序員的層次分得比C++多不少,高層的也是象牙塔級別的。C#的架構師,那種恐怖的實力,C++中級程序員是沒法想象的。C#更加註重於軟件工程的應用,各類設計模式的使用,C++則注重於實現功能。 C#的前景是不錯的,我我的很看好它,MSDN 雜誌每期的文章可能有8成是C#,C++不算不少,微軟的重心可能在C#上,但願C#逐漸能取代C++。可是C++會這麼容易被取代?不可能。就像一個搞管理的,你讓他接管搞開發的人,讓他從幹同樣到同時兼幹這二樣,會有這麼簡單麼?c++的生命力至少還要7-8年,以後纔會漸漸的淡出,可是隻要追求自由的人存在,C++就不會消失;只要操做系統一天是用C++寫的,C++就不會消失。 選什麼語言,隨本身高興,須要哪一個用哪一個,這是不矛盾的。開發數據庫,我傾向於用C#,作Windows底層,我確定是C++,都掌握下沒有壞處。VS2010中C++的新特性各位同胞能夠關注下,不知道會加入什麼,VC2008的特性我探索了這麼久,尚未探索結束。C#是愈來愈好用了,Linq to Sql讓不懂數據庫的人都能去操作數據庫了,輔助一些第三方類庫,能發揮強大的威力。徹底取代C++,等操做系統是C#寫的,C#能開發系統中的一切組件的時候再說吧,至少如今C#還不能開發API,驅動吧?