Qt(發(fā)音cute)最初是Trolltech公司于1994年做的一個(gè)平臺(tái)抽象層,在過(guò)去它廣泛地應(yīng)用在桌面和嵌入式app中,
例如Google Earth,Skype還有Roku機(jī)頂盒。Nokia為了在其Symbian,Maemo和Series 40等平臺(tái)上融合自身和第
三方app創(chuàng)造一個(gè)一致的編程環(huán)境,在2008年收購(gòu)了Qt。不過(guò)為了與微軟搭伙,諾基亞已經(jīng)放棄了Symbian和MeeGo,很有可能采用Qt來(lái)為其
實(shí)現(xiàn)“Next Billion”戰(zhàn)略。在2008-2011年諾基亞放棄了Qt桌面和嵌入式平臺(tái)并把授權(quán)模塊賣(mài)給了Digia(一個(gè)芬蘭的系統(tǒng)集成
商),這可真不值得。
Qt共有三種license可以獲得,包括兩種開(kāi)源的版本(LGPL v2.1和GPL v3)以及一個(gè)需要付費(fèi)的商用license。Qt開(kāi)發(fā)框
架被Nokia內(nèi)部分割成兩部分,分別負(fù)責(zé)維護(hù)和開(kāi)發(fā)。從2011年11月起,Nokia削弱了在Qt上面的控制等級(jí),并且允許第三方以一種更平等的方式
來(lái)參與地圖以及特色應(yīng)用的開(kāi)發(fā)。
主要產(chǎn)品和技術(shù)
Qt是個(gè)C++ UI以及應(yīng)用框架作為其核心內(nèi)容,擁有十分寬廣的平臺(tái)支持面(包括
iOS,Android,Symbian,Tizen,MeeGo,Windows Mobile,Mac OS,Windows ,Linux以及一些
其他的嵌入式環(huán)境)。除了C++語(yǔ)言之外,還可以使用QML(Qt Meta Language,這是一種陳述性語(yǔ)言,使用了一些Javascript元
素使得UI和邏輯的編程更加簡(jiǎn)單。此外QML還可以使用Qt C++擴(kuò)展,或者綁定C#,.Net,Java,Lua,Perl Python和
PHP)。請(qǐng)注意Qt程序庫(kù)增加了大約額外的12MB到app負(fù)載,WebKit的額外負(fù)載是它的兩倍,這些將在下一個(gè)版本被改善,Qt5引入了模塊化,
可以將沒(méi)用的組件從框架中剔除。
開(kāi)發(fā)人員也可以通過(guò)WebKit引擎使用HTML,JavaScript和CSS來(lái)實(shí)現(xiàn)用戶(hù)接口,混合編程語(yǔ)言以及使用WebViews會(huì)造成一些
額外的性能開(kāi)銷(xiāo),否則的話(huà)其性能開(kāi)一說(shuō)能與native app相媲美,使用C++編譯(擁有抽象層接口讓 core app與操作系統(tǒng)交互)應(yīng)該比
Java更快一些。Qt開(kāi)發(fā)人員更傾向于把性能作為他們的選擇標(biāo)準(zhǔn):32%選擇了這一點(diǎn),而對(duì)于其他工具的均值來(lái)說(shuō)只有20%;此外,對(duì)于性能方面的用戶(hù)
滿(mǎn)意率也比較高。
Qt SDK由一些代碼庫(kù)組成,Qt Designer和Quick Designer擁有很多可視化編輯器,開(kāi)發(fā)工具等,諸如
Qt quick UI Creation Kit,Mobile APIs,Symbian仿真器還有Meego Devices。另外,還有很多
Visual Studio和Eclipse IDE的插件。
市場(chǎng)影響力
Nokia估計(jì)大約有五十萬(wàn)研發(fā)人員使用Qt,此外從該平臺(tái)發(fā)布以來(lái)大約超過(guò)兩萬(wàn)種應(yīng)用是用Qt做出來(lái)的,其中一半是桌面平臺(tái)應(yīng)用。Qt作為一種廣
泛使用的編程平臺(tái),應(yīng)用在移動(dòng)(Symbian和Android),桌面和嵌入式設(shè)備,無(wú)線(xiàn)流量控制,汽車(chē)終端,機(jī)頂盒和打印機(jī)等諸多領(lǐng)域。放眼未來(lái),對(duì)
于Nokia Series 40的轉(zhuǎn)型來(lái)說(shuō)Qt還處在一個(gè)不確定的狀態(tài),其未來(lái)的潛力依舊撲朔迷離。
市場(chǎng)定位
Qt可能是在Apple和Google時(shí)代來(lái)臨之后唯一幸存的應(yīng)用框架競(jìng)爭(zhēng)者了,與此同時(shí)我們可以看到JavaMe和Flash都在持續(xù)走下坡路。
在移動(dòng)開(kāi)發(fā)方面的調(diào)研結(jié)果上Qt的用戶(hù)體驗(yàn)比其他工具略高一點(diǎn)點(diǎn):30%的Qt開(kāi)發(fā)人員擁有超過(guò)五年的開(kāi)發(fā)經(jīng)驗(yàn),而行業(yè)均值為17%;而在這群開(kāi)發(fā)老手里
面,擁有網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn)的卻比較少,只占42%的開(kāi)發(fā)人員擁有超過(guò)五年的開(kāi)發(fā)經(jīng)驗(yàn),而均值為66%。Qt的開(kāi)發(fā)人員可以把C++編程與
HTML/Javascript以及QML整合在一起,并不需要考慮其他快速開(kāi)發(fā)工具。
除了桌面和嵌入式系統(tǒng)之外,Qt現(xiàn)在也被使用于針對(duì)Android和iOS的跨平臺(tái)應(yīng)用開(kāi)發(fā)了,盡管他們都已經(jīng)在“Tier 3”并且沒(méi)有主流支
持。通過(guò)Lighthouse項(xiàng)目可以獲得Android的支持,同時(shí)iOS社區(qū)推動(dòng)項(xiàng)目也在支撐Qt Core前進(jìn)(但不是GUI)。作者的調(diào)研結(jié)果表
明,48%的人把Qt作為主要工具并且把Android作為一個(gè)關(guān)鍵平臺(tái)目標(biāo);iOS占18%。Qt開(kāi)發(fā)人員的目標(biāo)平臺(tái)
為:MeeGo/Tizen(80%),Symbian(73%),Windows PC(55%),Mac(36%)這方面比其他工具的均值要明顯高很
多。
Qt開(kāi)發(fā)人員的主要目標(biāo)app類(lèi)型更加混雜,公共事業(yè)應(yīng)用占了38%(均值只有18%),企業(yè)應(yīng)用展29%(均值39%),提高效率的工具應(yīng)用25%(與均值持平)。


