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