Linux 的開源,但對大多數人而言,等於閉源。不說完全理解,終其一生未必能讀完!
編譯一下內核可能是唯一的娛樂,想改內核?能合併成功嗎?
反覆造輪子是一個必然的過程,只是誰來造?是大廠造還是小廠造?科學家造還是民科造?
即使技術不發展,用戶的需求和使用習慣也會發展。微軟不會滿足有了 MFC,就從此打住;諾基亞即使收購了 QT,它仍然會研發其他平台。
MFC,QT 並不是不優秀,至少在它鼎盛的時代,它是王者。當然,任何優秀都是在一個時間域裡面的。相信谷歌開發 Go 語言的時候,並不是認為其他語言不優秀,而是應用場景發生了變化。
新的軟件框架,必定層出不窮,這是無法阻擋的趨勢!新的軟件框架由於考慮到了最新的用戶場景,往往較舊軟件有很大優勢,比如 Chrome 比 IE 强;Edge又比 IE 强。
輪子必定是需要重覆製造的,為的是更適應變化後的場景。即使作了最好的自行車輪子,也不能把它裝在汽車上,重覆造輪子本身不是一個問題,問題只是誰來造?給誰用?
MFC、WTL、WPF、wxWidgets、Qt、GTK 等等有何差別、優劣:https://www.zhihu.com/question/23480014
基本上 C++ 開發界面可以分成幾個時代:
Gen1:MFC/QT時代
這個現在可以說確實已經過時了,龐大的鏈接庫才實現了基本的界面元素。同時可定制化界面要花很大的功夫。
Gen2:directUI/ATL/輪子哥的庫
MFC後續沒有什麼大發展後,確實很多程序員轉向了微軟的另一個解決方案,那就是 ATL 以及直接利用基礎庫再自己畫界面的階段。首先這種方案確實是減小了程序的體積,但是缺點與上述 Gen1 差不多,界面的實現往往需要很多的代碼。
Gen3:WPF等微軟提供的新技術
所有的程序員都不得不接受的兩個事實是,第一 C++ 在微軟開發工具裡面確實都不如 C# 能拿到更多的資源,第二是微軟自從比爾蓋茲離職後,在開發框架上搖擺不定,出現了很多的框架然後又自我否定。很多的 C++ 程序員在這麼長的時間裡面已經消磨掉了微軟過去建立的優勢了。
Gen4:webkit\Chrome\Electron
當放棄 MS 的解決方案後就會發現世界還是很美好的。眾多的第三方都提供了很多更好的方案。這些方案代表了未來的趨勢,那就是把瀏覽器引擎包裝起來,利用 html 來製作界面。Github,Google,Apple 都貢獻良多。在這些基礎之上,很多公司也把自己的一些方案提供給大家,很多大公司的選擇也表明了這才是未來的發展方向。
如何實現 iOS 和 Android 跨平台的開發:https://www.zhihu.com/question/36019568