如何看待微軟自己的產品不用自己的庫寫而用Qt寫?

在微軟的OneDrive下面發現Qt的庫,並且不只有Core,還有GUI庫,也就是說One drive的界面也是Qt寫的了?微軟負責這個項目的人是不是也覺得微軟的東西不好用?


首先分析一下onedrive.exe,都是系統的dll,沒有Qt。

再看子目錄下面的onedrivesetup.exe,也都是系統的dll,沒有Qt。

再看FileCoAuth.exe和FileSyncConfig.exe

LoggingPlatform.dll和Telemetry.dll是在本地目錄,其他是系統的。而且兩者也只是依賴於系統目錄的dll。

進一步搜索,可以發現FileSyncViews.dll依賴於Qt5Core.dll。

而FileSyncViews.dll被FileSyncClient.dll所調用。

我沒有再繼續追下去,猜測是,這個同步需要跨平台的代碼,所以不可能用WPF或者MFC。就選了Qt。

有意思的是,這個目錄下還有libEGL.dll何libGLESv2.dll,而且確實是ANGLE。


蘋果MacOS下的onedrive和目前Windows下的onedrive單擊圖標顯示的同步進度界面是一模一樣的


微軟的UI庫一共有MFC、WinForms、WPF、WTL,還有一堆奇葩的小東西。如何看待微軟的每一個產品組,都認為這一堆UI庫裡面只有一個是好用的?如果都好用,為什麼不全都用上呢?一個軟體不同時使用C++、C#、VB和F#來寫,如何看待微軟的每一個產品組,都認為微軟的大部分語言都是不好用的,不然為啥不都用上?


支持競爭對手,其他公司好壞對對自己的KPI影響不大

支持自己人,KPI被同事搶走了,自己年底的獎金就少了

這麼多年了,我一直對當年metro版的ie11寧肯支持flash不支持silverlight耿耿於懷。


用自己的對公司有什麼特別好處么?如果沒有那肯定是用成本最低的。


既然有歷史C++代碼,又要跨平台。不用Qt,難道要用GacUI?(逃


其實真正的答案是一個字,懶。


結論:合適

要求:跨平台、大量分發、面向普通用戶

1.跨平台用 Qt沒話說,好不好用試試就知道,

http://2.NET的方案是要客戶裝個組件才可以用嗎,

3.其他的win庫也不錯,但是需要造輪子嗎

4.微軟說的開放,開放自己東西,接受別人東西

5.微軟的跨平台相比下,都不是最優解

6.沒有萬能的庫

7.軟體人員有信仰,但不需要每個人的信仰相同


OneDrive有Mac版


很正常,功能有多複雜,界面就有多複雜。

mfc比較複雜,各種宏各種結構帶指針,沒有二三年的經驗很難撐握全面,mfc很多更新也不上,版本也比較多,有的電腦上需要安裝對應版本的vc runtime才不出出現DLL Hell,如此複雜但還是不跨平台,界面需要深度定製才美觀。

.net框架中有winform是界面庫,但在ghost xp系統還需要安裝運行庫,性能上比c++的要差一些,不適合大眾軟體使用,用於企業版或專用軟體沒問題,但還是不跨平台。

DirectUI方法,相當於重做一個界面庫,這方面如qq,360,花了十幾年的時間做出來的界面庫,也不是通用的,跨平台時也是不行。可見軟體界面是個巨坑,跨平台更加坑深。

好多新的互聯網軟體用的是html5+c++調用這各方面,如在qt中可以用webkit引擎+c++調用,這樣軟體界面設計起來比較靈活和通用,c++調用可以支持很多native的功能,重要的是可以跨平台,實現windows+mac+linux等多操作系統復用。反觀directui方法,不能跨平台,在新的平台上如macos上,相當於重新設計,增加了成本。互聯網時代,多平台共享,多個終端需求是必然。

理論上抽象好網路api,再用qt webkit+html5 +c+++boost庫,可以設計出要求很高的互聯網大眾軟體。wps,skype,yy,virtualbox都是qt平台上開發的,軟體界面效果還不錯。


看到這個消息,我的倦意一掃而光,只想罵微軟是個大蠢蛋!自己平台連個原生UI框架都沒有!要麼就是落伍幾十年的MFC,要麼就是基於C#的.NET。想給windows寫個帶UI的原生程序頭髮都愁白了,這下終於報應了!活該!


windows趕緊把qt納入GUI開發官方推薦解決方案吧,其樂融融,豈不美哉?【司徒臉】


1 UI早已是成熟技術領域,可跨平台的成熟庫大把,社區成熟完善,文檔齊全,犯不著求人+看人裝逼。

2 避免公司政治,就事論事,不用與公司其他人協同,暗坑+阻力最小。


乾脆巨硬把QT買下來,免費給大伙兒用吧。


商業的本質- 以最小的成本實現最大的價值


現在做windows 應用前景有點堪憂啊,不過說實話感覺QT 比MFC(沒飯吃)強多了!


這有什麼,vscode還用了electron。

跨平台,微軟自己的UI庫不行


因為有的模塊需要跨平台,所以有些東西用QT比較方便


微軟其實也很尷尬。還是先把錢賺了再說吧!


微軟應該不會把Qt買下來。。。應該不會。。


推薦閱讀:

看完《C++ Primer》和《Effective C++》能找到一份起薪 5000 元以上的工作嗎?
C++ deallocate(pointer p,size_type n)第二個參數問題?
C++能勝任C的所有工作嗎?不行,有哪些?
c++delete一個指針,沒有賦值為null,再創建同類型的指針,有沒有可能被釋放資源的內存地址被重新使用,賦值給新指針?如何用程序驗證這種可能性?這個class里有成員是引用,引用所指的內存也會被釋放嗎?
如何評價C++17中的新特性fold expression?

TAG:QtC開發框架 | C | WindowsPresentationFoundationWPF |