其實Java和MFC兩個不能拿來比較
但是就之前看的Java2D又不能完全涵蓋MFC的範圍
偏偏MFC再怎麼大也沒有整個Java來的大
所以我真正要比較的是Java2D和部分的MFC
不過有部份比較的卻又是Java和C++之間的不同
最近開始把那本厚厚的Windows Programming with MFC翻譯書拿出來看
它有多厚呢?一千六百多頁吧
無法想像的話就想像七公分厚的書吧
如果是一本故事書一千六百多頁的書要看多久呢?
前提是它要跟故事書一樣好看...好抱歉它一點都不好看
花了一天只看了兩章
主要的原因是Microsoft的歷史包袱太多了
很多東西為了相容舊的版本
無法真的用很Object-Oriented的精神去設計MFC
這點是很多人批評過也希望Microsoft能脫去這層包袱重新設計MFC
所以會看到很多不想看到的東西而且相當複雜
就這點來說Java就沒有這個包袱
加上Java是Pure Object-Oriented Language
自然不會像MFC那樣出現OO夾帶Macro的東西...Java根本不允許
也就自然地Java相當簡單易懂而且好寫
如果用我對Java2D的理解程度來看MFC
MFC比較像我之前作業裡面用Object-Oriented的精神去包GTK的C APIs
一句話...龐大且無法很有Object-Oriented的精神
第二個受不了的就是MFC的命名系統
好像有又好像沒有
如果我說沒有肯定會被Microsoft的工程師打
但是對我而言複雜的命名系統跟沒有是一樣的
Java的命名系統很顯然又有系統多了
有時候要從命名看懂這個函式是做什麼用的就要想半天
真佩服這些Microsoft的工程師腦子裝了這麼多命名系統的法則
第三就Java2D在繪圖方面的設計
很多跟MFC是相似的
但是複雜度又高了許多
第四是兩者都想要讓設計師省去記憶體管理的麻煩
但是這點還是Java比較優異
MFC雖然有提供類似的機制卻很多地方還是要設計師去把new出來的物件delete
雖然說這是C++設計師本來就該養成的習慣
不過人非聖賢更非編譯器
無法百分之百確定物件是不是被刪掉了
而很多程式會當掉都是因為用到被刪除或是不存在的物件所致
就以上四點
難怪學長做論文都是用Java開發系統
因為它很快很簡單很OO
也是Java風潮開始流行的原因吧
不過話雖如此
MFC還是要把它看完...寒假前能看完嗎?

創作者介紹

Spirit的異想世界

dbi1463 發表在 痞客邦 PIXNET 留言(0) 人氣()