
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.
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"

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 à...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.