天天看點

一篇老文:著名的自由軟體聖戰- “KDE/QT .VS. Gnome/Gtk”

Qt 是一個跨平台的 C++ 圖形使用者界面庫,由挪威 TrollTech 公司出品,目前包括Qt

, 基于 Framebuffer 的 Qt Embedded,快速開發工具 Qt Designer,國際化工具 Qt

Linguist 等部分 Qt 支援所有 Unix 系統,當然也包括 Linux,還支援 WinNT/Win2k,

Win95/98 平台。

Trolltech 公司在 1994 年成立,但是在 1992 年,成立 Trolltech 公司的那批程式員

就已經開始設計 Qt 了,Qt 的第一個商業版本于 1995 年推出然後 Qt 的發展就很快

了,下面是 Qt 發展史上的一 些裡程碑:

1996 Oct KDE 組織成立

1998 Apr 05 Trolltech 的程式員在 5 天之内将 Netscape5.0 從 Motif 移植到 Qt 上

1998 Apr 08 KDE Free Qt 基金會成立

1998 Jul 09 Qt 1.40 釋出

1998 Jul 12 KDE 1.0 釋出

1999 Mar 04 QPL 1.0 釋出

1999 Mar 12 Qt 1.44 釋出

1999 Jun 25 Qt 2.0 釋出

1999 Sep 13 KDE 1.1.2 釋出

2000 Mar 20 嵌入式 Qt 釋出

2000 Sep 06 Qt 2.2 釋出

2000 Oct 05 Qt 2.2.1 釋出

2000 Oct 30 Qt/Embedded 開始使用 GPL 宣言

2000 Sep 04 Qt free edition 開始使用 GPL

基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等圖形界 面庫和 Windows 平台

上的 MFC,OWL,VCL,ATL 是同類型的東西,但是 Qt 具有下列優點:

優良的跨平台特性:

Qt支援下列作業系統: Microsoft Windows 95/98, Microsoft Windows NT, Linux,

Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, B

SD/OS, SCO, AIX, OS390,QNX 等等。

面向對象

Qt 的良好封裝機制使得 Qt 的子產品化程度非常高,可重用性較好,對于使用者開發來說是

非常 友善的。 Qt 提供了一種稱為 signals/slots 的安全類型來替代 callback,這使

得各個元件 之間的協同工作變得十分簡單。

豐富的 API

Qt 包括多達 250 個以上的 C++ 類,還替供基于模闆的 collections, serializatio

n, file, I/O device, directory management, date/time 類。甚至還包括正則表

達式的處理 功能。

支援 2D/3D 圖形渲染,支援 OpenGL

大量的開發文檔

XML 支援

但是真正使得 Qt 在自由軟體界的衆多 Widgets (如 Lesstif,Gtk,EZWGL,Xforms,

fltk 等等)中脫穎而出的還是基于 Qt 的重量級軟體 KDE 。 有趣的是,KDE 也是使得

Trolltech 公司承受巨大壓力的一個原因。下面我們将來看看這場 著名的自由軟體聖

戰 -- "KDE/QT .VS. Gnome/Gtk" 是怎麼發生的。

在 Unix 的圖形界面一向是以 MIT 的 X Window 系統為标準, 可是在商業應用上有兩

大流派,一派是以 Sun 公司上司的 Openlook 陣營,一派是 IBM/HP 上司的OSF (Open

Software Foundation) 的 Motif, 雙方經過多年競争之後, Motif 最終勝出,成為

最普遍使用的界面庫, 後來雙方又妥協出一個 CDE(Common Desktop Enviroment) 作為

一個标準的圖形界面。 但是 Motif/CDER 的價格非常昂貴,在這同時微軟的 Windows

圖 形界面發展速度非常快,而 Unix 界的後起之秀 Linux 也急需一個可靠并且免費的

圖形界面。

1996 年 10 月,由開發圖形排版工具Lyx的德國人 Matthias Ettrich 發起了 KDE 計劃

。 KDE 的全稱為 K Desktop Environment,可以看出是針對 CDE。 KDE 本身 是采用

GPL 宣言的,但是 KDE 卻是使用 Qt 來作為其底層庫,因為當時 Qt 已經将其 Unix 版

本自由釋出了,但是 Qt 并不遵循 GPL, 是以 KDE 被很多自由軟體的作者攻擊,認為

利用非自 由軟體開發違背了 GPL 的精神,于是 GNU 的狂熱信徒兵分兩路,一路是去制

作 Harmonny,試圖重寫一套相容于 Qt 的替代品,另一路是由一個 26 歲的墨西哥程式

員 Miguel De Icaza 上司 下重新開發一套叫 GNOME(GNU Network Object Enviroment

)來替代 KDE。

由于 Linux 界的老大 RedHat 不喜歡 KDE/Qt 的版權,是以 RedHat 甚至專門派出了幾

個全職程式員來加入 GNOME 進行開發工作,于是一場同 Motif VS Openlook 相似的聖

戰就這麼打起來了。 Trolltech 為了 KDE 曾數次修改 Qt 的版權,從成立 KDE Free

Qt 基 金會到采用 QPL,可謂是費盡心機,但是 GNOME 采用的 GTK 一開始就是完全的

GPL,是以在這個方 面 GNOME 有一定的優勢,加上 Qt/KDE 采用 C++ 開發,入門的門

檻比較高,而 GTK/Gnome 采用 C, 是以 GNOME 吸引了更多的自由軟體開發者,但是

KDE 畢竟先走了一步, 推出的 KDE1.1.2 十分穩定, 而當時急忙中推出的 GNOME1.0

的系統穩定性奇差,有人甚至笑稱 GNOME1.0 還沒有 KDE 1.0 Alpha 穩定。但是 GNOM

E 後來發展比較快,大有迎頭趕上的勢頭。當時雙方的開發者在網絡 上炒得天翻地覆,

連 Linux 之父 Linus 隻是說了一句喜歡用 KDE 都倍受指責。

戰争到了第三個年頭,也就是2000年,可謂是風雲突變,一個接一個重大的事件先後發

生: 首先是一批從 Apple 公司出來的工程師成立了一個叫 Eazel 的公司替 GNOME 設計

界面,然後是一批 GNOME 程式員成立了一個 Helix Code 公司替 GNOME 提供商業支援

,而大家期待以久的 KDE 2.0 也終于釋出了,這恐怕是目前最為龐大的自由 軟體了之

一, 除了 KDE 本身,還包括 Koffice 套件,和內建開發環境 Kdevelop 等等大批軟體

,其主力軟體 Kounqueror 也是第一個可以同微軟的 Internet Exploer 相抗衡的浏覽

器。 而 Sun 公司,Red Hat 公司, Eazel 公司,Helix Code 等一批公司成立了一個

GNOME 基金會, Sun 還宣布将把重量級辦公軟體 Star office 同 GNOME 內建, Trol

ltech 公司自然不能坐以 待斃,于今年 10 月 4 日将 Qt 的 free edition 變為 GPL

宣言, 又推出了嵌入式 Qt ,但是值得注意的是,雖然 Qt 的 Free Edition 采用了 GPL 宣言,但是如果你開發Windows 上的 Qt 軟體或者是 Unix 上的商業軟體,還是需要向 Trolltech 公司支付版權費用的。

繼續閱讀