<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Qt 如此強(qiáng)大為什么就是火不起來呢?

          共 3229字,需瀏覽 7分鐘

           ·

          2021-03-11 08:09

          關(guān)注、星標(biāo)公眾號(hào),直達(dá)精彩內(nèi)容

          來源:網(wǎng)絡(luò)素材

          整理:李肖遙


          Qt不知道大家用的多不多,或者有沒有很多相關(guān)的崗位,我看到這個(gè)熱帖,整理了幾個(gè)我人認(rèn)為說的很有道理的回復(fù),大家可以多多探討交流

          Qt的前途是光明的,但是道路是坎坷的,Qt加油。

          • 知乎作者:JasonWong編輯于 2016-12-05

          用Qt已經(jīng)4年了,我來說說感受。在我用Qt的這些年里,Qt一直處于不溫不火的狀態(tài)。有很多公司用,如YY、WPS這樣用戶過億的產(chǎn)品,也有不對(duì)普通用戶的軍工、船舶。最近在汽車這塊也比較火。但是Qt沒有在被大規(guī)模的采用,往往是只有部分行業(yè)內(nèi)Qt的使用率很高,這的確是事實(shí)。

          Qt是我的主力開發(fā)框架,我拿Qt開發(fā)了客戶端,服務(wù)器端,桌面端,移動(dòng)端甚至還包括點(diǎn)嵌入式端。這這之中我遇到了很多Qt的不足以及Qt的強(qiáng)大。考慮到題目定義,在本回答中我主要講不足。

          0.互聯(lián)網(wǎng)時(shí)代了,很多人已經(jīng)答過這個(gè),不展開了。

          1.開發(fā)人員不足:這是我現(xiàn)在發(fā)現(xiàn)Qt這個(gè)生態(tài)系統(tǒng)里最大的問題。因?yàn)槿鄙匍_發(fā)人員,導(dǎo)致企業(yè)難以招到高質(zhì)量的Qt工程師,然后不愿意展開Qt的項(xiàng)目,這簡直就是惡性循環(huán)。我見過有公司因?yàn)閾?dān)心招不到Qt工程師,直接把已經(jīng)做好的產(chǎn)品雪藏,再用HTML5重新開發(fā)一遍。

          2.工程師們對(duì)Qt認(rèn)知普遍落后:直至今天,Qt從4.8開始推出的QML(QtQuick框架,計(jì)劃是代替QtWidgets)仍然沒在Qt圈子里普及,甚至很多人都不知道這是什么以及這個(gè)能干什么,這更別說其他工程師們了。

          3.學(xué)習(xí)成本高:Qt有QtQuick,這個(gè)開發(fā)起來非常方便,但是這畢竟是新的框架,帶來了新語言和新的開發(fā)模式,這意味著學(xué)習(xí)成本,很多人看到就望而止步,拒絕學(xué)習(xí)(沒錯(cuò),是拒絕學(xué)習(xí)),我本人也是在接觸Qt兩年后才慢慢接觸這個(gè)框架。才發(fā)現(xiàn)這是好東西。退一步說,就算是只用QtWidgets,這也是C++,這個(gè)入門成本太高。套用我以前同學(xué)和我說的話:如果我學(xué)的是Web開發(fā),我第一天就可以做出可視化的成果,用起來還不錯(cuò)。但是如果是C++,幾個(gè)星期了說不定還是黑乎乎的控制臺(tái),學(xué)習(xí)的興趣一下子就沒了。

          4.硬件要求高:我認(rèn)為Qt的未來在于QtQuick,無論桌面、手機(jī)還是嵌入式。但是QtQuick對(duì)硬件要求很高(相對(duì)QtWidgets而言),沒顯卡,或者顯驅(qū)不完善,不好意思,直接拜拜,跑不起來。很多公司因?yàn)檫@個(gè),放棄了QtQuick,回到QtWidgets,去糾結(jié)那個(gè)C++到底適不適合開發(fā)界面的問題。甚至直接拋棄Qt。

          5.太大:一個(gè)HelloWorld 10多MB,我覺得這個(gè)正常,畢竟Qt不是系統(tǒng)級(jí)別的庫,但是很多人接受不了。另外Qt自己也出了lite計(jì)劃,降低Qt的大小以及對(duì)硬件的依賴(一起解決我說的4、5兩點(diǎn)),但是截止我編寫本答案,該項(xiàng)目仍在開發(fā)中。

          6.宣傳力度低:舉個(gè)例子,Qt以前就有一個(gè)虛擬鍵盤的組件,但是只給企業(yè)版,然后前段時(shí)間給開源了。但是我問過很多很多人,他們連有這個(gè)東西都不知道,仍然自己在造輪子。還有其他很多東西都是如此。其實(shí)這個(gè)來源的信息都是公布到官方的blog,但是是英文,很多人估計(jì)都不會(huì)去看一下。

          7.授權(quán)協(xié)議:目前Qt是GPL和LGPL,這個(gè)就不用我詳細(xì)解釋了吧,動(dòng)不動(dòng)就要開源。除非買企業(yè)版解除這個(gè)限制,但是企業(yè)版又是一個(gè)大開銷。其實(shí)啊,我還是挺喜歡Qt的,千萬別說我在黑Qt。

          Qt是很多領(lǐng)域是很火的,只不過Qt火的領(lǐng)域我們普通人接觸不到。

          • 知乎作者:懶得打字編輯于 2019-08-09

          我們接觸的大部分都是互聯(lián)網(wǎng)應(yīng)用,企業(yè)級(jí)應(yīng)用,這些領(lǐng)域用Qt就是大炮打蚊子。

          Qt面向的是什么?首先Qt的第一個(gè)吹牛逼的特性是跨平臺(tái),目前你能想到的操作系統(tǒng)平臺(tái)它都能支持,雖然有部分平臺(tái)支持的不是特別好,但是在比較流行的平臺(tái)下,如Windows,Linux桌面端/服務(wù)端/嵌入式,都是支持非常不錯(cuò)的。BUG雖然有一些,但也算在解決方案內(nèi)部繞過去的那種,致命的BUG不多。

          Qt第二個(gè)特性是高效,基于C++的語言決定了使用它做GUI開發(fā),一些輔助功能可以直接使用硬件特性,比如直接操作內(nèi)存什么的,同時(shí)GUI繪制的時(shí)間也是可控的。所以一些嵌入式軟件的人機(jī)交互界面基本上都用Qt實(shí)現(xiàn)比較合理(在資源本來就不行的情況下,跑個(gè)tomcat+瀏覽器簡直不可能)。

          Qt第三個(gè)特性是門檻低,這點(diǎn)有爭議的,這里的門檻是和操作系統(tǒng)底層的GUI相關(guān)的API比較的,只有用過Win32 API,GTK+的才有發(fā)言權(quán)。那些十幾個(gè)參數(shù)的API,想想都恐怖。

          那么那些Qt火的領(lǐng)域?yàn)槭裁从肣t呢?那些Qt不火的領(lǐng)域?yàn)槭裁床挥肣t呢?這個(gè)是典型的軟件設(shè)計(jì)架構(gòu)問題。我能用蒼蠅拍子解決的問題,為什么用大炮呢?

          先說Qt火的領(lǐng)域國內(nèi)的電網(wǎng)領(lǐng)域:早期的(90年代)電網(wǎng)自動(dòng)化軟件都是國外的,菜一點(diǎn)的都是跑在NT4.0上的,高級(jí)一些的都跑在Solaris上的,然后國內(nèi)開始仿制(那個(gè)時(shí)候已經(jīng)WinXP了),一看國外的系統(tǒng)既可以跑在Win上,又可以跑在Unix上,Linux又開始慢慢流行。

          你說那個(gè)時(shí)候的設(shè)計(jì)師選什么作為圖形框架?首選Qt3啊,那個(gè)時(shí)候Java還不知道在哪里呢?,F(xiàn)在國家電網(wǎng)南方電網(wǎng)又在推廣國產(chǎn)操作系統(tǒng),所有的生產(chǎn)控制系統(tǒng)都是基于Linux的國產(chǎn)操作系統(tǒng),那些早期用MFC的,實(shí)時(shí)系統(tǒng)轉(zhuǎn)Qt,非實(shí)時(shí)系統(tǒng)轉(zhuǎn)Java。這個(gè)領(lǐng)域用了Qt的跨平臺(tái)和門檻,畢竟那個(gè)時(shí)候的程序員能用好操作系統(tǒng)底層API的太少了。

          汽車領(lǐng)域:大家看到的車機(jī)系統(tǒng)早期是WinCE的,非???,點(diǎn)一點(diǎn)反應(yīng)一秒鐘,后來逐步是Linux,然后是Android,反應(yīng)快一點(diǎn)兒了。汽車儀表盤的實(shí)時(shí)性可比車機(jī)要高的多,早期的儀表盤都是指針+單色液晶,就是一個(gè)很簡單的裸片子控制,連操作系統(tǒng)都不上,為了就是實(shí)時(shí)性。要是你已經(jīng)加速到了120,但是儀表盤上還是60,那你不瘋了。

          現(xiàn)在的儀表盤要么是廠家自己定制的Linux,要么就是QNX,但是在圖形框架上絕大多數(shù)用的是Qt,C++的特性保證了硬件性能實(shí)時(shí)掌握在程序員手上,要是瞄一眼儀表盤的時(shí)候,這個(gè)時(shí)候Java正好GC了……這不是都是利用了Qt的高效性質(zhì)。

          其他火的領(lǐng)域就不一一說了,比如視頻監(jiān)控,軍工控制。

          我們接觸的比較多的領(lǐng)域是互聯(lián)網(wǎng)和企業(yè)應(yīng)用,那么為什么這些領(lǐng)域現(xiàn)在的不青睞Qt呢?首先跨平臺(tái),說跨平臺(tái)貌似沒有多少能比JVM做的更好的了,管你什么硬件平臺(tái),基本上都有能用的JVM版本,至少在跨平臺(tái)上面Qt并沒有絕對(duì)的優(yōu)勢(shì);

          其次是效率,這些應(yīng)用很少那種批量數(shù)據(jù)處理解決大批量數(shù)據(jù)的問題,即使有,也可個(gè)作為核心模塊,使用專門的技術(shù)解決(比如MapReduce等,這些領(lǐng)域通常硬件資源是無限的),更多的關(guān)注的是業(yè)務(wù)流程,所以基于C++的Qt并無太多優(yōu)勢(shì);

          然后是門檻,雖然Qt框架的門檻比直接使用操作系統(tǒng)API要低,但是比C/C++門檻低的高級(jí)語言多得是啊,部分Java框架在語言層次上和Qt比較簡直毫無下限;

          最后是,使用流行的Java,Python之類的能干的活,為什么要用C/C++的Qt呢?畢竟人家用Maven和Pip方便多了。

          總之找不到使用Qt的理由。

          地址:https://www.zhihu.com/question/53068823?sort=created

          ????????????????  END  ????????????????

          掃描下方微信,加作者微信進(jìn)技術(shù)交流群,請(qǐng)先自我介紹喔。



          推薦閱讀:


          嵌入式編程專輯
          Linux 學(xué)習(xí)專輯
          C/C++編程專輯
          Qt進(jìn)階學(xué)習(xí)專輯
          關(guān)注微信公眾號(hào)『技術(shù)讓夢(mèng)想更偉大』,后臺(tái)回復(fù)“m”查看更多內(nèi)容。

          長按前往圖中包含的公眾號(hào)關(guān)注

          瀏覽 69
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲高清无码免费视频 | 久久妻视频免费精品人妻中文无码 | 国产激情精品在线观看 | 日本一级婬片A片AAA毛片男男 | 男女啪啪啪啪啪啪网站 |