LINE - Septembre 1996


MooTif 2.0.1 - Infomagic

Osf Motif enfin democratise !


Retour a la page principale

Le systeme X-Window

Sous Unix, on a l'habitude de ne pas se melanger les pedales. Ainsi, X-Window n'est pas un systeme d'exploitation, ni une interface graphique mais un environnement graphique. La distinction est importante car sur les PC, les quelques systemes d'exploitation sur le marche (sauf le DOS) ne font aucune distinction, et les problemes sont nombreux :

  • Programmation difficile car tout est melange
  • Portabilite liee au systeme
  • interface figee
  • Avec X-Window, on ne change pas ses habitudes de programmation, les programmes sont portables (en respectant la norme POSIX ou/et BSD par exemple) sur de nombreux systemes UNIX. On peut meme dire que la portabilite vers des systemes comme Windows, OS/2 ou MacOS est facilite par la simplicite du code avec Unix (comparez avec l'API de windows ou du MacOS !). Enfin, l'utilisateur est libre de choisir ou meme de construire (s'il est courageux) sa propre interface, c'est a dire, la maniere dont il va utiliser le systeme. Les inconvenients lies a cette methode sont par exemple :

  • Interfaces multiples
  • lourdeur de configuration
  • Le probleme de la liberte de choix de l'interface utilisateur explique justement l'existence de Motif qui est parvenu a s'imposer sur Unix depuis quelques annees. La configuration de X-Window n'est pas une tache evidente, il existe de nombreux systemes preconfigures qui relativisent fortement ce probleme. Donc, pour resumer, disons que la liberte offerte par X-Window par rapport aux systemes proprietaires est un avantage indeniable et que Motif comble le principal inconvenient, ca commence pas mal, non ?

    Le X-Toolkit

    Nous avons vu que X (ou X-Window) n'est pas une interface utilisateur mais se situe a un niveau plus bas : gestion des affichages, des interactions avec l'utilisateur (clavier, souris, ...), de l'interfacage avec le noyau Unix (avec les xterm), etc... Mais point de boite de dialogue, de boutons ou autres menus. En fait, on peut tres bien programmer soit-meme une interface en utilisant les fonctions de X (bibliotheque Xlib) mais ce serait premierement extremement complique et surtout, vous allez reinventer la roue ! Les developpeurs de X (le X-Consortium) ont donc deja penser a ca en creant le genial (franchement, le mot est faible) X-Toolkit (bibliotheque Xt). Sans rentrer dans les details, signalons juste que cette bibliotheque de programmation permet de creer des elements d'interfaces, que l'on nomme des widgets qui peuvent etre a peu pres n'importe quoi (un simple bouton ou un browser Web complet) du moment qu'ils sont crees suivant la philosophie (je vous previens, c'est la bonne !) du X-Toolkit.

    Une interface utilisateur, c'est quoi ?

    Sous OS/2 et ses consorts (j'ai choisi le meilleur du pire !), une interface utilisateur est une propriete du systeme d'exploitation, ce qui n'est pas, a mon avis, une bonne definition. Sous X, on revient a la vraie signification de ces mots, c'est a dire que l'on parle de la maniere d'utiliser le systeme et ses applications. La distinction est importante puisque les interfaces graphiques sous X-Window sont avant tout des bibliotheques de programmation tout basees sur le X-Toolkit et c'est aussi (souvent) un gestionnaire de fenetre (mais on peut toujours choisir celui qu'on veut). Les bibliotheques dont nous parlons sont des ensembles de Widgets, c'est a dire des elements d'interface et tout le code concernant leur utilisation, leur fonctionnement, etc. L'avantage de cette methode est que la maniere de programmer une application avec tel ou tel ensemble de widget est proche (il est possible de melanger les widget mais il ne faut le faire qu'exceptionnellement, par exemple pour integrer un browser Web dans une application). Voici les principales bibliotheques disponibles :

  • Athena widgets
  • Free Widget Foundation classes
  • Openlook
  • Motif
  • Si les deux premieres ont l'avantage d'etre gratuites et pratiques, elle n'en demeurent pas loin assez limitees et ne peuvent donc pas etre designees comme de veritables interfaces utilisateur. Openlook fut en son temps un standard, c'est une bibliotheque tres puissante avec des Widgets de haut-niveau (editeur de texte par exemple) et a le grand avantage d'etre gratuite. Cependant, son design ne fait pas l'unanimite et surtout, elle a ete supplantee par son confrere : Motif.

    Alors, Motif, c'est quoi ?

    Vous l'avez remarque, avant de pouvoir presenter notre petit chouchou du mois, il nous fallait preciser de nombreux details mais desormais, vous devez avoir une idee de ce qu'est Motif. Bon, je vous aide, c'est a la base une bibliotheque basee sur le X-Toolkit et X-Window qui permet de creer des applications disposant d'une interface utlisateur standardisee. Pour illustrer ce concept, voici le shema d'un systeme utilisant des applications Motif (client X) :

    figure : X structure

    Mais Motif, c'est aussi un gestionnaire de fenetre (MWM) qui fait pratiquement office de standard sur les Unix commerciaux (SunOS - Solaris - AIX - HPUX - etc..).

    C'est fait par qui ?

    Motif a ete cree par l'Open Software Foundation (OSF) qui n'est pas une societe mais un consortium. Encore une grand difference entre le monde DOS/Win/patati et Unix, c'est que les societes font de vrais alliances allant dans de bonnes directions et le but recherche n'est pas le monopole mais d'avoir des bonbons pour tout le monde, c'est un peu mieux ! A la difference de X-Window, Motif n'est pas gratuit et c'est comprehensible vu l'importance de cette bibliotheque et le nombre d'applications commerciales l'utilisant (Netscape, Wordperfect, etc ...). En fait, la licence motif etait tres chere jusqu'a present mais pour accelerer sa standardisation, les prix ont chute et c'est tant mieux ! Mais ne vous trompez pas, c'est bien au-dessus des moyens d'un simple particulier car ce que l'OSF vend, ce n'est pas la bibliotheque mais les sources et cela coute donc tres cher. Les societes qui vendent Motif ont donc acquis une licence et les sources de la bibliotheque. Les licences sont nombreuses mais sachez tout de meme qu'une distribution de Motif peut couter plusieurs milliers de dollars. Et c'est la que la decidement tres active petite societe Infomagic intervient en nous proposant une version compilee (avec GCC - Elf5) de Motif fonctionnant sur plateforme Intel 80x86 pour les systemes Linux et FreeBSD. Cette distribution se nomme MooTif et comporte les elements suivants :

  • Motif Window Manager (MWM 2.0)
  • bibliotheques dynamiques (libXm.so, libMrm.so)
  • bibliotheques statiques (libXm.a, libMrm.a)
  • User Interface Langage (UIL)
  • documentation officielle OnLine (plus de 1000 pages tres denses)
  • quelques contributions avec les sources (tres pedagogiques)
  • Le prix est vraiment etonnant puisque tout cela ne coute que 99$ (plus 10$ de frais de port pour la France). Le mieux est d'acheter cela directement chez Infomagic (www.infomagic.com) car en france, il n'est pas rare de trouver MooTif a plus de 800 frs ! Mais pourquoi l'equipe de LINE a-t-elle craque pour cette librairie ?

    Pour les programmeurs

    Le premier attrait de MooTif concerne les programmeurs bien entendu. Ils disposent d'une bibliotheque tres riche, permettant de creer des applications dont l'interface est a mon avis inegalee (meme par NextStep !) car si les elements d'interface ne sont pas fournis en nombre infini, les possibilites de modification tant du rendu graphique que de l'utilisation et du comportement de ces widgets sont elles innombrables ! Les applications sont tres coherentes mais l'utilisateur peut vraiment adapter l'interface a ses gouts. Cette puissance est en grande partie consequence du fait que Motif est base sur le X-Toolkit (voir article sur les ressources de X). Certains concepts sont plutot difficiles a saisir (le Drag and Drop par exemple) mais on s'y fait rapidement et le developpement d'interfaces devient un veritable plaisir ! Contrairement a la programmation sous Windows (surtout), l'interface et l'application sont deux choses separees : les codes correspondant a l'une ou a l'autre ne sont pas melanges (enfin, il faut que le programmeur fasse cette separation mais Motif fournit tous les outils pour la rendre possible). Les applications sont donc non seulement facilement portables mais en plus, on peut changer d'interface de facon tres simple sans avoir necessairement le besoin de recompiler l'application (grace au deroutant mais genial UIL - language interprete permettant de construire l'interface). Bon, alors tout cela est tres joli mais en quoi cela concerne-t-il les inconditionnels de Linux ?


    AVIS A LA PROGRAMMATION !


    On ne le repetera jamais assez, LINUX est aujourd'hui bien plus qu'un systeme pour les Hackers, c'est un des Unix les plus stables, les plus puissants, les plus compatibles (bientot Posix 2). Reconnu comme un vrai systeme par les plus septiques d'hier (genre Dataquest), les editeurs commerciaux portent de nombreuses application sur notre systeme prefere (je parle au nom de l'equipe de LINE) et c'est une tres bonne chose. Mais les logiciels GPL, Freeware ou shareware doivent aussi penser a l'utilisateur et Motif, maintenant vraiment abordable, est la meilleure solution pour associer puissance (caracteristique des logiciels Unix) et simplicite (moins caracteristique deja).


    Apres cette petite annonce, signalons quelques caracteristiques importantes des applications creees avec Motif. Tout d'abord, elles sont portables sur les systemes disposant des bibliotheques dynamiques Motif (la plupart des Unix commerciaux, Linux - Caldera, Linux FT, etc.) mais les binaires peuvent etre bien sur linkes en statique, ceci dit, attention a la taille des executables (jetez un coup d'oeil sur le process de Netscape). Pour terminer, n'oublions pas que MooTif est une version tres actualisee de Motif puisque compatible Motif 2.0 qui est le vrai Motif, vous pouvez jeter les autres version :-)

    Pour l'utilisateur

    Motif pour l'utilisateur, c'est Windows puissance 10000 ! Les applications (si elles respectent la philosophie proposee par OSF) sont simples, tres jolies et leur interface est d'une puissance que l'on ne retrouve pas ailleurs, avec surtout une possibilite d'adaptation extraordinaire (merci Xt !). Le principal interet pour l'utilisateur est de disposer de MWM et des librairies dynamiques qui, dans le cadre d'une utilisation intensives d'applications Motif, permet un gain enorme en ressources (merci ELF !). Mais attention, MooTif est plutot pour le developpeur, il existe des distributions de Linux comportant MWM et les libs dynamiques destinees a l'utilisateur (pas de .a, .sa et de headers) pour moins cher, mais c'est rare que ce soit moins cher que Red Hat + MooTif ;-). Mais attention, si vous n'utilisez que des applications Motif statiques ou pas d'applications Motif, vous n'y gagnerez rien, forcement !

    Les applications Motif

    Motif etant base sur X et le X-Toolkit, il suffit d'avoir des applications linkees en statique pour les utiliser sur un systeme ne disposant pas de la librairie dynamique Motif (libXm.so). Mais cela ne concerne que les applications d'envergure, etant donne la taille de la librairie. En guise d'exemple, voici une image de Fred's Own Filemanager, une application Motif en cours de developpement et qui montre differents objets d'interface que l'on peut trouver dans Motif (avec les proprietes par defaut, c'est a dire le plus moche) :

    On peut voir une arborescence des repertoires, geree par un Widget que l'on appelle un Container, dans une fenetre qui scroll automatiquement (c'est tres pratique). La partie de droite est composee d'une sorte de livre avec deux pages : c'est un Notebook. En changeant de page (page 2), on affiche les fichiers avec toutes les informations ratachees (nom, taille, date, droits d'acces, etc...). Bien sur, cette application est totalement configurable pour l'utilisateur, vous voyez ici la presentation par defaut. Fof est en cours de developpement et fera parti d'une suite de logiciel destine a l'administration graphique de systemes Unix/X-Window bilingues Anglais/Francais. Pour ceux que ca interesse, les outils connexes seront un gestionnaire de process, un gestionnaire d'application (n'ayez pas peur, ce ne sera pas une barre des taches a la windows 95 mais il me reste a trouver une idee :-) ), une poubelle universelle (killer les process, effacer les fichiers) et peut-etre d'autres outils dans le meme genre. Il y aura deux version : un integre linke en statique pour Linux (pour n'integrer qu'une fois la librairie Motif) et une version portable livree avec les sources des applications. separees. Si vous voulez participer a ce developpement, contactez moi par email :

    Fred Pesch - peschans@ie2.u-psud.fr (a partir de debut octobre).

    precisez <<< DEVELOPPEMENT FiX >>> (Fred's interface for X) en en-tete.

    LINE et Motif

    Comme vous avez du le constater, nous avons litteralement craque pour cette bibliotheque et vous trouverez dans les mois prochains des articles tournant autour de ce sujet, surtout si vous nous en faite la demande !

    Fred PESCH - peschans@ie2.u-psud.fr