自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

諾基亞開發(fā)框架Qt的前世今生

移動開發(fā)
諾基亞近日也正式發(fā)布跨平臺的應(yīng)用程序和界面開發(fā)框架Qt的最新4.7版本。這個版本使Symbian和MeeGo統(tǒng)一了開發(fā)環(huán)境,對于Symbian系統(tǒng),Qt 4.7擔(dān)負(fù)著老樹開花的重任,對于MeeGo系統(tǒng),Qt 4.7則擔(dān)負(fù)著開疆?dāng)U途的使命。

編者按:本文為ifanr 邀請一名 Qt 開發(fā)者toartist 寫的一篇Qt的回顧和展望文章。諾基亞近日也正式發(fā)布跨平臺的應(yīng)用程序和界面開發(fā)框架Qt的***4.7版本。這個版本使Symbian和MeeGo統(tǒng)一了開發(fā)環(huán)境,對于Symbian系統(tǒng),Qt 4.7擔(dān)負(fù)著老樹開花的重任,對于MeeGo系統(tǒng),Qt 4.7則擔(dān)負(fù)著開疆?dāng)U途的使命。

2010 年 10 月 21 日,諾基亞宣布,決定將Qt作為Symbian和MeeGo唯一的應(yīng)用程序開發(fā)框架。

那么人們不禁要問,Qt 是什么,為什么受到諾基亞如此重視,要將其作為自己手機(jī)平臺的“唯一”開發(fā)框架?

[[17159]]
Qt

Qt為什么叫Qt,不叫OT,不叫MT呢?

我們要先追溯到上個世紀(jì)末一個關(guān)于 Qt 的鮮為人知的典故。話說在北歐挪威苦寒之地,這地方一年只有兩個月的太陽,平時都是極晝,所以那邊人因為曬太陽比較少,于是都是金黃的頭發(fā),藍(lán)色的眼睛,皮膚白白黃毛特多。于是難得曬太陽就是件很享受的事情,就有兩個無聊的大學(xué)生很舒服地躺在桌子上嗮太陽,正嗮得舒服,兩小伙想了,閑著也是閑著,干嘛不接點私活呢,于是就去接了個給一個什么公司用 C++ 開發(fā)一個 Unix 用戶界面的程序,沒成想錢收得不多那公司還要求移植到別的系統(tǒng)別的電腦下,這兩費盡千辛萬苦終于搗出了一個可以跨平臺的程序。

其實這程序很小,就是一個按鈕,難得的是它能在好多系統(tǒng)下都能按,還是個C++ 的按鈕,后來他們把程序放到了網(wǎng)上,有人覺得有意思就參與一起開發(fā)了,那會兒 IT 人士過得都很滋潤啊,于是沒事就做做,之后很快就發(fā)展成了一套完整的 C++ 類庫。為什么大家叫它 Qt ,大概是因為很可愛,很 Cute(QT的讀音)吧。

那么那兩位大學(xué)生呢,時光流轉(zhuǎn),幾年過去了,大學(xué)生也不再是大學(xué)生了,他們想 Qt 發(fā)展得不錯了,干脆開家公司賣它吧,于是他們在奧斯陸合伙開了家公司叫 Trolltech,專門開發(fā) Qt ,一開始不順利,怎么也賣不出去,原來 Qt 在開源社區(qū)經(jīng)過一幫牛人的鍛造,整得太高級了,一般人都用不動啊,于是他們嘗試將接口簡化,變成傻瓜式的開發(fā)工具,這也就是 Qt 一直宣傳的優(yōu)點:

  1. Code Less, Create More and deploy everywhere. 

就這樣,一家做醫(yī)療儀器的公司有個技術(shù)總監(jiān)在初步研讀了 Qt 的源碼后,終于讓他們賣出了***個 Qt 的商業(yè)許可證。所以啊這偉大的產(chǎn)品都是經(jīng)過很多磨難才慢慢形成的,而且要走得長遠(yuǎn),必須一開始就有很好的理念,看看同時期的 MFC 吧,真是氣死了多少 C++ 程序員啊,先天不足,難以為繼。后來還有個小插曲,當(dāng)那位技術(shù)總監(jiān)年老色衰被公司趕出山門,Trolltech 收留了他并奉為上賓,由此可以看到 Qt 創(chuàng)始人的一絲人性光輝以及能夠想象得到的當(dāng)年 Trolltech 和諧的公司文化。

那么由于 Qt 在開源社區(qū)走了那么一遭,與開源社區(qū)結(jié)下了不解之緣,免費開源的軟件都可以免費使用 Qt ,于是 Qt 繼續(xù)在開源社區(qū)發(fā)揮無限的潛力,創(chuàng)就了一個又一個偉大的開源軟件,其中就包括了一個巨無霸,一整個圖形系統(tǒng)的 KDE ??吹竭@里,聰明的人就領(lǐng)悟到了,Qt 還有另一個極大的優(yōu)勢呢,便是有眾多的開源支持,使得開發(fā)更加容易。

為什么諾基亞要收購Qt?

說到這里,大家還是不明白為什么諾基亞要收購 Qt , 因為這時候 Qt 還只是在桌面平臺上混,不緊不慢地發(fā)展了好幾年,PDA 開始出來了,風(fēng)靡一時,本著deploy everywehre 的原則,PDA 也是要跨的,于是開始開發(fā)嵌入設(shè)備版本的Qt ,在這里 Qt 又一次借助了開源社區(qū)的力量,整合了一套嵌入式的 KDE ,便是嵌入式程序員都知道的 Qtopia 。這個偉大的產(chǎn)品甚至從某種程度上超越了 Qt 本身,國內(nèi)的老 Qt 程序員們倒有一大半是與其打交道的,其普及之廣是其他嵌入式操作系統(tǒng)所無法企及的。于是乎正遭到 iPhone 巨大打擊的手機(jī)業(yè)大哥大諾基亞便是因為 Qtopia 而對 Qt 青睞有加,正好同在北歐的挪威芬蘭一家親,收購了 Qt 一起嗮太陽,看美女。

為什么是Qt?
為什么是Qt?

那么諾基亞收購 TrollTech 之后,讓 Qt 又發(fā)生了多大變化呢,說到這里,諾基亞不愧為大哥大,國際大公司,出手便是不凡,從 4.5 開始,首先完全整合了Qt 嵌入式版本,并加入了 Symbian 支持,針對 Qt 運行速度不夠快的缺點大力優(yōu)化底層,讓 Qt 性能有了質(zhì)一般的提升,提高了一倍以上的速度,同時提出了個先進(jìn)的 Kinetic 的項目計劃,也就是當(dāng)前 4.7 里的 QtQuick ,說到這個,就要提到微軟為 .net 大力打造的先進(jìn)的 UI 組件 WPF 了,設(shè)計與代碼分離,數(shù)據(jù)驅(qū)動式的開發(fā),令美工與程序員可以無縫合作,這東西讓微軟得意了好幾年。不過由筆者看來, Qt 的這個組件更加引人注目,原因有三:

◆基于 C++ 完全開源的開發(fā)模式令眾多喜歡刨根問底的 C++ 開發(fā)者受益非淺,熱情高漲。

◆加入了強(qiáng)化了的 javascript 作為動態(tài)語言契合了當(dāng)前流行的開發(fā)模式,而且 javascript 這種類 C 式語法也令 C++ 程序員平滑過渡,比起其他類似 Ruby,python 之類的更加應(yīng)用自如,而額外加入的數(shù)據(jù)綁定,與 C++ 擴(kuò)展無縫集成等等方面比起WPF也是更加地方便易用。真正做到了快速開發(fā)而不失程序的高效。

◆由于 Qt 的跨平臺性,QtQuick 在未來將有著更為廣闊的應(yīng)用,除了諾基亞主打的手機(jī),平板電腦平臺,QtQuick 由于腳本文件式的開發(fā)方式甚至可以用到 web 應(yīng)用程序上,當(dāng)真是潛力無限,筆者作為一名開發(fā)者,深深地要向 QtQuick 的設(shè)計者們致以崇高的敬意。

方才介紹了諾基亞為 Qt 帶來的最重要的東西,那么還有什么呢,讓筆者為您一一道來。Qt 4.5 加入了一個叫 phonon 的組件,這個東西來自 KDE 的一個開源項目,強(qiáng)大的開源社區(qū)又為 Qt 貢獻(xiàn)了一個設(shè)計優(yōu)良的庫,在此之上開發(fā)多媒體程序只需幾十行代碼便可搞定,Qt 一直以來所追求的精神又一次得到了***的體現(xiàn),但諾基亞的開發(fā)人員卻不滿足,又在 4.6 加入了一個 multimedia 的庫,用以更底層的多媒體開發(fā)。真是面面俱到,令 Qt 的程序員們?yōu)橹偪瘛?/p>

還有一個不得不提到的 webkit,這個在 Apple 的瀏覽器上大放異彩的開源瀏覽器引擎,Qt 理所當(dāng)然地不能放過,Qt 版的 webkit 令 Qt 的開發(fā)者無論是打造自己的瀏覽器還是做與 web 相關(guān)的程序都只需輕輕幾行代碼便可做到,筆者不禁要感嘆,有了 Qt ,寫代碼真正是變成了樂趣。

QTLive
QTLive

而在手機(jī)方面,諾基亞做得更多,一個 Mobility 的 Qt 組件正逐漸完善,它封裝了諾基亞手機(jī)操作系統(tǒng)的底層,提供了一個統(tǒng)一的接口操作手機(jī)的各個方面,包括攝像頭,短信,以及智能手機(jī)的各種傳感器,在這方面 Qt 又超越了 google 猶抱琵琶半遮面的 Android 以及 Apple 完全封閉的 iPhone 的開發(fā)框架。所以擁有巨大開源勢力支持的 Qt 的野心又豈止在諾基亞本家,Qt 有兩個分支版本針對 iPhone 的 Qt-iPhone 和針對 Andriod 的 Android-Lighthouse 正在悄然無息地開發(fā)之中。

到了這里,筆者作為一名 C++ 開發(fā)者不禁要竊喜,正當(dāng) Android 選擇了 java,而 iPhone 使用著 object-c ,我們借助偉大的 Qt ,必將凌駕于所有平臺之上。

從過去看到現(xiàn)在,那么我們再展望下在諾基亞強(qiáng)大實力支持下的 Qt 又將有著如何輝煌的未來吧。

諾基亞已經(jīng)為 Qt 設(shè)置了 Roadmap,其它全方位的支持筆者就不多說了,除了一直承諾的代碼優(yōu)化在開源社區(qū)的支持下會做得更好以外,下一代的 widget 將架構(gòu)在 QtQuick 之上,一直認(rèn)為 Qt GUI 并無新意的程序員們可以看到 Qt 的努力了。這方面 Qt 并不遜于 iPhone 和 Android 的開發(fā)框架,未來也將做得更好,這點從 QtQuick 大膽而又優(yōu)秀的設(shè)計上就可以看到,Qt 將 UI 變成了一門藝術(shù)。如果你是一名 C++ 程序員,Qt 就是你夢想中的開發(fā)工具,能為你的開發(fā)效率提高何止 5 倍。而 Qt 也不僅僅屬于 C++,早在諾基亞收購之前就有了java 版的接口,python 的接口等等。那么正在面對眾多混亂的開發(fā)工具而迷茫無助的你,還有什么理由拒絕由諾基亞發(fā)出的 Qt 邀請?

【編輯推薦】

  1. 諾基亞發(fā)布開發(fā)框架Qt4.7 推出快速UI工具
  2. QtCreator:MeeGo開發(fā)程序入門手冊
  3. Symbian和MeeGo將統(tǒng)一開發(fā)環(huán)境 Qt壓力很大 
  4. 諾基亞發(fā)布Qt 4.6版本 支持多點觸摸和手勢輸入
責(zé)任編輯:佚名 來源: ifanr
相關(guān)推薦

2014-07-21 12:57:25

諾基亞微軟裁員

2011-08-23 09:52:31

CSS

2015-11-18 14:14:11

OPNFVNFV

2025-02-12 11:25:39

2014-07-30 10:55:27

2016-12-29 13:34:04

阿爾法狗圍棋計算機(jī)

2013-05-23 16:23:42

Windows Azu微軟公有云

2014-07-15 10:31:07

asyncawait

2021-06-17 07:08:19

Tapablewebpack JavaScript

2012-05-18 16:54:21

FedoraFedora 17

2016-12-29 18:21:01

2019-06-04 09:00:07

Jenkins X開源開發(fā)人員

2016-11-08 19:19:06

2016-11-03 13:33:31

2011-05-13 09:43:27

產(chǎn)品經(jīng)理PM

2013-11-14 16:03:23

Android設(shè)計Android Des

2019-08-05 10:08:25

軟件操作系統(tǒng)程序員

2019-04-28 09:34:06

2015-06-11 11:10:09

對象存儲云存儲

2021-04-15 07:01:28

區(qū)塊鏈分布式DLT
點贊
收藏

51CTO技術(shù)棧公眾號