天天看點

徹底放棄沒落的MFC,對新人的忠告! by FreeWick

完全沒想到10多年後還有人糾結要不要學MFC,我花點時間給新人們一個總結。

第1種觀點 學習完MFC,你會更了解程式設計的思想,再學别的語言就更快了。

話說小白要去美國學技術,大黑勸他說:“你為什麼不先到北韓,然後從北韓再飛到美國”,小白茫然不解。大黑接着說“你想你先到北韓再去美國,不是比從中國直接去美國近嗎?”小白恍然大悟,“并且你到了北韓,那裡有金太陽的照耀,你會更明白技術的思想。後面再學任何技術都很快。”于是小白去了北韓,然後他才知道原來北韓才是最好的地方,他給大黑打了長途電話,大黑問:“你感覺怎麼樣?”小白激動的說“我在學習用小刀刻晶片呢,聽說美國都是動動按鈕,學不到真正的東西。”

有的人要說“你看我就是先學了三年MFC,再學别的語言一樣很快”,是,你要是先學三年JAVA或C#,再學别的語言會更快。你學三年MFC不是去跟零相比,是跟學三年其它語言比。在經濟學上這叫機會成本,曼昆“你在面臨選擇的時候,要考慮的是機會成本”。

第2種觀點 MFC接近于系統的底層,适合系統級的開發,學習他更能了解作業系統。

MFC能直接調用C,别的語言不能直接調用C嗎?那.Net Interop是幹什麼的?醒醒吧!别說C,連MFC的DLL都有辦法調用呢。

你真的覺得學習CDocument, CView, CWnd, CFrameWnd。。。這些繞來繞去的東西會更了解Windows?要更深的了解Windows要學習Win32程式設計,學習Windows核心程式設計,不是那個MFC,再說WinRT比Win32要好用的多。

第3種觀點 MFC開發的程式運作效率高

MFC主要用來開發用戶端程式,這裡應該是跟C#對比,C#以前是托管程式,現在C#開發的Windows程式已經能編譯成native了,運作效率提高了1.6倍左右吧,MFC是沉舟側畔千帆過,船艙裡的人還以為在乘風破浪。對了,visual studio的界面是用什麼開發的呢?

還有一些觀點,像什麼刀呀劍呀,還有什麼“你MFC用不好,也用不好C#”,就不一一列舉了。很多時候辯證法就是粗看去很有哲理,實際毫無實際的指導意義。

為什麼還有一些人推薦MFC?

話清末要廢除科舉制度,進京趕考的舉子跪在外面絕食抗議,朝堂之上還有大臣堅持科舉有多麼好。是啊,你想這些老秀才學習四書五經學了半輩子,一下子又不考了,多少年的心血白費了。考實體,化學,代數,幾乎給他們判了死刑。對于一個多年學習MFC,又不會别的語言的人,基本上也是深度套牢了。我記得冰河世紀裡有一隻老刺猬,洪水要來了,他躲在洞裡不走“I was born in this hole and I'll die in this hole.”堅持是一種品質,頑固和守舊卻是另外一回事了。這對于新手來說是一個很好的教訓。

為什麼還有很多剛畢業的大學生學習MFC?

因為他們的老師是上面所說的那些人。

MFC總有适合用的地方吧?

有,适合用在上世紀90年代開發Windows用戶端程式。

MFC現在一點用都沒有了嗎?

不是,曆史上遺留下來一些MFC的源代碼需要維護。可能偶爾會用幾個開源項目,就像彈藥不夠的時候偶爾也拼一下刺刀。

MFC應該跟什麼語言比較?

Borland C++,VB6,Delphi,PB等。

什麼人還需要關心一下MFC?

IT曆史學家需要大寫特寫MFC曾經短暫的輝煌,考古學家需要考證這塊化石的時候。

更多精彩讨論請移步:http://bbs.csdn.net/topics/391817496