Desculpem o post meio longo, mas acho que esta questão de Gonome x Kde deveria ser melhor investigada.
Essa questão é muito antiga, mas sempre causa discussões inflamadas. Passei a usar o Gnome a partir da versão 2 como meu desktop principal, mas tenho uma partição com Linux+Kde que uso com menor freqüência.
Geralmente nas discussões, muitos defendem que é uma questão de gosto o uso de um ou outro. Realmente, ambos tem lá suas vantagens e desvantagens. Mas o que me intrigou foi o forte movimento por volta do ano 2000, das grandes empresas em direção ao Gnome. Foi também nessa época que a biblioteca Qt (a base do Kde) deixou de ter uma licença exclusivamente proprietária adotando um modelo dual (GPL + Comercial). Foi essa licença proprietária que fez nascer o projeto do Gnome.
Como atuo na área educacional e de treinamento (além de alguma consultoria) procurei acompanhar o desenrolar dos fatos e procurar as razões da guinada em direção ao Gnome das grandes companhias tais como Red Hat, IBM, Sun, HP, Novell, etc. Geralmente as empresas que usam Linux no Desktop definem apenas uma das duas interfaces a ser suportada internamente, por razões óbvias e estava preocupado com o que dizer quando era chamado a emitir opinião sobre qual delas adotar.
Hoje, na minha percepção, o Gnome com sua simplicidade casa melhor com o desktop corporativo, principalmente a partir da versão 2.8.
Ao longo desse tempo fui colecionando os argumentos pró e contra o Gnome afim de entender a preferência dessas grandes corporações citadas anteriormente que podem ser resumidas assim:
a) Licença da biblioteca
- A biblioteca QT do Kde é licenciada sob a GPL ou uma licença comercial (US$ 1.500/ano por desenvolvedor). Ou seja: ao desenvolver para KDE seu programa deverá ser obrigatoriamente GPL, caso contrário você terá que comprar uma licença da Troltech. Já a biblioteca GTK usada pelo Gnome é licenciada sob LGPL, portanto seu programa poderá adotar qualquer licença, inclusive uma proprietária
(Isto deve atrair muita gente. Talvez este item não seja tão relevante para as grandes corporações que tem muito dinheiro, mas para as pequenas empresas e para os desenvolvedores individuais, certamente é).
b) Controle sobre a biblioteca.
- A biblioteca QT do Kde é controlada pela Troltech, já a GTK do Gnome é controlada pela comunidade. Provavelmente as corporações não estão muito inclinadas a se sujeitarem ao controle de uma única empresa quando definem seus projetos de milhares de dólares. Há um monte de exemplos históricos indicando que é melhor evitar esse tipo de dependência.
Aqui também entra um problema sério com as bibliotecas Qt que é a ABI do C++
(é isso mesmo ABI e não API. Será detalhado mais adiante).c) Linguagem C versus C++
- A biblioteca Qt é baseada na linguagem C++, enquanto a biblioteca GTK+ é baseada na linguagem C, o que facilita muito o "binding" com praticamente qualquer linguagem de programação, sem os pesadelos da ABI C++;
d) Tecnologia de componentes
- A tecnologia de componente utilizada pelo KDE (Kparts), não é compatível com o padrão que é CORBA. Este último é utilizado no Gnome. Para uma aplicação limitada ao desktop isto não representa grande limitação, mas este não é exatamente o ambiente pensado nas corporações que apoiam o Gnome.
e) C++ STL versus QTL
- A biblioteca QT, ao invés de usar a STL padrão do C++ vem com uma STL própria (QTL) com classes equivalentes (Qlist, etc.). Já as biblioteca GTK, apesar da monstruosidade do modelo orientado a objeto na linguagem C e não menos monstruosa API, tem o
gtkmm, um excelente C++ Wrapper em torno da API GTK e que usa extensivamente a STL padrão. E para desenvolvimento direcionado para o Gnome temos ainda a
gnomemm, tudo pertencendo à grande família C (GNU toolchain, X, GTK, GNOME).
f) C++ ABI
- Aqui temos o pavor e pesadelo de desenvolvedores, com as constantes mudanças feitas pela Troltech na ABI (Application Binary Interface), quebrando qualquer aplicação binária lincada com as bibliotecas C++. Com isso, os desenvolvedores tem que recompilar e distribuir novamente suas aplicações a cada mudança. Certamente isto afasta as grandes corporações devido aos custos que isto acarreta.
Em contraste, eles podem desenvolver seu código usando a GNOME 2.0 ABI, o que lhes garante em média 5 anos de estabilidade.
( ABI define uma interface de baixo nível entre o programa aplicativo e o sistema operacional, entre a aplicação e suas bibliotecas ou entre componentes integrantes da aplicação. No mundo Unix/Linux ainda não existe um padrão para a ABI para C++).
Ver:
http://en.wikipedia.org/wiki/Application_binary_interface ;
http://developers.sun.com/sunstudio/articles/CC_abi/CC_abi_content.html ;
Important note to C++ developers em
http://autopackage.org/developer-quickstart.html
Quanto à questão de utilitários para personalização da interface do Gnome, uma das críticas do Linus Torvalds, isto não tem tanto peso no ambiente corporativo, por outro lado, o administrador do sistema pode fazer muita coisa com o que existe e pode ainda facilitar sua vida escrevendo alguns shell scripts, tornando menos penoso manter dezenas ou centenas de instalações padronizadas, o que por sua vez facilita o suporte.
Portanto diante dos diversos argumentos coletados e expostos acima, em um ambiente profissional, acredito que é muito leviano escolher um dos ambientes em razão de preferências pessoais. Já para uso pessoal, este argumento talvez seja perfeitamente válido.
Para usuários novos geralmente recomendo o uso do Gnome, já que há perspectiva de que este seja o ambiente que ele vai encontrar no ambiente de trabalho e muitos deles não tem disposição para aprender a usar as duas interfaces. Reconheço que no Brasil ainda prevalece o Kde, mesmo no ambiente corporativo. Mas no médio prazo, provavelmente seguiremos a tendência internacional devido ao peso do investimento das grandes corporações. Espera-se também que o Gnome continue evoluindo, realmente ele precisa disso.