Bonjour tout le monde !
Avant toute chose, je tiens à préciser que cette news se veut un complément à celle publiée récemment vous annonçant une
nouvelle version de GNUstep.
GNUstep est un environnement de bureau au même titre que
Gnome,
Kde ou
Xfce. Très prisé dans les milieux informatiques, il tire ses origines d'
OpenStep, l'ancêtre de
Mac Os X. Le projet souffre malheureusement de méconnaissance et je vous propose de découvrir aujourd'hui un environement idéal pour la programmation.
Origines :
C'est en 1985 que
Steve Jobs fonde une des compagnies qui allait révolutionner l'informatique moderne :
NeXT Computer. À l'instar d'
Apple, elle concevait son matériel, son système d'exploitation et ses programmes utilisateurs pour fournir une qualité incomparable. Dans cette optique, les développeurs ont créé NexTStep, un environnement graphique basé sur des concepts innovants (et qui se sont vite imposés comme des standards pour les interfaces utilisateurs). NeXT publia ensuite les spécifications de cet environnement sous le nom d'OpenStep de manière à faciliter son implémentation sur d'autres plateformes. L'entreprise souffrait de problèmes financiers et fut rachetée par
Apple (qui poursuivit l'élaboration d'OpenStep pour aboutir à
Cocoa, un des meilleurs
framework existant).
Grâce à la publication d'OpenStep, il devenait possible de réimplémenter ce fabuleux environnement sous licence libre. GNUstep naquit donc, dans l'ombre, pendant que Gnome et Kde enflammaient les foules. Pourtant, malgré le manque de développeurs, GNUstep a rapidemment atteint sa maturité

.
Si le framework est presque complet selon les normes OpenStep, il n'est actuellement utilisé que par des informaticiens : les programmes disponibles sont peu nombreux, et concernent presque toujours le développement d'applications. Le point positif, c'est qu'ils sont d'une qualité incomparable et qu'ils permettent de coder plus vite, et mieux

.
Objective-C
Les libraries et les applications GNUstep sont majoritairement developpées en Objective-C. Ce dernier implemente la
logique objet de
SmallTalk dans le
langage c, ce qui le rend particulièrement intéressant pour les interfaces graphiques et les projets de grande envergure. À la difference du
c++, l'
obj-c n'est pas une machine à gaz : son but n'est pas de rendre le C plus simple, mais d'y ajouter une (seule et unique) fonctionnalité.
Heureusement, l'obj-c n'est pas la seule alternative disponible pour le développement, puisque que les langages c/c++,
java ou même
python sont compatibles avec le framework (parmi beaucoup d'autres). La diversité est importante, surtout en informatique

.
Toutefois, le principal avantage de l'obj-c tient dans sa souplesse : le
typage dynamique des objets permet de réaliser facilement des applications extensibles. En pratique, cela signifie que l'ajout d'un plugin est transparent pour l'utilisateur : il n'est pas nécesssaire de redémarrer l'application. Et au niveau du développement, le code source n'a pas besoin d'être modifié puisqu'il s'agit d'une fonctionnalité standard du langage (bien sûr, c'est égalemment réalisable en c++ mais d'une manière beaucoup plus complexe).
Toute la philosophie OpenStep repose d'ailleurs sur cet atout du langage : son
logo représente la construction d'un édifice grâce à des composants (symbolisés par des cubes) qui peuvent être modifiés et déplacés durant l'exécution. La construction finale représente l'environement, et doit donc être considérée comme une énorme bibliotheque modulable

.
Un environnement de développement :
GNUstep possède enormément d'avantages en tant qu'environement de bureau, puisqu'il est à la fois ergonomique, fonctionnel et léger. Malheureusement, il est trop peu connu et manque donc d'applications nécéssaires aux particuliers.
Par contre, si vous êtes programmeur, les chances qu'il vous plaise sont nombreuses

.
GNUstep est multiplateforme : il tourne aussi bien sur la majorité des Unix que sur Windows. Il est également totalement compatible avec Mac Os X, puisqu'il n'est pas necéssaire de modifier le code source pour porter un logiciel GNUstep vers cet
OS 
. Ainsi, le logiciel
GNUMail fonctionne nativemment sur GNUstep
et Mac Os X (grâce aux standards imposés par OpenStep

).
(GNUMail sur linux et mac)
Par ailleurs, le développement d'applications sur GNUstep respecte sa philosophie : le programmeur développe des nouveaux composants (des librairies) qu'il assemble ensuite pour créer son programme. Le résultat est très logique et particulièrement agréable à coder

.
Tout cela ne serait pas possible sans
Gorm, un modeleur d'interfaces très puissant. C'est via cette outil que l'on relit les composants entre eux, visuellement, grâce à des
drags-and-drops et au
StepTalk. Si vous avez déja utilisé
Glade, il lui ressemble par endroits.
En effet, Gorm va bien plus loin : durant toute la phase de développement, il s'arrange pour décharger le programmeur des contraintes d'utilisation du logiciel (de la gestion de la gui et des interactions utilisateurs). Cette technologie se base sur les avantages des langages objets, et permet donc une modularité totale des codes sources

.
Le principe de Gorm est un peu difficile à comprendre, et je vous invite donc à regarder les vidéos de démonstrations qui fleurissent un peu partout sur la toile

.
Récemment, une nouvelle version de Gorm a été publiée : elle intègre à présent le format
.nib utilisé par
InterfaceBuilder, son équivalent Mac Os X. Cette nouveauté est un grand pas en avant pour la compatiblité multios : dans l'avenir, il sera sûrement possible d'utiliser d'avantages de logiciels Mac sur Linux

(et Windows).
What's NeXT ?
GNUstep poursuit sa longue progression, et séduit chaque jour de nouveaux développeurs. Le groupe le plus actif se nomme
Etoilé, et réalise les programmes qui manquent pour concurrencer Gnome et KDE auprès des particuliers. Ils sont également à la base d'un moteur de thèmes qui permet de personnaliser l'interface «grise et carcérale» qui repousse encore certains.
En espérant que cette introduction à GNUstep vous a plu, je vous invite à l'essayer via un
live-cd*, ou à l'
installer sur votre ordinateur. Vous pouvez égalemment visionner la
superbe vidéo de presentation de NeXTStep par Steve Jobs pour avoir une petite idée de son fonctionnement

.
* les live-cds permettent d'essayer un OS (le plus souvent Linux) sur votre ordinateur sans rien y installer, de manière à savoir s'il vous plaît
: il est par contre nécessaire de télécharger un fichier image, et de le graver un cdrom (ensuite, il suffit de redemarrer ^_^).