有不少朋友在問,Meego從Moblin演變過來為什么變成了QT而不用以前的GTK/clutter了?難道只是因為跟nokia的合作嗎?
當然跟nokia的合作是一個重要的原因,但QT最為一個Linux最重要的開發(fā)平臺Meego的選取也是有一定的原因的:
1. 首先QT是一個有廣泛支持的平臺,有不少的發(fā)行版已經首選KDE (基于QT的窗口管理器),例如Kubuntu, OpenSuse,等等,而且相比較Gnome, 這里引用一段話,但不表示我完全認同 8 )
GTK是用C, Qt用的是C++,這是一個最簡單的區(qū)別,所以開發(fā)程序相對來說,只是相對,GTK的程序執(zhí)行效率會高些,QT的程序開發(fā)環(huán)境成熟,效率高,代碼重用高,維護也方便??赡芤郧坝捎谑跈喾矫娴膯栴},很多程序員選擇了GTK,但是現(xiàn)在NOKIA已經發(fā)布了開源的版本,這個版權已經不是問題了!還有一個區(qū)別就是 QT做出來的圖形界面比GTK的好看,因為QT可以生成操作系統(tǒng)原生的界面。如果你是一個C程序員,可以選擇GTK,特別是開發(fā)gnome桌面的程序,但是在嵌入式平臺,我個人推薦選擇QT,因為QT在嵌入式平臺的開發(fā)和應用非常的成熟!當然,最好是動手做個嘗試,也許很多時候的選擇權并不在你的手里,而是在客戶,項目經理或者老板,我僅僅是一程序員而已!
而且目前Qt已經支持下述平臺:Windows、Unix/X11 – Linux、Sun Solaris、HP-UX、Compaq Tru64 UNIX、IBM AIX、SGI IRIX和其它很多X11平臺、 Mac OS X、Windows CE、Symbian。
2. QT有完善的開發(fā)工具:相比較gtk,最為商業(yè)版本,它的開發(fā)工具界面更完整,功能更完善一些。QT的UI designer,雖然我使用的不多,但感覺還是一個非常不錯的工具。
3. 技術支持:QT最為雙重授權的中間件,在客戶需要的情況下,可以提供充足的技術支持,畢竟這些人是nokia在發(fā)工資的 8 )
4. 開放的項目:因為歷史原因大家對QT的版權一直有些疑惑,下面是我在QT官方網站上找到的一些資料:
We offer Qt under the following licenses:
Qt Commercial Developer License | The Qt Commercial Developer License is the appropriate version to use for the development of proprietary and/or commercial software. This version is for developers who do not want to share the source code with others or otherwise comply with the terms of the GNU Lesser General Public License version 2.1 or GNU GPL version 3.0. | Read more |
Qt GNU LGPL v. 2.1 | This version of Qt is appropriate for the development of Qt applications (proprietary or open source) provided you can comply with the terms and conditions contained in the GNU LGPL version 2.1. | Read more |
Qt GNU GPL v. 3.0 | This version of Qt is appropriate for the development of Qt applications where you wish to use such applications in combination with software subject to the terms of the GNU General Public License version 3.0 or where you are otherwise willing to comply with the terms of the GNU General Public License version 3.0. | Read more |
License Comparison Chart
Commercial | LGPL | GPL | |
---|---|---|---|
License cost | License fee charged | No license fee | No license fee |
Must provide source code changes to Qt | No, modifications can be closed | Source code must be provided | Source code must be provided |
Can create proprietary applications | Yes - No source code must be disclosed | Yes, in accordance with the LGPL v. 2.1 terms | No, applications are subject to the GPL and source code must be made available |
Updates provided | Yes, immediate notice sent to those with a valid support and update agreement | Yes, made available | Yes, made available |
Support | Yes, to those with a valid support and update agreement | Not included but available separately for purchase | Not included but available separately for purchase |
Charge for Runtimes | Yes, for some embedded uses | No | No |
簡單說,如果基于商業(yè)版本,你可以做任何的修改/開發(fā)不需要公布,而且有相應的技術支持;基于LGPL你也可以開發(fā)自己的商業(yè)版本,但對QT的修改要回饋回去,如果要技術支持,當然要單獨付錢了。GPL適用于完全的open source項目,你也可以強制要求別人給予你的軟件的開發(fā)是GPL的。
如果都是基于LGPL,對我們來說沒有什么太大的區(qū)別。只是希望借助QT的平臺,能為我們帶來更多的更好的應用。
附錄一篇老文:著名的自由軟件圣戰(zhàn)- “KDE/QT .VS. Gnome/Gtk”
在 Unix 的圖形界面一向是以 MIT 的 X Window 系統(tǒng)為標準, 可是在商業(yè)應用上有兩大流派,一派是以 Sun 公司領導的 Openlook 陣營,一派是 IBM/HP 領導的OSF (Open Software Foundation) 的 Motif, 雙方經過多年競爭之后, Motif 最終勝出,成為最普遍使用的界面庫, 后來雙方又妥協(xié)出一個 CDE(Common Desktop Enviroment) 作為一個標準的圖形界面。 但是 Motif/CDER 的價格非常昂貴,在這同時微軟的 Windows 圖 形界面發(fā)展速度非???,而 Unix 界的后起之秀 Linux 也急需一個可靠并且免費的圖形界面。
1996 年 10 月,由開發(fā)圖形排版工具Lyx的德國人 Matthias Ettrich 發(fā)起了 KDE 計劃。 KDE 的全稱為 K Desktop Environment,可以看出是針對 CDE。 KDE 本身 是采用 GPL 宣言的,但是 KDE 卻是使用 Qt 來作為其底層庫,因為當時 Qt 已經將其 Unix 版本自由發(fā)布了,但是 Qt 并不遵循 GPL, 因此 KDE 被很多自由軟件的作者攻擊,認為利用非自 由軟件開發(fā)違背了 GPL 的精神,于是 GNU 的狂熱信徒兵分兩路,一路是去制作 Harmonny,試圖重寫一套兼容于 Qt 的替代品,另一路是由一個 26 歲的墨西哥程序員 Miguel De Icaza 領導 下重新開發(fā)一套叫 GNOME(GNU Network Object Enviroment)來替代 KDE。 feedom.net
由于 Linux 界的老大 RedHat 不喜歡 KDE/Qt 的版權,因此 RedHat 甚至專門派出了幾個全職程序員來加入 GNOME 進行開發(fā)工作,于是一場同 Motif VS Openlook 相似的圣戰(zhàn)就這么打起來了。 Trolltech 為了 KDE 曾數(shù)次修改 Qt 的版權,從成立 KDE Free Qt 基 金會到采用 QPL,可謂是費盡心機,但是 GNOME 采用的 GTK 一開始就是完全的 GPL,因此在這個方 面 GNOME 有一定的優(yōu)勢,加上 Qt/KDE 采用 C++ 開發(fā),入門的門檻比較高,而 GTK/Gnome 采用 C, 因此 GNOME 吸引了更多的自由軟件開發(fā)者,但是 KDE 畢竟先走了一步, 推出的 KDE1.1.2 十分穩(wěn)定, 而當時急忙中推出的 GNOME1.0 的系統(tǒng)穩(wěn)定性奇差,有人甚至笑稱 GNOME1.0 還沒有 KDE 1.0 Alpha 穩(wěn)定。但是 GNOME 后來發(fā)展比較快,大有迎頭趕上的勢頭。當時雙方的開發(fā)者在網絡 上炒得天翻地覆,連 Linux 之父 Linus 只是說了一句喜歡用 KDE 都倍受指責。
戰(zhàn)爭到了第三個年頭,也就是2000年,可謂是風云突變,一個接一個重大的事件先后發(fā)生: 首先是一批從 Apple 公司出來的工程師成立了一個叫 Eazel 的公司替 GNOME 設計界面,然后是一批 GNOME 程序員成立了一個 Helix Code 公司替 GNOME 提供商業(yè)支持,而大家期待以久的 KDE 2.0 也終于發(fā)布了,這恐怕是目前最為龐大的自由 軟件了之一, 除了 KDE 本身,還包括 Koffice 套件,和集成開發(fā)環(huán)境 Kdevelop 等等大批軟件,其主力軟件 Kounqueror 也是第一個可以同微軟的 Internet Exploer 相抗衡的瀏覽器。 而 Sun 公司,Red Hat 公司, Eazel 公司,Helix Code 等一批公司成立了一個GNOME 基金會, Sun 還宣布將把重量級辦公軟件 Star office 同 GNOME 集成, Trolltech 公司自然不能坐以 待斃,于今年 10 月 4 日將 Qt 的 free edition 變?yōu)?GPL 宣言,徹底解決了 KDE 的版權問題, 又推出了嵌入式 Qt ,給了 GNOME 陣營一個有力的回擊。
到現(xiàn)在為止,這場戰(zhàn)爭還在繼續(xù),相信我們不能很快看到結果。一般說來, 目前 GNOME 吸引的公司比較多,但是 KDE/Qt 的開發(fā)的效率和質量比 GNOME 高,而且在 Office/嵌入式 環(huán)境中先走一步,在一定時間內還將處于優(yōu)勢地位。
那么對于用戶來說,如何在 Qt/GTK 中作出選擇呢?一般來說,如果用戶使用 C++,對庫的穩(wěn)定性,健壯性要求比較高,并且希望跨平臺開發(fā)的話,那么使用 Qt 是較好的選擇, 但是值得注意的是,雖然 Qt 的 Free Edition 采用了 GPL 宣言,但是如果你開發(fā) Windows 上的 Qt 軟件或者是 Unix 上的商業(yè)軟件,還是需要向 Trolltech 公司支付版權費用的。