GNOME 是各个主流发行版的默认桌面环境。不过这个名声得来的有点不是那么厚道,起码不是靠 实力获得的。GNOME无论是在易用性还是在可定制性上都离KDE差了一大截。GNOME能获得今天 的成就,原因是 一开始就站在了道义的制高点牵制住了KDE。这是为何呢?
原因就在Qt上。{}Matthias Ettrich{}开发KDE选择了Qt。而当时的Qt并不是一个开源软件。Qt由一家 叫做Troll Tech的公司掌握。Qt采取办法是的是对开源软件的开发使用免费授权,只有开发商业软件 才需要购买商业授权。但是社区的一些人开始担心Qt的未来。 特别是RedHat这样的大公司,不希望Linux桌面被一家挪威公司掐住咽喉。于是 RedHat 伙同 IBM ,再拉上其他公司\textbf{资助}了另一个项目:GNOME。
没有大公司的资助GNOME从一开始就不会存在。所谓兵马未动粮草先行嘛。GNOME名义为社区项 目,实际上参与GNOME开发的人有大量是Linux界有影响力的大公司的全职员工。 特别是RedHat派出了数量最多的人员参与了GNOME项目。因此在一些人当中流传GNOME是RedHat 项目的说法。这当然是无稽之谈,不过GNOME获得大公司的资金和人员上的直接资助是事实。
GNOME为了避免KDE依赖于一个私有的Qt软件的弊端,选择了Gtk作为其GUI界面库。GTK是GIMP 的副产品。全称为 Gimp Tool Kit。是为了开发GIMP而编写的一个UI库。同Qt一样是对Xlib的一次包 装。 和Qt不同的是Gtk采用C语言开发。
相比采用不标准的C++语言, GNOME选择了同Gtk一样使用C语言进行开发。当时C++还不是一个标准 语言,使用C++的开发者并没有C语言多。所以从一开始GNOME的选择就能吸引更多的社区开发 者。
\begin{notice} 注意:C++语言的第一个标准是在 1998 年通过的,又叫C++98标准。第二个C++标准是2011年通过 的,叫C++11。有人会提到2003年通过的C++03,那个是对标准库的一次扩充和修正,语言本身没 有变化。 所以KDE创立于1996年,实际上是在使用一个没有标准的语言。标准要到2年后才有。 \end{notice}
由于没有协议的问题,GNOME获得了飞快的发展。从1997年立项开始没过多久,就迅速的变成各 大发行版的默认桌面环境。
GNOME的目的是提供一个完全自由的桌面。通过使用完全GPL的Gtk进行开发,GNOME规避了KDE 可能遇到的潜在风险。为了应对这件事,Troll Tech宣布Qt以GPL许可发布。Qt正式开始了GPL和商 业授权的双授权模式。可以说,Qt采用GPL协议后,GNOME事实上已经没有存在的必要了。而Qt最 后被Nokia收购的时候,更是采用了LGPL协议发布,连开发商业软件都不再需要购买授权了。
重重危机下,也许是GNOME推出失败之作Gnome-Shell的原因吧!