GNOME
Le projet GNOME pour GNU Network Object Model Environment est un des plus ambitieux projets actuels du monde du logiciel libre (c'est d'ailleurs un projet supporté par GNU). Le projet vise à concevoir un environnement de travail (desktop) destiné à l'utilisateur final, et facilement utilisable par n'importe qui.
D'un point de vue historique, le projet GNOME a été initié par Miguel De Icaza en réponse au projet KDE. Le principal problème du projet KDE n'était pas technique, mais résidait dans l'utilisation de la bibliothèque Qt. À l'époque, la licence propriétaire de cette bibliothèque rendait impossible l'utilisation du bureau KDE dans un système libre. Depuis, la licence de Qt a beaucoup évolué et semble satisfaire aux exigences d'un logiciel libre. Mais le projet GNOME ne se limite pas à l'élaboration d'un bureau sans Qt. Un grand nombre d'avantages techniques justifient son existence. Parmis celles-ci :
- GNOME est indépendant du langage. La bibliothèque graphique utilisée est GTK+, qui est utilisable avec un nombre conséquent de langages de programmation (utilisation de C principalement, mais aussi de C++, Scheme, Perl, ...). GTK+ est de plus beaucoup plus flexible que Qt.
- utilisation de CORBA pour communiquer entre les applications, et notion de composant
- le choix du gestionnaire de fenêtres est laissé à l'utilisateur
Il faut cependant admettre que le projet KDE est actuellement plus stable et rapide que le projet GNOME. Bien que très prometteur, le projet GNOME est arrivé plus tard dans la course et doit combler son retard.
Description
Le panel
L'application la plus marquante du bureau GNOME est le panel. Le panel est représenté sous la forme d'une barre, horizontale ou verticale, sur laquelle on peut placer toute sorte d'objets : des menus, des raccourcis vers des applications, des applets (petits programmes), et même d'autres panels :
Ci-contre une capture d'écran d'un panel assez chargé : plusieurs applets, donc un jeu et un poisson parleur, ainsi qu'un autre panel (à côté du logo GNOME). Remarquez l'abscence de l'applet du contrôle d'écrans virtuels (GNOME peut manipuler les écrans virtuels sur certains gestionnaires de fenêtres).
Le panel est un point de départ obligé vers les autres applications GNOME. D'une part, le menu principal du panel permet d'exécuter toutes les applications GNOME, mais de plus, les applications GNOME sont conçues pour communiquer avec lui. Il est par exemple possible d'utiliser le drag and drop pour y déposer des fichiers.
Comme la plupart des applications GNOME, le panel est sensible aux sessions de l'utilisateur. Cela implique que lorsque l'utilisateur modifie une propriété du panel, celle-ci est automatiquement sauvegardée de manière transparente. Dans le cas d'une application GNOME, la position des fenêtres peut de plus être sauvegardée pour une utilisation future.
Le gestionnaire de fichiers
Le gestionnaire de fichiers utilisé est Midnight Commander. Ce n'est pas un hasard car le créateur de Midnight Commander est Miguel De Icaza, l'initiateur du projet GNOME. Le gestionnaire de fichiers se présente sous la forme d'une application faisant office de navigateur d'arborescences de fichiers ou d'icônes stockées sur le fond de l'écran, qui permettent de faire référence à des programmes, des fichiers, des répertoires, des URL, ...
Notez que dans ce cas, vous avez besoin d'un gestionnaire de fenêtres (window manager) compatible avec GNOME (par exemple Window Maker ou Enlightenment). Les spécifications de compatibilité avec GNOME sont publiques, et plusieurs gestionnaires de fenêtres sont déja compatibles avec GNOME.
GNOME détermine généralement le type des fichiers qu'il manipule par le biais de leur extension, mais c'est MIME qu'il utilise pour spécifier leur format et leur nature, ce qui lui permet de communiquer de manière uniforme avec les applications GNOME (et de communiquer avec les applications non GNOME).
De plus, GNOME définit le VFS (pour système virtuel de fichiers). Le principe est d'accéder à n'importe quel type de système de fichiers de manière transparente, que ce soit un système de fichiers ext2, fat, iso9660, tar ou autre. À terme, il sera possible aux applications GNOME d'accéder au contenu d'une archive tar sans même le savoir !
GTK+
Les applications GNOME utilisent la bibliothèque GTK+ pour leur interface graphique. Cela leur donne une apparence et un comportement similaires face à l'utilisateur, d'autant plus que le projet GNOME à développé toute une série d'extensions à GTK+ (impression, dessin vectoriel, barres de menu, aide à l'utilisateur, ...) qui homogénéisent encore d'avantage ses applications.
GTK+ est implémenté par plusieurs langages, et pas uniquement le C qui est son implémentation native. Cela comprend Python, Perl, C++, Objective C et guile. De plus, il supporte plusieurs protocoles de drag and drop. Cerise sur le gâteau, il supporte l'utilisation de thèmes, ce qui permet de changer très rapidement l'aspect visuel de toutes les applications de GNOME, et sans les recompiler ni les redémarrer.
Les extensions GNOME permettent de fournir un comportement que l'utilisateur est en droit d'attendre de la part d'une interface moderne. Cela comprend :
- le support du drag and drop
- l'utilisation de MDI, ce qui permet aux applications GNOME d'ouvrir plusieurs documents en même temps et de déclarer des interfaces pour chacun d'entre eux (cela peut-être d'ouvrir plusieurs instances de fenêtres à la fois).
- l'uniformisation des boîtes de dialogue courantes (messages d'avertissement ou d'erreur, réglage des propriétés de l'application, procédures d'installation d'un périphérique ou d'un programme) et des barres de menu
- sauvegarde des positions des éléments de l'interface à travers les sessions
CORBA
CORBA est un bus de données qui permet à différentes applications de communiquer entre elles. Le principe est que chaque application utilisant CORBA déclare des interfaces publiques, ce qui lui permet d'échanger des données avec une autre application utilisant cette interface (on peut effectuer des comparaisons avec les distributeurs automatiques de marchandises).
L'utilisation de CORBA permet aux applications GNOME de se transmettre mutuellement des données. Par exemple, il est possible à chaque application d'envoyer un courrier électronique à partir de ses données propres en utilisant un objet mailer. L'avantage est que cette application n'a pas besoin de savoir comment le mailer fonctionne, ni même de savoir où et comment il est installé.
En effet, CORBA étant un bus de données, il permet d'échanger des informations à travers un réseau de manière transparente, et peut même permettre d'échanger des données entre des applications écrites dans des langages différents (à condition bien sûr que CORBA soit implémenté par ce langage).
Plus récemment, le projet GNOME à conçu l'architecture Bonobo. Il s'agit de définir des composants graphiques réutilisables. Plutôt que d'implémenter tous les composants possibles et imaginables, une application GNOME peut se contenter de définir les appels à un objet Bonobo et de l'utiliser tel quel. Il est ainsi possible à un tableur d'inclure un objet graphe, et de lui indiquer quelles sont les valeurs qu'il doit afficher.
GNOME Workshop
Le projet GNOME Workshop est en fait un 'meta-projet'. Le but est de coordonner les efforts de développeurs et de produire une suite bureautique au sens large pour le projet GNOME. Cela comprend :
- un traitement de texte (GWP, GO et AbiWord)
- un tableur (Gnumeric)
- un logiciel de tracé de graphes (Guppi)
- un calculateur scientifique (Genius)
- un logiciel de dessin vectoriel (Gyve)
- un logiciel de dessin en mode point (Gimp)
Si certains de ces programmes sont déjà stables et utilisables, le projet entier ne fait que commencer, et l'intégration du tout n'en est qu'au commencement.
Licence
La licence de GNOME est bien entendu la GPL. Vous en trouverez une copie sur le site web de GNU, et une traduction non officielle sur le site web d'APRIL.
Disponibilité
Vous pouvez télécharger GNOME sur le site FTP ftp.gnome.org, ou sur un de ses miroirs. En France :
Captures d'écran
GNOME sur un moniteur 640x480, c'est possible !
Capture tirée de www.gnome.org