Déja auteur de plusieurs contributions, déja évoqué sur nos pages avec P2Ada, Gautier revient avec TeXCAD.
Tâchons d’en savoir plus !
Bonjour Gautier. Peux-tu te présenter brièvement ?
Je suis mathématicien, j’habite à Zürich (Suisse) et travaille comme actuaire [1] dans une compagnie de réassurances.
TeXCAD est un outil existant. En quoi était-il programmé ?
Il a été programmé autour de 1990 en Turbo Pascal. C’est un outil très commode pour faire toutes sortes de diagrammes en LaTeX. Sa particularité est que le format de fichier n’est rien d’autre qu’un bout de code LaTeX contenant un dessin (picture), qu’on peut inclure dans un texte - directement ou par la commande \input. Ce confort suppose un parser puissant, souple, résistant aux notations «alternatives» et capable de mémoriser les commandes qu’il ne comprend pas. C’est donc le fruit d’un gros travail, mais qui était menacé de disparition parce qu’étant un programme DOS. Il fallait de plus en plus d’acrobaties pour le faire tourner sur les machines actuelles. Comme les sources de TeXCAD 3.2 existent (encore) et que le programme est bon, c’était préférable de les rénover que de repartir de zéro.
Pourquoi avoir changé pour Ada ?
Il y a mille bonnes raisons (que j’explique de long en large sur cette page Web) de passer du Pascal vers l’Ada. Le Pascal «de base» a été une étape importante et nécessairement éphémère dans l’histoire de la programmation et je lui souhaite une bonne retraite. Il y a bien sûr en circulation toutes sortes d’extensions du Pascal, mais elles ne sont pas satisfaisantes : sur des points essentiels, elles ne sont pas encore au niveau de l’Ada 83 ; les palliatifs à la rigidité du Pascal sont souvent mal conçus, brisant sa cohérence et le typage fort ; enfin, et c’est le plus ennuyeux, on a affaire a une myriade de dialectes incompatibles. Pour TeXCAD, le passage du Pascal à l’Ada n’était pas en soi indispensable, comme il l’est pour du calcul numérique, mais plutôt commode. Il s’agit de pouvoir produire des versions Mac, Linux, Unix ou Windows avec une base commune et bien sûr d’avoir quelque chose qui puisse évoluer et être utilisable dans 10 ou 20 ans. La disponibilité d’un environnement de programmation à la fois professionnel et gratuit (GNAT), ainsi que de bibliothèques d’interfaces graphiques également gratuites a fait le poids. En somme, un exécutable TeXCAD peut être obtenu avec des données (compilateur, sources, bibliothèques) entièrement gratuites et disponibles sur le Web. Pour moi c’est idéal ! La conversion des sources a été très simple : un petit coup de P2Ada, amélioré pour l’occasion, et je me suis retrouvé avec des sources Ada dans lesquelles il était facile de piocher.
As-tu d’autres idées pour TeXCAD, ou comptes-tu en rester là ?
Il y a encore à faire : quelques défauts hérités de la version originale, des détails pour la version Windows, des commandes de LaTeX à implémenter. Des idées me parviennent déjà de la part d’utilisateurs... L’important sera de garder cet outil aussi simple que possible, tout en le faisant évoluer.
Pourquoi avoir choisi GWindows ?
Pour Windows, il y a un certain nombre d’environnements (à ma connaissance : CLAW, JEWL, GWindows, GtkAda). J’ai fait un petit prototype dans chacun d’entre eux pour sonder la faisabilité et voir honnêtement sur quelles difficultés on bute. J’ai aussi pensé au confort de l’utilisateur, à la facilité d’installation, et toutes sortes de paramètres «hors programmation». Sans entrer dans les détails, c’est GWindows qui s’en sort haut la main. Maintenant, pour d’autres plateformes, c’est une autre histoire.
Tes contributions semblent montrer ton intéret pour l’infographie. C’est un de tes sujets favoris ?
Si tu penses à Engine_3D eh bien oui, j’avoue avoir un faible pour la réalité virtuelle, surtout quand on peut construire le décor, faire un travelling, jouer sur la focale, les éclairages, les effets spéciaux. En plus, comment voir la puissance de la programmation mieux qu’en contemplant des millions de pixels rafraîchis 30 fois par seconde ? C’est planant... Ça m’a aussi permis de découvrir qu’Ada et optimisation ne sont pas contradictoires, loin de là !
Que t’a-t-il manqué le plus pour tes développements dans Ada ?
Quand j’ai commencé à programmer en Ada en 1996, c’était un peu limite. Ada n’était pas vraiment sorti du nid et il allait probablement y rester... En quelques années, l’effet combiné de la norme Ada95, de GNAT, d’Internet, des processeurs rapides (important si le compilateur est lent !) a beaucoup changé le tableau. Évidemment, Ada gagnera à être mieux connu ; il y a encore du pain sur la planche...
Qu’attends-tu de la prochaine révision de la norme ?
Une clause "with and use X(,Y) ;" qui signifie "with X(,Y) ; use X(,Y) ;" ou bien "with X ; use X ; (with Y ; use Y ;)" (à définir par les juristes !).
Quels sont tes autres projets ?
En tout cas, un jeu en 3D (graphisme basé sur OpenGL).
Et en quel langage les réaliseras-tu ? :-)
Je ne suis pas sectaire. Du moment que j’ai le choix, il faut en tout cas qu’il soit modulaire, lisible, portable, non propriétaire et correctement typé. Il faut aussi un compilateur, des outils gratuits et au moins une petite communauté d’utilisateurs.
Alors quelque chose me dis que nous aurons l’occasion d’en reparler sur Ada-France !
Merci Gautier.
[1] actuariat : calcul des risques liés à une couverture d’assurance pour en établir la prime