* * *
Interview de Dominique Bereziat, auteur de Windom
* * *


SoulFish:
Tout d'abord, comme dans la plupart des interviews, je te propose de te présenter (nom, age, profession, parcours sur Atari, machines, céréales préférées... etc...)
Dom:
Salut Soulfish, je m'appelle Dominique Béréziat et j'ai 28 balais ( bientôt 29 :-( ). Je suis thésard en math à l'Inria et je bosse sur des applications météos en traitement de l'image. Je n'ai eu en tout et pour tout que deux ordinateurs dans ma chienne de vie: un atari STF 1040 en... hum 1990, puis je me suis craqué un falcon en 1994. En fait, j'aimais pas du tout l'informatique quand j'étais ados, je connaissais la programmation et j'en faisais mais sans machine et le reste ne m'interessait pas. Si je me suis acheté un ordi c'était pour la fac et si j'ai choisi le ST c'est parce que j'avais vu des PC avant :-). Sinon j'aime bien les croustimiel mais sans lait s'il vous plait.
SoulFish:
Tu es donc l'auteur de la librairie de programmation GEM 'Windom', pourrais tu nous raconter l'histoire de cette librairie, comment elle est née, quand, quelles sont tes motivations, et quelles sont les particularités de ta librairie par rapport aux autres ?
Dom:
Quand j'ai eu mon ST je me suis mis rapidement à la programmation en C et au GEM en particulier. Je travaillais avec le Laser C, les articles de ST-Mag de l'époque et le livre du developpeur de chez Micro Application qu'un pote m'avait prété. Je me suis mis dans l'idée d'écrire un programme, un tableur orienté dans les statistiques (analyse en composantes principales et analyse de la variance). Bien-sur, il fallait que ce fut sous GEM et au bout de quelque temps il était évident que 80% du code était lié à la gestion de l'interface graphique. C'est alors que ça a commencé monsieur Soulfish! Puis j'ai découvert BiG, la célèbre librairie de Claude Attard et j'ai très vite repris son idée de pointeur de fonction, c'est-à-dire que chaque fenêtre possède un structure dans laquelle on trouve les pointeurs de fonction gérant un évenement bien précis. Inutile de dire qu'à ce momment là, ma librairie GEM m'interessait davantage que mon misérable tableur.

 La librairie date de 1993 mais a reçut à plusieurs reprises de profondes modifications et la dernière structure stable et maintenant définitive date de 1995. Cette librairie fonctionne pour Pure C et Gnu C. La caractéristique première de WinDom est que les fonctions ressemblent à celles de l'AES: elles ont le même nom et font grosso-modo la même chose.

 Par exemple, pour créer une fenêtre on utilise WindCreate() et pas wind_create(). Ainsi, pour une personne ne connaissant pas le GEM ça change rien et pour ceux qui connaissent le GEM, la programmation reste très similaire à GEM. De cette manière, la librarie reste 'bas niveau' à la différence de toutes les autres librairies que je connaisse qui n'offrent que de grosses fonctions rigides et obscures. On peut voir WinDom comme un AES amélioré mais qui respecte son principe, sa trame.

 La seconde caractéristique (et qui la différencie de pas mal d'autres librairies) est qu'elle est orientée gestion des fenêtres au sens le plus général. Par exemple, la librairie offre des formulaires en fenêtre. Et bien, ces formulaires sont gérés comme les autres fenêtres et rien de plus. En fait, les formulaires auraient très bien pu être séparés de la librairie.

 Dans la même idée, je propose aussi d'autres librairies de complément à WinDom. Autre exemple, j'ai écris une librairie qui s'appelle WinVdi qui propose de dessiner dans un fenêtre comme on dessine sur l'écran avec les fonctions vdi, la librairie a été très simple à écrire: juste certaines fonctions de gestion des événements et les pseudo appels vdi pour dessiner, le reste étant géré par WinDom. Outre la diversité des fonctions proposées, c'est là, je pense, que réside le gros intérêt de WinDom. Avec WinDom j'ai essayé de rendre indépendante la programmation GEM de la version de l'AES. La plupart des nouvelles caractéristiques de l'AES 4.1 fonctionnent quelquesoit la version de l'AES. Par exemple un appel du type WindSet( win, WF_ICONIFY, ...) marche quelquesoit vôtre système.

 Une dernière caractéristique que je citerais et qui n'existe probablement nulle part ailleurs est la gestion des frames. C'est bien sur les browsers Web qui m'ont inspiré. Avec Windom, vous avez la possibilité de partager une fenêtre en différentes parties indépendantes. Chaque partie est vue comme si c'était une fenêtre avec ses scrolls ses attributs sa zone de travail etc... Par exemple, vous pouvez couper une fenêtre en trois parties dont la première serait du texte, la seconde un formulaire et la troisième, disons une image. Plus fort encore, si vous avez écrit un programme WinDom, qui ouvre une fenêtre avec ses propres caractéristiques de gestion de clavier de dessin ou de souris, vous pouvez en faire une frame.

 Je ne vais pas énumérer toutes les caractérisques car elles sont nombreuses, je recommmande plutôt de lire la documentation [NDSLF: Fournit, cher lecteur :) avec ce FalkMag]. Finalement, je pense que WinDom est très souple tout en restant puissante.

SoulFish:
Et que comptes-tu rajouter à Windom dans l'avenir ?
Dom:
He bien je ne saurai le dire car les idées ne me viennent pas facilement. Pour le moment, j'ai encore du travail de déboguage et de peaufinage sans compter les autres programmes que je développe...
SoulFish:
As-tu déja programmé d'autres interfaces graphiques (X-window ou Windows par exemple), et que penses-tu du GEM par rapport à celles- ci, et en général, penses tu que le GEM tienne toujours la route aujourd'hui ?
Dom:
Non, je n'ai jamais vraiment programmé d'autre interface graphique. Néanmois, travaillant sur station Unix, je connais quand même un peu X11 et le principe reste assez similaire à GEM (programmation événementielle). La grosse différence est que les appels de X sont nombreux et compliqués (due à l'architecture client- serveur) et sans librairie haut-niveau du type Motif, c'est assez galère. Quand à Windows n'en parlons pas s'il te plait, tous les packs de developpement sont des trucs Visual Bidule où, de toute facon, tu n'as rien à faire car tu as les 10 meg de librairies pour ça. Par contre, à toi de te cogner les docs et c'est bien sur très lourd en code généré.

 Je pense que le GEM tient toujours la route, car il était dès le départ simple, bas niveau et bien fait (le multitâche en particulier). Comparons le à MacOS par exemple. Nous avons un GEM multitâche préémptif depuis 1993 alors que la dernière version de MacOS (la 7) ne l'est toujours pas! On peut dire que les centaines d'appels de Windows tiennent dans la trentaine de fonction de l'AES. Certes, il manque quelques petits trucs mais ce ne sont que des éléments mineures. Quand tu vois Naes ou Magic, tu peux te dire qu'il ne manque pas grand chose au GEM (au reste surement, mais pas au GEM).

SoulFish:
Je crois que tu programmes aussi un éditeur de ressources, peux-tu nous en parler plus en détail ?
Dom:
Ah ah, je crois que tu te fourvoie [NDSLF: comment ça ? je ne te permet pas! :)] car je ne programme pas d'éditeur de ressource mais un générateur de code pour interface graphique utilisant... WinDom qui s'appelle winRSC. Ca ressemble de loin à un éditeur de ressource car on travaille directement sur les objets du ressource: tu tires un formulaire hors de la fenêtre et hop, ça te crée un formulaire en fenêtre. Tu tires un autre formulaire sur un des boutons du formulaire précedement créé et hop, l'appui de ce bouton créé ce formulaire etc... Ce programme est encore à ses balbutiments car il y n'a que quelques trucs qui marchent mais qui produisent du code fonctionnel. Mais la route est longue. Le sage dit : "la motivation vient avec la demande" non?
SoulFish:
Tu es aussi l'auteur de Viewer, qui comme son nom l'indique... Tu comptes en faire un éditeur de texte ? La fonction de colorisation du texte que tu as rajouté laisserait elle envisager un éditeur de texte à la JED (sur Unix) ?
Dom:
 Hé hé, je ne connais pas Jed, mais tu n'es pas tombé loin car je pensais plutot à Emacs en faisant cela. Le viewer est en faite une plateforme d'essai de mes routines de gestion de texte d'une autre de mes librairies. Le but final est de proposer des fonctions simples pour afficher, éditer du texte en gérant notamment fonte, couleur et attributs (un mini traitement de texte en somme). Mais la encore il reste beaucoup de travail, car gérer du texte à éditer de façon intelligente est assez galère à faire.
SoulFish:
 Quel outils emploies tu pour développer ?
Dom:
 Actuellement j'utilise Pure C et Gcc comme compilateur et le Pure debuggeur est bien évidemment un outil précieux. J'attend une nouvelle version de PureC qui ne viendra sans doute jamais :-(

 Je ne développe qu'en C parce que je trouve que ce language est le plus adapté à GEM (en opposition surtout à l'assembleur). L'assembleur c'est bien pour plein de chose mais pas pour gérer des interfaces. J'en vois qui vont me contredire mais c'est mon avis. De plus, le C c'est portable et facilement modifiable.

 Comme éditeur de ressource j'utilise Interface 2. Comme éditeur de texte, Qed est vraiment parfait. Les docs sont fabriqué à base de ST-Guide et de UDO que je recommande vraiment à toutes les personnes qui tapent des docs.
SoulFish:
 Je crois que tu aimes bien Magic, donne nous ton avis sur ce système ?
Dom:
 Oui, je l'avoue, j'aime beaucoup MagiC. Je trouve, et je pèse mes mots, que c'est le meilleur OS existant sur nos machines (et je serai tenté de dire sur PC et Mac). Bien sur on peut lui reprocher un certain nombre de chose comme des incompatibilités de certain programme mais qui somme toute ne sont dues qu'à leur mauvaise programmation. MagiC est beau, très rapide et très fonctionnel. C'est justement avec ce genre de logiciel qu'on fait avancer le chimblic sur Atari. Je dis ça car quand j'ai installé Magic sur mon Falcon, j'ai trouvé un gain de puissance et un confort d'utilisation qui m'ont grandement motivé. Je ne peux plus m'en passer c'est comme une drogue!

 Il me faut des mises à jours tout le temps! Et je parle pas de ma copine qui se désespère de me voir scotché sur ma bécane. De toute façon mes programmes tournent sur tous les compatibles TOS et donc à chacun son système, c'est ça la vrai liberté.
SoulFish:
 Quels sont tes logiciels préférés sur Atari, étant spécialiste des interfaces, il y a surement un logiciel que tu admires particulièrement ?
Dom:
 Hum, sans conteste, je trouve Quincy admirable de tout coté. Voila un soft beau et stable (qui tourne même sous MagiC). Sinon, je dois dire que Papyrus a l'air vraiment très bien mais moi j'en suis resté à LaTeX monsieur le juge. EBModel me semble admirable. Je trouve l'interface curieuse mais pas déplaisante, il faut dire qu'arriver à faire ça en GFA semble assez incroyable. Peut-être devrait-il utiliser WinDom :-). Sinon j'ai découvert Jinnee, un nouveau bureau distribué chez ASH. He bien j'en suis tombé sur le cul. C'est de loin le programme GEM le plus esthétique que j'ai jamais rencontré sur nos machines. [NDSLF: j'ai aussi testé Jinnee, dont on trouve la démo allemande sur divers ftp... c'est vraiment sympa. Trés complet.]
SoulFish:
 A ton avis, que manque-t-il aujourd'hui sur Atari ?
Dom:
 Du cul du cul du cul! Plus sérieusement, côté logiciel il ne me manque rien mais je sais pertinemment que cela n'est pas le cas des autres. Le gros manque est peut être les jeux et surtout les accès internet, je veux dire carte éternet (300 balle pour un PC), carte modem, logiciels et drivers PPP. Ca c'est un gros manque. Côte hardware, il manque de la puissance et aussi, tiens de la carte video. J'aimerai tellement avoir un écran en 1200 sur 1024 en 256 couleurs sans que ca rame!
SoulFish:
 Une question que l'on retrouve de plus en plus souvent... quel est ton avis sur les nouvelles machines, Hades de Medusa System, et bientot (on l'espère) Phenix de Centek ?
Dom:
 Les machines de Medusa System ont l'air bien: puissantes, ouvertes. Dernièrement j'ai vu qu'une carte son avec DSP était dispo pour l'Hades, c'est bienvenu car c'était la seule chose qui lui manquait. Hum Cubase Audio sur l'Hades ça doit le faire! La seule chose qui m'arrête (comme la majorité des ataristes) est le prix. L'hades 060 est à 17kf je crois, c'est trop cher.

 Ah le Phénix, cet oiseau qui déclenche des passions sur les newsgroups français atariste! Je crois que Centek est sur la bonne voie à condition que les rails existent vraiment! Le Phénix à l'air aussi génial que le Falcon en 1993 mais le Falcon au moins est sorti. Mis a part ca, le projet Phénix est très chouette et s'il sort à moins de 10000 balles j'en connais qui vont bouillonner sous les chaumières. Mais je suis aussi très intéressé par la Centurbo2 car en mettant Dolmen dedans mon rapace cela ferait une intelligente transition entre le Falcon et le Phénix. Donc j'espère qu'ils réussiront mais il ne faut pas mettre tous les oeufs dans le même panier. Mais le Phénix ne sera pas un compatible TOS. J'aurais bien voulu avoir un Falcon 060 ou même un Falcon PPC! Le pied total quoi.
SoulFish:
 Pour finir, quelque chose de particulier à rajouter ?
Dom:
 Ben j'encourage les gens qui hésitent à se lancer dans la programmation GEM car c'est vraiment facile (encore plus avec WinDom!). C'est surtout aux programmeurs de jeux que je m'adresse, moi je trouve que le principe du Mac est vraiment très bien, quand on lance un jeu genre Doom, on a toujours un menu (souvent caché) qui reste dispo! Ca c'est chouette, moi j'en ai ma claque des jeux ou il faut rebooter tout le temps et trouver la bonne résolution et tout! C'est simplement insupportable! C'est d'ailleurs pour ca que je joue presque plus moi. Alors please un petit effort que diable. Sinon, j'espère que les machines Atari dureront encore longtemps et que nous trouveront une nouvelle voie dans l'avenir.

 Pour en finir avec WinDom, il voudrait dire que encore très peu de personne l'utilise. A ceux qui l'utilisent je voudrais leur demander de se faire connaitre car leur remarques et rapport de bugs ou autres seraient très utiles au developpement de la librairie et à ceux qui hésitent à l'utiliser, je leur dirai que la librairie reste en développment constant et que je suis à leur disposition pour les aider.

 [NDSLF: ben alors, je l'utilise moi ta librairie! :) et elle est vraiment trés cool! Le seul problème c'est que je suis un gros faignant et que met 30 ans pour finir les programmes que je commence... :)]
SoulFish:
 Je te propose de rappeller à nos lecteurs aux yeux rouges, comment on peut récupérer Windom, ainsi que tes autres programmes, et comment te contacter.
Dom:
 C'est très simple, une ch'tite lettre avec un timbre et une disquette et je leur envois le tout avec grand plaisir. Sinon, pour ces privilégiés d'internautes, ils peuvent récupérer WinDom ainsi que tout le reste (Notes2, Awele, Viewer, Windom, WinRSC) sur mon site wouaibeu. Je tiens à dire que tout ces produits sont FreeWare et donc diffusables. D'autre part, je répond volontier aux questions et je suis ouvert à tous projets.

Dominique Béréziat
13 rue George Sand
91120 Palaiseau
e-mail: Dominique.Bereziat@inria.fr WWW: http://www- air.inria.fr/People/bereziat/


SoulFish:
 Merci! Et continue le bon boulot!





SoulFish