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.