Interview de Philippe Guillot

Créateur de PP Compiler et Pépé le Compiler

Équipe Pascal

Dans le monde du Pascal, PP Compiler (Palm OS) et Pépé le Compiler (Android) occupent une place à part. Ils sont le fruit du travail acharné de Philippe Guillot, qui a eu la gentillesse de répondre à quelques questions.

Commentez

- Titre : Interview de Philippe Guillot

- Auteur : Équipe Pascal

- Parution : 28 octobre 2016

- Mise à jour : 29 octobre 2016

- Public visé :

- Licence : Copyright ® 2016 Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- PP Compiler et Pépé le Compiler

- Entretien avec Philippe Guillot

- Remerciements

PP Compiler et Pépé le Compiler

PP Compiler est un compilateur Pascal pour Palm OS. Il génère des exécutables .PRC en mode standard 68000 ou natif ARM, et également des applications console, des DA(1), des shared libraries, etc., à partir du langage Pascal standard.

Avec ce compilateur, vous pouvez créer des applications Palm directement sur votre Palm. C'est l'outil idéal du développeur nomade, qui pourra mettre au point son code où qu'il soit.

Une version Android, Pépé le Compiler, est également disponible. Elle ne permet pour l'instant que de développer des applications console.

Le site de PP Compiler et Pépé le Compiler : http://www.ppcompiler.org/index.php?lng=fr

Entretien avec Philippe Guillot

Équipe Pascal : bonjour Philippe, avant toute chose, pourriez-vous nous brosser votre parcours personnel ?

Philippe Guillot : j'ai découvert l'informatique au lycée à la fin des années 1970. Le principe d'une machine à laquelle on pouvait demander d'exécuter un séquencement organisé d'instructions m'a tout de suite fasciné. J'en suis naturellement venu à l'informatique de façon très progressive, dans le courant des années 1980, avec le développement de l'informatique personnelle.

Mon premier langage s'appelait LSE (« Langage Symbolique pour l'Enseignement », je crois). Il s'agissait d'une sorte de BASIC interprété avec des mots-clés en français.

Ensuite, j'ai programmé une machine Texas Instruments (TI). Les TI étaient les seules machines programmables accessibles à un particulier à cette époque.

Quand les premiers ordinateurs personnels sont apparus, j'ai appris le Pascal UCSD sur un Apple II, puis Turbo Pascal sur IBM-PC.

J'ai aussi beaucoup pratiqué le Lisp, dont j'avais écrit un interprète en langage assembleur.

Équipe Pascal : comment êtes-vous arrivé au langage Pascal ?

Philippe Guillot : le Pascal était le langage privilégié pour l'enseignement de la programmation dans les années 1980. Ensuite, j'ai pratiqué Turbo Pascal pour développer des applications personnelles, mais aussi dans mon environnement professionnel, surtout pour valider des hypothèses de calcul ou faire des simulations. Le gros avantage était à l'époque l'interactivité et la rapidité de compilation et d'exécution.

L'environnement Borland, avec ses outils de débogage, était vraiment très au point et très facile d'emploi. On arrivait à écrire rapidement des applications impressionnantes. Je garde encore le souvenir d'un jeu vidéo 3D en temps réel développé avec un collègue, entièrement en Turbo Pascal avec des parties critiques en assembleur.

Équipe Pascal : qu'est-ce qui vous a poussé à développer PP Compiler, puis Pépé le Compiler ?

Philippe Guillot : cela faisait longtemps que je voulais développer un compilateur. j'avais déjà écrit un interpréteur Lisp. J'ai commencé le compilateur Pascal un peu par défi. J'avais suivi des cours de compilation, mais je voulais pouvoir le faire de A à Z. Le diable est dans les détails, comme on dit.

Je l'ai commencé tout seul, ensuite j'ai été grandement encouragé par l'équipe du site « ppcompiler.org », qui m'a beaucoup aidé pour les tests.

Je n'ai pas pensé à un public cible précis quand j'ai développé le compilateur. Je prenais plaisir à programmer en tout lieu avec mon Palm, et je pensais ne viser que ceux qui partageaient ce plaisir avec moi. Il y avait « OnBoardC », qui était un compilateur C embarqué sur Palm, et je voulais faire une sorte de clone pour le langage Pascal. Mais j'ai constaté qu'il y avait beaucoup d'étudiants qui utilisaient ce compilateur, peut-être pour appliquer directement en classe les cours qu'ils recevaient.

Le développement de ppCompiler a commencé sur Palm avec un compilateur C « on board » pour Palm. Lorsque Palm a migré sur processeur ARM, j'ai voulu réécrire le compilateur pour produire du code natif ARM. C'était le premier compilateur qui faisait cela. Cette deuxième version « native ARM » était écrite en Pascal avec la première version de ppCompiler.

Ensuite, quand je l'ai porté sur Android, je l'ai entièrement réécrit et j'ai été obligé de le faire en C (jni), sauf Java pour l'interface.

Comme je suis souvent seul sur un projet, je n'ai pas de méthode très précise. Je me considère plutôt comme un amateur éclairé. J'essaye d'appliquer la rigueur que mes professeurs m'ont apprise et écrire un code robuste, en considérant les cas d'erreur et les tests dès la conception. En général, je construis un ensemble par petites briques, petit à petit, en testant au maximum chaque brique dès la dernière ligne de code écrite. Je conseille la lecture de Knuth pour cela. Aimer programmer, c'est aussi aimer déboguer. :)

Équipe Pascal : comment envisagez-vous l'avenir de Pépé ?

Philippe Guillot : là, je suis un peu pessimiste sur l'avenir de Pépé. En pratique, je n'ai pas touché au compilateur depuis plusieurs années. La communauté Palm était beaucoup plus active et encourageante. Quand Palm est mort et que le développement sur plate-forme mobile a migré vers les smartphones iOS et Android, le comportement des utilisateurs a changé aussi. Ils étaient beaucoup plus « consommateurs ».

Je recevais personnellement beaucoup de mails d'utilisateurs de Palm qui me signalaient un bogue, et qui m'encourageaient et contribuaient finalement à améliorer petit à petit le produit. J'ai fait de belles connaissances.

Les utilisateurs de smartphones Android se contentent souvent de noter l'application sur le site de Google. J'ai quand même reçu quelques mails, mais beaucoup moins qu'à l'époque Palm.

En ce moment, je travaille sur une machine de bureau Linux avec un hardware « Banana Pi », un fork de « Raspberry Pi », équipée d'un processeur ARM. Je me pose la question de porter Pépé sur cette plate-forme. Mais c'est plus pour le « fun », surtout que l'essentiel sera récupéré de Pépé.

Je n'ai pas beaucoup travaillé l'optimisation du code ARM généré ; ce sera peut-être l'occasion de m'y atteler. Mais pour l'instant, cela reste à l'état de projet, rien de concret.

Équipe Pascal : le développement logiciel est en mutation, comment voyez-vous les choses ?

Philippe Guillot : oui, le développement logiciel a changé, et c'est normal. Les systèmes deviennent de plus en plus performants et de plus en plus complexes.

J'ai bien été obligé de me mettre au Java pour développer l'interface de Pépé sur Android, bien que le cœur du compilateur soit écrit en C. Les fournisseurs produisent des plates-formes de plus en plus fermées où tout développement est très encadré. Je comprends la problématique de sécurité et l'exigence de qualité pour des applications de plus en plus professionnelles. Mais je trouve qu'il est de plus en plus difficile de sortir des clous, et cela nuit à la créativité.

Équipe Pascal : et voyez-vous un avenir pour le langage Pascal ?

Philippe Guillot : le langage Pascal restera pour moi le langage impératif privilégié pour l'apprentissage de la programmation. Il est le compromis idéal entre un code source très typé et structuré qui permet beaucoup de contrôles dès la compilation, et d'assez bas niveau pour produire un code très efficace. Mais je sais que tout le monde ne partage pas cet avis. J'ai des collègues qui ne jurent que par le C, d'autres que par la programmation orientée objet C++ ou Java, voire JavaScript pour privilégier la portabilité. Chacun a ses bonnes raisons. J'observe que le développement va vers de plus en plus d'abstraction, sur des machines connectées de moins en moins indépendantes d'un système de plus en plus complexe.

À moins que quelque chose d'essentiel m'ait échappé, proposer un outil de développement d'applications complet pour Android en Pascal demande de créer une bibliothèque complète pour toutes les API du SDK Android, et cela me semble une tâche considérable, hors de portée d'un amateur comme moi. Alors que sous Palm OS, toute l'API était accessible par des appels système directs, et ne nécessitait pas de développement particulier.

Je ne sais vraiment pas si investir actuellement dans un langage comme le Pascal a encore un sens. Il existe encore une communauté attirée par la rigueur et les qualités de ce langage. D'un autre côté, d'autres standards de fait se mettent en place, comme Java pour Android, et c'est compliqué de persuader quelqu'un d'investir en formation dans un langage à la pérennité discutée.

Équipe Pascal : un petit conseil pour ceux qui voudraient s'investir dans la création d'outils de développement en langage Pascal ?

Philippe Guillot : oui, essayer de coller au plus près du Pascal standard et du SDK de la plate-forme, tout en restant simple. L'impossible, quoi.

Équipe Pascal : merci infiniment !

Remerciements

L'équipe Pascal remercie Malick SECK pour sa relecture orthographique.

(1)« Desk Accessory ». Il s'agit d'un type d'application particulier pour Palm OS, qui permet d'être lancé depuis l'écran principal, un peu comme un popup. Pour exécuter ce type d'application, il faut un « DA Launcher », qui charge le programme en mémoire et le lance.