GNUstep : un environnement de développement multiplateforme, orienté objet, à code source ouvert
basées sur la spécification originale OpenStep développé par NeXT

GNUstep est un ensemble de bibliothèques Objective-C polyvalentes basées sur la spécification originale OpenStep développé par NeXT (maintenant propriété d'Apple et incorporée dans Mac OS X). Il fournit un framework de développement d'applications orientées objet et un ensemble d'outils à utiliser sur une grande variété de plateformes informatiques. En savoir plus sur le projet GNUstep, les alternatives, etc.

Quelques rappels sur comment le projet GNUstep a vu le jour

Après avoir quitté Apple, le feu Steve Jobs a créé une nouvelle société, NeXT, dans le but de produire l'ordinateur parfait. En 1989, le système d'exploitation de cette machine, nommé NeXTStep, a été publié. Bien qu'il ne soit initialement disponible que sur le NeXT Cube, NeXTStep a eu une grande influence. Le premier navigateur Web, WorldWideWeb (rebaptisé plus tard Nexus), a été développé sur cette machine. (L'auteur, Tim Berners-Lee, a affirmé que son navigateur n'aurait pas été possible sans le superbe environnement de développement de NeXTStep.) Parmi les autres logiciels développés sur les machines NeXT figure Doom.

Nom : gorm_dark_1300x650.png
Affichages : 5331
Taille : 165,4 Ko

Quelques années plus tard, en 1993, NeXT s'est associé à Sun pour produire la spécification OpenStep. Il s'agissait d'une version simplifiée des API de NeXT, destinée au développement multiplateforme. Elle était divisée en deux composants :

  • le Foundation Kit fournissait des bibliothèques de bas niveau, comme les chaînes de caractères, les tableaux associatifs et les entrées/sorties de fichiers ;
  • les kits d'application fournissaient une boîte à outils d'interface graphique et des services associés ;


Sun a brièvement pris en charge OpenStep sur Solaris, tandis que NeXT a publié une nouvelle version de son système d'exploitation, confusément appelée OPENSTEP, qui a été mise à disposition pour un certain nombre d'architectures, y compris x86. NeXT a également fourni une implémentation de la spécification qui fonctionnait sous Windows. À l'époque, le projet GNU s'est montré très intéressé par le système NeXT. Beaucoup considéraient OPENSTEP comme le système d'exploitation UNIX idéal. Pendant un certain temps, le système d'exploitation GNU était destiné à être très similaire à NeXTStep.

Le noyau GNU HURD était basé sur les mêmes fondements Mach que NeXTStep, mais avec une conception plus ambitieuse. La couche d'interface graphique aurait été fournie par une implémentation GNU des API de NeXT. Le projet GNUstep a véritablement pris de l'ampleur après la publication de la spécification OpenStep en 1994, mais souffrait de quelques problèmes. L'un des problèmes majeurs de GNUstep était le fait que très peu de développeurs avaient été exposés à NeXTStep ou OPENSTEP. Puis vint le rachat d'Apple par NeXT, ce qui a permis de baisser le prix du matériel NeXT et populariser le système d'exploitation NeXTStep.

Comme de plus en plus de développeurs se sont habitués à l'élégance de l'API OpenStep grâce à l'implémentation d'Apple, connue sous le nom de Cocoa, l'intérêt pour le projet a été ravivé. Dans les années 2000, GNUstep implémente plus ou moins toute la spécification originale d'OpenStep ainsi que plusieurs extensions d'OS X.

Qu'est-ce que GNUstep et quelles sont ses caractéristiques ?

Le noyau de GNUstep fournit une version open source des API et des outils de Cocoa qui prend en charge plusieurs plateformes populaires. GNUstep fournit une implémentation robuste des bibliothèques AppKit et Foundation ainsi que des outils de développement, notamment le concepteur d'interface avancé Gorm (l'InterfaceBuilder) et l'IDE ProjectCenter (ProjectBuilder/Xcode).

GNUstep cherche à être compatible avec le code source de Cocoa, il peut donc être utilisé pour développer et construire des applications multiplateformes entre les plateformes Macintosh (Cocoa), Unix (Solaris) et Unix-like (GNU/Linux et GNU/Hurd, NetBSD, OpenBSD, FreeBSD) ainsi que Windows. GNUstep n'est pas écrit en C. Le principal langage de développement de GNUstep est l'Objective-C, mais GNUstep ne s'y limite pas.

Les bibliothèques GNUstep sont couvertes par la licence publique GNU Lesser (Library). Cela signifie généralement que vous pouvez utiliser ces bibliothèques dans n'importe quel programme (même les programmes non libres) sans affecter la licence de votre programme ou de toute autre bibliothèque avec laquelle GNUstep est lié. Si vous distribuez les bibliothèques GNUstep avec votre programme, vous devez rendre librement disponibles les améliorations que vous avez apportées aux bibliothèques GNUstep. Les outils autonomes de GNUstep sont sous licence GPL standard.

GNUstep n'est pas un gestionnaire de fenêtres

Il y a souvent une certaine confusion sur ce qu'est exactement GNUstep. GNUstep est un environnement de développement. C'est un ensemble de bibliothèques et d'outils de développement qui peuvent être utilisés pour écrire des applications. Le gestionnaire de fenêtres le plus couramment utilisé avec les environnements GNUstep est WindowMaker, bien qu'il n'utilise pas réellement GNUstep.

Il utilise plutôt une bibliothèque appelée WINGS (WINGS Is Not GNUstep) pour implémenter certaines des fonctionnalités de GNUstep en C. GNUstep n'est pas non plus "WINE pour OS X". GNUstep implémente une grande partie des fonctionnalités d'OS X, mais au niveau de l'API. Il est important de noter que les ABI sont très différentes, du fait qu'Apple maintient son propre moteur d'exécution Objective-C plutôt que d'utiliser la version GNU.


GNUstep n'est pas un bureau ni un clone de système d'exploitation

Le projet GNUstep fournit plusieurs applications officielles par défaut, comme un gestionnaire d'espace de travail et une application de préférences, mais le projet GNUstep lui-même n'est pas un projet de bureau. Plusieurs applications GNUstep ont été écrites pour fournir une expérience utilisateur puissante pour travailler sur votre ordinateur. La plupart d'entre elles sont fournies par le projet GNUstep.

Il existe des projets distincts pour fournir une expérience complète de bureau avec GNUstep en l'étendant et en s'appuyant sur lui, chacun ayant une philosophie différente. En outre, GNUstep n'est pas un clone de système d'exploitation. Ce n'est pas une distribution de GNU/Linux, FreeBSD ou de tout autre système d'exploitation, ni maintenant ni dans le futur. Bien que d'autres personnes puissent décider d'empaqueter un système d'exploitation avec GNUstep comme interface utilisateur.

Pourquoi devrais-je utiliser GNUstep ?

Selon l'équipe de développement du projet, GNUstep fournit un cadre excellent et mature pour écrire de bonnes applications. « Il y a de bonnes preuves anecdotiques que les développeurs Cocoa ont écrit des applications commerciales très complexes en quelques semaines ou mois, plutôt que des années (ou souvent, jamais) dans le cas d'autres environnements de développement. En utilisant l'application de modélisation d'interface visuelle, vous pouvez construire un squelette d'interface utilisateur décent en un jour ou deux, sans codage », ont écrit les développeurs de GNUstep.

Pourquoi ne pas simplement utiliser GNOME/KDE, X11 et C/C++ ?

Selon l'équipe, GNUstep fonctionne avec GNOME, KDE, ainsi qu'avec de nombreux gestionnaires de fenêtres basés sur X11. GNUstep fonctionne au-dessus de X11. Vous pouvez toujours programmer en C (puisque l'Objective-C est un pur surensemble du C), et GCC supportera éventuellement le mélange de code C++ et Objective-C dans le même fichier.

Elle estime que GNUstep vous permet de développer des applications multiplateformes sans avoir à développer de toutes pièces un framework indépendant du système d'exploitation. Il vous offre de nombreuses fonctionnalités, notamment des panneaux de polices, des chaînes Unicode, et même des objets distribués.

Quelques alternatives à GNUstep

GNUstep est décrit comme ''le cadre de base qui fournit une version open source des API et des outils de Cocoa (anciennement connu sous le nom d'OpenStep) pour autant de plateformes que possible''. Bien qu'il n'est pas considéré comme un gestionnaire de fenêtres, plusieurs alternatives lui sont citées, pour une variété de plateformes. Selon certains, la meilleure alternative est KDE Plasma, qui est à la fois gratuit et open source. D'autres alternatives sont GNOME (gratuit, Open Source), Xfce (gratuit, Open Source), Cinnamon (gratuit, Open Source) et MATE (gratuit, Open Source).

KDE Plasma

Plasma est l'espace de travail de KDE. Il s'agit en fait d'une technologie qui peut s'adapter à de nombreux types d'appareils. Il existe actuellement deux variétés de Plasma : l'environnement Plasma Desktop et Plasma Mobile, le nouvel environnement pour les pads (pour "prêt à diffuser") et les smartphones. Les "widgets" constituent une partie importante de Plasma. Les widgets sont les unités individuelles du bureau et comprennent (sans s'y limiter) le menu des applications, les icônes, la barre d'état système, l'horloge, etc.

Les widgets peuvent exister sur le bureau lui-même, ou être insérés dans le panneau, sur l'écran de veille ou sur le tableau de bord, entre autres. Il existe des widgets pour un grand nombre de tâches autres que les aides habituelles du bureau, notamment le microblogging (Twitter, identi.ca), les calculatrices de conversion d'unités, les prévisions météorologiques, le partage de fichiers et bien plus encore. Les panneaux et les bureaux sont également des types particuliers de widgets, destinés à contenir d'autres widgets.

GNOME

Selon l'équipe de développement, GNOME 3 a été conçu pour offrir la meilleure expérience informatique possible. Chaque partie de GNOME 3 a été conçue pour être simple et facile à utiliser. L'aperçu des activités est un moyen facile d'accéder à toutes vos tâches de base. Il suffit d'appuyer sur un bouton pour afficher vos fenêtres ouvertes, lancer des applications ou vérifier si vous avez de nouveaux messages. Tout avoir en un seul endroit est pratique et signifie que vous n'avez pas à apprendre à vous y retrouver dans un dédale de technologies différentes.

GNOME 3 fournit un environnement de travail ciblé qui vous aide à accomplir vos tâches, et il est rempli de fonctionnalités qui vous rendront plus productif. Une fonction de recherche puissante vous permet d'accéder à tout votre travail à partir d'un seul endroit. Les fenêtres côte à côte facilitent l'affichage de plusieurs documents en même temps, et nous proposons même un moyen de désactiver les notifications lorsque vous devez vraiment vous concentrer sur la tâche à accomplir. GNOME 3 vous permet de faire ce que vous voulez sans vous gêner.

Il ne vous dérangera pas et ne vous harcèlera pas de demandes, et il a été conçu pour vous aider à gérer confortablement les notifications. Le système de messagerie vous permet de répondre rapidement aux notifications en place ou d'y revenir à un moment opportun. Cependant, Linus Torvalds, le créateur du noyau Linux, considérait l'expérience utilisateur de GNOME 3 comme "inacceptable". En 2011, dans une discussion sur Google+, le créateur de Linux a fait part de son mécontentement face à cette itération de l'environnement de bureau.

« Ce n'est pas vraiment une question de rendu de Gnome 3 (même si j'ai aussi des problèmes avec cela). C'est que l'expérience utilisateur de Gnome 3 est inacceptable ». Et de citer l'absence de raccourci sur le bureau, le passage obligé par le menu « activities » ou la complexité d'utilisation. « Sérieusement, j'ai demandé à d'autres développeurs. Ils pensent tous que c'est un truc de fou ». Torvalds avait donc décidé de migrer vers un autre environnement et avait porté son sur Xfce. « Un recul par rapport à Gnome 2, mais un grand pas en avant par rapport à Gnome 3 », avait-il déclaré à l'époque.

Xfce

Xfce (prononcé comme quatre lettres individuelles) est un environnement de bureau libre pour Unix et autres plateformes de type Unix, telles que Linux, Solaris et BSD. Il vise à être rapide et léger, tout en étant visuellement attrayant et facile à utiliser. Parmi ses principales caractéristiques figurent ses panneaux personnalisables sur lesquels les utilisateurs peuvent placer divers lanceurs ou plug-ins de panneaux.

Selon les utilisateurs, Xfce nécessite peu de ressources système et fonctionne donc plus rapidement sur les ordinateurs anciens ou plus lents que certains autres environnements de bureau, tels que KDE Plasma. Il n'est pas aussi léger que LXDE. Xfce est modérément configurable, mais son apparence est aussi un peu plus ancienne que celle des autres environnements de bureau basés sur GTK, notamment Gnome et Budgie. Cependant, il est mature, stable et bien supporté. Il peut être installé sur n'importe quelle distribution Linux en plus du bureau déjà disponible par défaut.

Xfce est l'environnement de bureau par défaut de Xubuntu et Manjaro, entre autres. « Je vous recommande d'utiliser Xfce si vous avez un vieil ordinateur qui a du mal à faire tourner KDE Plasma, Budgie, Deepin ou Gnome. Cependant, le cousin de Xfce, l'environnement de bureau MATE, a une disposition et une philosophie similaires, tout en étant un peu plus configurable », a déclaré un utilisateur.

Cinnamon

Cinnamon est un bureau Linux qui offre des fonctionnalités innovantes et une expérience utilisateur traditionnelle. La disposition du bureau est similaire à celle de GNOME 2 et la technologie sous-jacente est issue de GNOME Shell. L'accent est mis sur le fait de faire en sorte que les utilisateurs se sentent chez eux et de leur fournir une expérience de bureau facile à utiliser et confortable.

Source : GNUstep

Et vous ?

Quel est votre avis sur le sujet ?
Que pensez-vous de GNUstep ?
Avez-vous déjà utilisé GNUstep ? Si oui, partagez votre expérience.
Sinon, quelle alternative utilisez-vous ? Quelles sont les raisons qui justifient votre choix ?
Pensez-vous que le déclin de l'Objective-C va entraîner l'abandon de GNUstep par les développeurs ?

Voir aussi

Un développeur propose l'environnement de bureau Linux NEXTSPACE aux nostalgiques du système d'exploitation NeXTSTEP

L'équipe de GNOME Shell annonce la sortie de GNOME 3.38 qui apportera plusieurs améliorations à Mutter et bien d'autres fonctionnalités

Linus Torvalds : « L'expérience utilisateur de Gnome 3 est inacceptable », le créateur de Linux critique l'environnement de bureau et revient à Xfce