original in en Georges Tarbouriech
en to fr Georges Tarbouriech
Georges est un vieil utilisateur d'Unix. Il adore GNUstep et les outils propos�s par cet excellent environnement de d�veloppement.
RAD signifie Rapid Application Development (d�veloppement rapide d'application). A la fin des ann�es 80, lors de l'apparition de NeXTstep, celui-ci proposait un incroyable outil nomm� InterfaceBuilder. Utilis� conjointement � un autre outil appel� ProjectBuilder, il permettait de d�velopper des applications graphiques en un clin d'oeil. GNUstep propose une version libre de ces outils, Gorm.app et ProjectCenter.app.
D�s la pr�histoire des ordinateurs, le d�veloppement logiciel a �t�
un �norme d�fi. Les ordinateurs �taient tr�s volumineux malgr� leur faible
puissance. Ils �taient tr�s chers, pas vraiment nombreux et les d�veloppeurs ne
pouvaient pas les utiliser aussi souvent qu'ils l'auraient voulu puisqu'ils
devaient les partager avec d'autres. Les chercheurs ont alors essay� de trouver
un moyen de faire accomplir � ces ordinateurs plus d'une t�che � la fois afin
d'am�liorer leur efficacit�. De toute �vidence, ils devaient partir de z�ro pour
concevoir des langages de programmation, prenant en consid�ration les faibles
ressources des machines disponibles.
Ainsi, pendant les ann�es 60 de nombreux langages de programmation sont apparus
: LISP, FORTRAN, BASIC, Algol68, BCPL, etc. Vint ensuite le langage B d�riv�
du BCPL mentionn� ci-dessus, qui devait bient�t devenir le langage C.
Ce dernier a chang� le monde de la programmation.
Les langages orient�s Objet (SmallTalk, Objective C, C++, etc) sont arriv�s plus
tard avec "l'�re graphique".
Dans les ann�es 80, quelques machines disposaient d'OS graphiques
(Apple Macintosh, Commodore Amiga, Atari ST, etc) et le X Window System �tait en
plein d�veloppement. A cette �poque, une soci�t� travaillait sur une interface
graphique pour l'OS2 d'IBM appel�e Presentation Manager. Avant de finir son
travail, cette soci�t� a "sorti" sa "propre" interface graphique pour son DOS,
appel�e... Windos. Les deux premi�res versions �taient pratiquement
inutilisables, mais... la troisi�me a d�marr� le processus. L'ItAM (Intelligence
tr�s Artificielle de Microsoft) �tait n�e !
En clair, chaque utilisateur devint un informaticien. A partir de l� nous avons
vu appara�tre des applications "g�niales" �crites en utilsant Excel ou Word et
VisualBasic :-(
N'en parlons plus !
Heureusement, bien avant d'atteindre cette situation, NeXTstep �tait n� et avec
lui apparaissait InterfaceBuilder. Cet outil permettait de construire une
interface graphique pour votre application dans un temps tr�s bref et avec une
grande facilit�. A partir de l�, ce genre d'outil s'est multipli�. Parmi
beaucoup d'autres, nous pouvons citer Omnis, 4D, Delphi, Kylix, etc.
Quelques uns sont multi-plateformes alors que la grande majorit� est d�di�e �
Windos. Mentionnons �galement qu'il existe des outils libres suivant la m�me
philosophie, Gtk (Gimp Tool Kit) par exemple. Les Unixes propri�taires proposent
aussi ce genre d'outils.
La caract�ristique principale de ces outils c'est que vous n'avez pas besoin
d'�crire le code des 200 fen�tres de votre application mais seulement celui
servant � g�rer les donn�es.
Que vous aimiez ou non ce type d'outil n'est pas le probl�me. Le temps de
d�veloppement est court : c'est un fait (d'o� le nom, "Rapid Application Development").
GNUstep nous propose des outils RAD.
Il se nomment Gorm et ProjectCenter. Certes, ces outils sont tr�s "jeunes" mais
ils fonctionnent. Regardons-les de plus pr�s.
Pour pouvoir utiliser Gorm et ProjectCenter, vous devez installer GNUstep.
Comment le faire n'entre pas dans le cadre de cet article. Vous trouverez tout
le n�cessaire sur le site de GNUstep. Ceci
inclut le code source, des HOWTOs, des tutoriels, etc.
Vous pouvez aussi jeter un oeil sur ces articles : GNUstep, l'OpenStep open source et GNUMail.app, la preuve de portabilit�.
Les tests pour cet article ont �t� r�alis�s sous FreeBSD 4.7 avec Window Maker
0.80.1 en utilisant gnustep-make-1.5.0, gnustep-base-1.5.0, gnustep-gui-0.8.2 et
gnustep-back-0.8.2. Ces derniers sont les versions instables de GNUstep les plus
r�centes. Vous pouvez bien s�r utiliser les versions stables si vous pr�f�rez.
Enfin, nous avons utilis� le compilateur gcc 3.0.4.
Gorm signifie Graphic Object Relationship Modeler (ou peut-�tre GNUstep Object
Relationship Modeler, comme indiqu� dans le fichier README). C'est un clone de
l'InterfaceBuilder de NeXTstep (ou aujourd'hui MacOS X) mentionn� plus haut.
Gorm est l'oeuvre de Richard Frith-Macdonald qui a d�marr� le projet.
Aujourd'hui, Gregory Casamento est le nouveau mainteneur et il fait le plus gros
du travail avec Pierre-Yves Rivaille. La version actuelle est 0.1.9.
Vous pouvez obtenir les derni�res am�liorations par CVS sur http://savannah.gnu.org/projects/gnustep.
Vous pouvez t�l�charger la derni�re version stable � partir du site de GNUstep.
La philosophie de Gorm (et d'InterfaceBuilder) consiste � proposer �
l'utilisateur des objets dispos�s sur des palettes et � les glisser sur des
fen�tres vides afin de concevoir la partie graphique d'une application.
Les objets peuvent �tre des boutons, des champs, des cases � cocher, des
panneaux, etc. Autrement dit, tout ce que vous pouvez ajouter � une fen�tre pour
la rendre conviviale. Ensuite vous modifiez ces objets gr�ce aux inspecteurs.
Les inspecteurs permettent de changer les attributs, de d�finir des connexions,
des tailles, une aide, et de manipuler des classes pour les objets s�lectionn�s.
Apr�s avoir cr�� une classe, vous pouvez ajouter des "outlets" ("canaux") et des
actions aux objets.
Ensuite vous devez instancier la classe, ce qui cr�e un nouvel objet
(l'instance) dans la fen�tre principale de Gorm, et vous connectez les "outlets"
et les actions aux composants correspondants. Vous faites ceci en glissant, tout
en maintenant la touche Ctrl enfonc�e, depuis l'instance vers l'objet pour
connecter les "outlets" et depuis l'objet vers l'instance pour connecter les
actions. Enfin, vous cr�ez le squelette des fichiers source de la classe et
c'est tout. Nous y reviendrons.
ProjectCenter, comme le nom l'indique, est le "coeur" d'un projet. C'est un
clone de Project Builder trouv� sous NeXTstep et Mac OS X.
ProjectCenter est l'oeuvre de Philippe C.D.Robert et la version actuelle est
0.3.0. Comme Gorm, vous pouvez le t�l�charger depuis le site de GNUstep dans la
section Developper apps. Bien s�r, vous pouvez obtenir le dernier CVS : nous
l'utilisons pour cet article et il s'agit de la version 0.3.1.
A partir de ProjectCenter vous pouvez cr�er un projet, son interface (en
utilisant Gorm), �crire son code source; vous pouvez compiler le projet et
l'ex�cuter (le d�bogage n'est pas encore disponible). En bref, vous pouvez g�rer
toutes les ressources r�clam�es par le projet : code source, documentation,
biblioth�ques, sous-projets, interfaces, etc.
Lorsque vous cr�ez un nouveau projet, vous pouvez choisir son type. Vous avez le
choix entre application, "bundle" (paquet), outil, biblioth�que et application Gorm.
Entre autres choses, ProjectCenter vous propose un �diteur dans lequel vous
pourrez compl�ter le squelette du code g�n�r� par Gorm.
Comment Gorm et ProjectCenter fonctionnent-ils ensemble ? Tr�s bien, merci !
Plus s�rieusement, nous prendrons deux exemples pour l'illustrer.
Cet article n'est PAS un tutoriel. L'id�e est de montrer la facilit�
d'utilisation de ces outils tout en insistant sur le fait que vous pourrez vous
servir du m�me code pour GNUstep (c'est-�-dire un tas de plateformes Unix... et
si vous aimez "vous battre", sous Windos aussi) et sous MacOS X.
La seule chose que vous aurez � faire c'est de cr�er l'interface pour les
diff�rents syst�mes puisque les fichiers nib (InterfaceBuilder ou Gorm) ne sont
pas portables (au moins pour l'instant).
L'article sur GNUMail.app mentionn� pr�c�demment montrait la portabilit� du
point de vue de l'utilisateur. Celui-ci insiste sur le point de vue du
d�veloppeur, toujours avec la portabilit� pr�sente � l'esprit. Autrement dit,
dans GNUMail.app nous nous servons du travail de Ludovic et de ses amis et ici
nous concevons une application graphique pour GNUstep et MacOS X.
De nombreux tutoriels sont disponibles, que ce soit pour GNUstep ou MacOS X.
Vous pouvez acc�der � la plupart de ceux pour GNUstep depuis le site ou depuis
http://www.gnustep.net, mais citons-en
quelques uns.
- Une application avec Gorm
et ProjectCenter par Pierre-Yves Rivaille.
- La page de tutoriels deNicola Pero
- Un tutoriel plus ancien sur la cr�ation d'un �diteur HTML : http://stepwise.com/Articles/Technical/HTMLEditor/
Pour en apprendre davantage, vous pouvez aussi "�plucher" le code source, les
fichiers nib, etc, des applications GNUstep existantes
(Gorm, ProjectCenter, GNUMail, GWorkspace, etc) et bien �videmment les exemples
"gnustep-examples".
Parmi les nombreux tutoriels pour MacOS X et InterfaceBuilder disponibles sur
Internet, nous utiliserons celui qui suit comme premier mod�le :
http://www.macdevcenter.com/pub/a/mac/2001/05/18/cocoa.html.
L'auteur, Mike Beam a �crit bien d'autres tutoriels disponibles sur
http://www.macdevcenter.com/pub/ct/37.
Pourquoi celui-ci ? Parce qu'il vous permet d'obtenir un �diteur de texte
fonctionnel sans �crire la moindre ligne de code. Ceci montre la puissance de
ces outils de d�veloppement que ce soit sous MacOS X ou sous GNUstep.
Gr�ce � ProjectCenter et � Gorm, nous cr�ons un tr�s simple �diteur de texte
capable de couper, copier, et coller sous GNUstep. Evidemment, nous ne pourrons
pas sauvegarder notre travail: rappelez-vous, nous n'�crirons pas une seule
ligne de code. Avec ProjectBuilder et InterfaceBuilder sous MacOS X, nous ferons
la m�me chose. Certes, il reste beaucoup � faire pour am�liorer cet �diteur mais
nous r�serverons cela comme exercice pour le lecteur. Encore une fois, cet
article n'est pas un tutoriel !
Allons-y.
Ouvrez ProjectCenter.app et cr�ez un nouveau projet appel� Editor. Choisissez un
projet "Gorm Application" en bas de la fen�tre avant de sauvegarder le nom.
Ceci vous donne un �l�ment "Interfaces" dans la colonne gauche de ProjectCenter.
Cliquer sur Interfaces affiche Editor.gorm.
Double-cliquez Editor.gorm et Gorm.app s'ouvre. S�lectionnez la fen�tre
par d�faut (MyWindow) et en utilisant l'inspecteur changez le nom en
Editor dans Attributes.
Depuis la palette, glissez une "TextView" sur la fen�tre Editor. La VueTexte
(TextView) est l'objet le plus gros dans la palette que vous choisissez en
cliquant sur l'ic�ne la plus � droite en haut de la fen�tre Palettes.
Redimensionnez l'objet de mani�re � ce qu'il remplisse la fen�tre et c'est tout.
Dans l'inspecteur GormInternalViewEditor (avec le TextView s�lectionn�),
choisissez Size
et modifiez les valeurs de fa�on � ce qu'elles correspondent � celles de la
fen�tre Editor. Celles-ci sont obtenues de la m�me mani�re, en s�lectionnant la
fen�tre et en v�rifiant les tailles dans l'inspecteur GormNSWindow.
Si vous ne modifiez pas les valeurs X et Y, par exemple, vous ne pourrez pas
�crire sur toute la largeur de l'�diteur, que vous redimensionniez la fen�tre ou
pas.
Sauvegardez tout depuis le menu Document de Gorm et quittez pour revenir �
ProjectCenter. S�lectionnez l'ic�ne "Build" et cliquez sur la nouvelle ic�ne du
m�me nom dans la partie inf�rieure de la fen�tre. Tout devrait bien se passer si
vous avez d�fini les bonnes pr�f�rences pour le compilateur, le d�bogueur, etc.
Par exemple, sous FreeBSD, vous devez remplacer make par gmake (chemin inclus)
en cliquant dans l'ic�ne Settings de ProjectCenter. V�rifiez aussi les chemins
dans le menu Preferences de ProjectCenter.
Si la compilation a r�ussi (ce devrait �tre le cas !), faites la m�me chose avec
Run et vous verrez appara�tre l'application Editor. Amusez-vous avec en
�crivant, en coupant, en collant, etc. Bien s�r vous pourrez la relancer plus
tard en utilisant la commande openapp.
Combien de temps a dur� l'op�ration ? Je dirais quelques minutes.
Pas grand chose � ajouter puisque vous devez faire la m�me chose que ci-dessus.
Voici � quoi �a ressemble pendant la cr�ation de l'interface :
Choisissons un autre exemple de Mike Beam. Cette fois il s'agit d'une
application r�ellement fonctionnelle, capable de g�rer des donn�es : un carnet
d'adresses. Il est recommand� de lire le tutoriel de Mike pour comprendre comment
fonctionne la "chose". De m�me, v�rifiez la liste des tutoriels de Mike
puisqu'il propose diff�rentes �tapes du processus de d�veloppement pour une m�me
application afin de l'am�liorer.
De nouveau nous cr�ons et ex�cutons l'application sous GNUstep et MacOS X.
Comme vous l'avez fait pour l'�diteur, d�marrez ProjectCenter. S�lectionnez une
application Gorm et appelez-la AddressBook. Depuis ProjectCenter lancez Gorm en
double-cliquant dans Interfaces -> AddressBook.gorm. Glissez une VueTable
(TableView) de la palette vers la fen�tre par d�faut. En d'autres termes suivez
les indications de Mike comme vous le feriez sous MacOS X. Vous devrez adapter
quelques petites choses parce qu'elles fonctionnent diff�remment dans Gorm et
dans InterfaceBuilder.
Par exemple, le nombre de colonnes de la TableView ne peut pas �tre d�fini dans
l'inspecteur des attributs de Gorm. Pour faire simple, copiez une colonne et
collez-la � c�t� jusqu'� obtenir le nombre de colonnes requis (4 dans notre
cas). Vous devriez vous retrouver avec quelque chose de ce genre :
Mike Beam a fait tout le travail: que pourrais-je ajouter ?
Il est �vident que les outils de d�veloppement de GNUstep ne peuvent pas �tre
aussi avanc�s que ceux d'Apple. Apple et NeXT repr�sentent 15 ans d'exp�rience
et des centaines de d�veloppeurs. GNUstep est le travail (gratuit) de quelques
individualit�s qui doivent faire autre chose pour vivre. Par cons�quent, ne
soyez pas surpris de trouver beaucoup plus de classes disponibles dans
InterfaceBuilder que dans Gorm. Rappelez-vous, Gorm est � la version
0.1.9 (ou 0.2.0).
De plus, nous avons fait les tests de la mani�re la moins favorable.
C'est-�-dire, nous avons "port�" d'OS X vers GNUstep. Il aurait �t� plus facile
de le faire dans l'autre sens � cause des diff�rences entre les outils �voqu�es
ci-dessus.
Par exemple, porter des applications d�velopp�es sous MacOS X 10.2 serait plus
difficile puisque les outils de d�veloppement d'Apple ont beaucoup �volu�. Comme
d�j� dit, il y a beaucoup de nouvelles classes ou des classes plus �labor�es.
Toutefois, les outils reposent sur la m�me philosophie qu'ils fonctionnent sous
GNUstep ou MacOS X... et GNUstep s'am�liore tous les jours. Il y a une chose que
j'appr�cie beaucoup : les gens de GNUstep travaillent vraiment ensemble. Ils
s'aident mutuellement pour ce qui concerne les projets individuels mais ils
contribuent �galement � l'am�lioration de GNUstep proprement dit. C'est la fa�on
de travailler dans le logiciel libre que j'aime. F�licitations pour ce
comportement Mr.Fedor et vos amis.
Le but de cet article �tait de montrer la puissance des outils "RAD" de GNUstep,
Gorm.app et ProjectCenter.app. Malgr� leur "jeunesse" ils sont parfaitement
capables de vous permettre de d�velopper facilement des applications
sympathiques.
De plus, ces outils offrent une fa�on de travailler tr�s plaisante tout en
restant efficace. L'Objective C est un langage tr�s compact, et � mon avis, plus
facile � apprendre que le C++ pour quelqu'un connaissant le C (je sais, je l'ai
d�j� dit !). Ceci permet de d�velopper des applications esth�tiques (certes,
c'est une histoire de go�t, mais personnellement j'aime beaucoup) tout en
conservant une taille plut�t r�duite.
Je dois reconna�tre que je ne me suis jamais vraiment remis du choc caus� par ma
premi�re rencontre avec une machine NeXT. Le fait qu'Apple sorte une version
moderne de NeXTstep me ravit. C'est aussi pourquoi je suis un inconditionnel de
projets tels que GNUstep ou Window Maker. Toutefois, m�me si j'adore le logiciel
libre, je ne suis pas un "int�griste" et par cons�quent je n'ai rien contre le
logiciel propri�taire (bon, peut-�tre un peu envers un certain �diteur... mais
vraiment un peu !).
GNUstep peut b�n�ficier du travail d'Apple... mais Apple peut b�n�ficier de
celui de GNUstep aussi.
GNUstep n'est pas un concurrent d'Apple, c'est du logiciel libre. Que je sache,
le logiciel libre est largement utilis� dans MacOS X. Ceci pour dire qu'amener
encore plus de logiciel libre � Apple ne peut en aucun cas �tre une mauvaise
chose. Ce qu'ont fait Ludovic et ses amis avec GNUMail.app est un tr�s bon
exemple de ce qui pourrait se produire.
"J'ai fait un r�ve"... Apple fournissait la plupart du code source de ses outils
de d�veloppement � GNUstep. Les d�veloppeurs de GNUstep et d'Apple travaillaient
ensemble afin de fournir de superbes applications aux utilisateurs d'Unix. Et
petit � petit, les gens r�alisaient qu'ils pouvaient vivre sans Windos...
Malheureusement, ce n'�tait qu'un r�ve ;-)
Quoi qu'il en soit, si vous ne connaissez pas GNUstep et ses applications,
n'h�sitez pas � les essayer. GNUstep est un environnement de d�veloppement (� ne
pas confondre avec un environnement de bureau) et des outils tels que Gorm et
ProjectCenter vous fournissent tout le n�cessaire � la cr�ation, � l'invention.
En d'autres termes, avec un peu d'imagination, vous pouvez d�velopper des
"produits" tr�s diff�rents de ce que nous avons coutume de voir aujourd'hui :
des clones d'applications Windos !
Nous vivons une �poque formidable !
Aux personnes de GNUstep: A.Fedor, N.Pero, G.Casamento, P.Y.Rivaille, N.Roard, L.Marcotte,
R.Frith-Macdonald, P. C.D.Robert, E.Sersale, A.Froloff, F.Kiefer, M.Viviani,
M.Guesdon et tous ceux que j'ai oubli� pour le beau travail, qu'il s'agisse du
"framework" ou des applications.
Aux personnes de Window Maker : A.Kojima, D.Pascu et leurs comp�res de nous avoir
offert une interface NeXTstep libre pour X.
A J.M.Hullot et B.Serlet pour avoir invent� InterfaceBuilder.
A "Steve Jobs INC." pour NeXT, NeXTstep et MacOS X.
A tous ceux non cit�s ici qui ont contribu� � rendre notre vie professionnelle
beaucoup moins triste.