Entretien avec Paul Toth

Expert Delphi et créateur du compilateur FlashPascal

Équipe Pascal

Après Johann Elsass, l'équipe Pascal s'est entretenue avec une figure bien connue du monde francophone du Pascal, et plus particulièrement de Delphi : Paul Toth.

Commentez

- Titre : Entretien avec Paul Toth

- Auteur : Équipe Pascal

- Parution : 15 novembre 2015

- Public visé :

- Licence : Copyright ® 2015 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

- Entretien avec Paul Toth

- Remerciements

Entretien avec Paul Toth

Paul Toth est une figure emblématique dans le monde francophone du développement en Pascal, et plus particulièrement Delphi, dont il a accompagné toute l'évolution depuis la première version.

Expert reconnu par Borland pour la France, il a coécrit, avec Olivier Dahan, le best-sellerDelphi 7 Studio.

Il a créé en 2010 la société Execute. Il développe des applications Windows avec Delphi, évidemment, mais aussi des applications Android avec Android Studio et des applications web en PHP.

Il est impossible d'énumérer ici toutes les réalisations de Paul Toth, du développement web aux gros projets de gestion. Sur notre application de téléchargements, vous en découvrirez une infime partie, allant du kit de développement de jeux au compilateur FlashPascal. Il a également écrit plusieurs tutoriels sur Developpez.com.

C'est précisément à propos de FlashPascal que nous l'avons approché, avant de recueillir son avis sur le présent et l'avenir du développement logiciel en général, et du langage Pascal en particulier.

Vous découvrirez avec plaisir que Paul ne pratique pas la langue de bois.

Équipe Pascal : Tout d'abord, nous serions intéressés de connaître un peu votre parcours personnel.

Quand et/ou comment en êtes-vous venu à l'informatique, et développement en particulier ?

Paul Toth : J'ai commencé l'informatique à quinze ans, c'est-à-dire dans les années 80, où l'informatique domestique se faisait sur des ordinateurs de marques Sinclair, Commodore et autres Atari ; le PC n'existait pas encore, en fait.

Si je passais beaucoup de temps à jouer sur mon Commodore 64 (pour 64 Ko de RAM !), c'est aussi sur lui que j'ai fait mes premiers pas en programmation. Je suis tombé sur une phrase magique à l'époque, qui disait en gros « n'hésitez pas à taper ce que vous voulez sur votre clavier, vous ne pourrez jamais endommager votre Commodore ». C'était la porte ouverte à toutes les possibilités !

Par quel(s) langage(s) avez-vous débuté ? Comment en êtes-vous arrivé au Pascal ?

Le langage BASIC, seul langage disponible de base sur le C64, mais je suis très vite passé à l'assembleur du 6510, afin d'avoir des temps de réponse acceptables sur cette machine cadencée à 1 MHz !

Quelques années plus tard, avec mon premier PC, un 286, j'ai découvert QuickBasic. À la Fac, j'ai découvert le langage Pascal avec Turbo Pascal 3 qu'on lançait depuis une disquette DOS. Ce n'est qu'en entrant dans la vie active qu'un collègue m'a mis Turbo Pascal 5 dans les mains. J'ai alors suivi toutes les évolutions du langage et notamment son passage à Delphi.

Quelle est votre méthode de travail ? Quels outils utilisez-vous ?

Avec un parcours atypique, j'ai en premier lieu appris la programmation en autodidacte, quitte à réinventer des choses qui existaient par ailleurs à une époque où Google et Internet n'étaient pas à portée de clavier. Dans mes premières années de développement, des sociétés comme DPTool proposaient sur CDROM des compilations de codes à explorer… une sorte d'Internet offline.;)

Dès lors, j'ai gardé de cette époque une curiosité insatiable pour ce qu'il se passe « sous le capot ». De nos jours, la plupart des développeurs se fient à la puissance des machines et à l'intelligence des outils de développement pour faire tourner leurs applications développées avec un haut niveau d'abstraction. C'est un mal nécessaire pour mettre en place des projets parfois très complexes, pour lesquels il ne serait pas possible de s'attarder sur la technique, mais je pense que cette culture du bit manque malgré tout aux jeunes générations.

Je développe en Pascal à chaque fois que cela m'est possible ; j'ai eu l'occasion de travailler avec ce langage, sous DOS, OS/2, Linux et Windows évidemment. Mais j'ai aussi développé dans des langages moins amusants comme RPG/400 sur AS/400, Java, Visual Basic, LotusScript, JavaScript, PHP, C, C++…

À propos de FlashPascal…

Qu'est-ce qui vous a poussé à le développer, et avec qui ?

J'ai développé FlashPascal par curiosité ; je savais qu'un fichier SWF contenait un Byte-Code haut niveau sans rapport avec ActionScript, le langage de programmation Flash. Depuis longtemps, j'explore le fonctionnement des compilateurs, mais je n'avais encore jamais réussi à en produire un digne de ce nom. Avec Flash, j'avais la possibilité d'utiliser le langage Pascal pour produire un binaire haut niveau. C'est ce que j'ai fait.

Je ne savais pas exactement quelle audience aurait ce produit ; Flash - surtout la version 8 que supporte FlashPascal - est en perte de vitesse depuis des années, et le langage Pascal n'est pas le plus utilisé, mais j'ai lancé la première version en open source sur SourceForget.net. J'ai trouvé une personne qui s'est intéressée au produit et a traduit une bonne partie de l'API Flash. Au niveau du compilateur, elle n'a apporté que peu de modifications et dans des directions que je n'aurais pas choisies, du coup j'ai développé FlashPascal 2 seul ; il est resté gratuit, mais n'est plus open source.

Quels sont vos projets pour ce produit, à court ou à long terme ? Comment voyez-vous son avenir ?

FlashPascal est pour moi un bac à sable. Je voulais y mettre les techniques de programmation d'un compilateur que je puisse réutiliser sur d'autres plateformes, ne serait-ce que Flash 10. Mais dans l'état actuel du produit, ce serait assez difficile, car le code est très fortement lié à Flash 8.

La communauté autour de ce produit est-elle active ? Nombreuse ?

Active, relativement oui, nombreuse, oui et non, le produit dépasse le millier de téléchargements, mais on peut compter sur les doigts d'une main les personnes qui m'ont contacté à son sujet.

Quel est votre public cible  ? Qui est l'utilisateur type de Flash Pascal ?

FlashPascal ne présente qu'une partie de Flash dont le succès est très lié à sa capacité à produire des contenus multimédias. En effet, FlashPascal permet uniquement la création d'animations par la programmation. Il reste cependant un outil simple et sympathique pour créer des contenus dynamiques pour le web.

Qu'est-ce qui constitue votre principale concurrence ?

Il n'existe pas d'équivalent à FlashPascal, à ma connaissance ; par contre, la mort de Flash à petit feu causera inexorablement la fin de FlashPascal.

À propos du développement logiciel en général…

Comment, selon vous, le développement a-t-il évolué, depuis ces deux dernières décennies puis plus récemment ?

Pour faire simple : mal. J'ai commencé la programmation à une époque où tout était à inventer, j'ai vu l'apparition de produits toujours plus performants pour répondre aux besoins des développeurs. Et puis, comme si tout allait trop vite, on a décidé de casser tous ces acquis en s'imposant des contextes de travail inadaptés, comme les navigateurs. Avec HTML5, il devient presque possible de produire des contenus à peu près aussi efficaces que ce que l'on faisait en natif il y a dix ans, mais tout le monde a pourtant bien conscience des limites de cet environnement. Java, d'abord, a tenté de s'embarquer dans les navigateurs ; Microsoft a proposé SilverLight, qui est maintenant abandonné ; Flash, en son temps, a couvert une partie des besoins, et demain on nous annonce WebAssembly pour pallier les manques de JavaScript.

Avez-vous personnellement suivi ce mouvement ?

Je pense qu'il est indispensable d'être au courant des nouvelles technologies pour ne pas sombrer dans un passéisme bougon, mais ça n'interdit pas de garder un esprit critique et permet de ne pas se jeter sur une technologie parce qu'elle est à la mode.

Comment voyez-vous évoluer tout cela, dans un avenir proche ou plus lointain ?

Entropique, c'est-à-dire bordélique, mais très riche. Je pense que j'arrêterai l'informatique le jour ou tout le monde fera la même chose ; c'est la diversité qui me plaît.

À propos du langage Pascal…

Où situez-vous le Pascal dans le monde du développement logiciel ?

Là où on ne l'attend pas. Même s'il a toujours eu mauvaise réputation, c'est un merveilleux langage, et dans sa version Delphi, il a su pénétrer des structures un peu partout dans le monde dans des domaines très variés.

Où situez-vous le Pascal dans le monde du mobile ?

Delphi est aujourd'hui un produit clairement orienté professionnels. On pourra donc trouver quelques applications Delphi sur le Play Store, mais je pense qu'il est surtout utilisé pour des développements internes aux sociétés, dans des solutions couplées avec des applications desktop.

Pensez-vous qu'investir actuellement dans un langage comme le Pascal ait un sens ?

Oui, cela me fait vivre. :D J'évoquais plus haut la mort de SilverLight ; Microsoft a cette capacité de créer une technologie un jour et de la détruire le lendemain, peu importent les conséquences pour vos investissements. Embarcadero, de son côté, ne peut vivre qu'en assurant la pérennité de ses produits et donc de vos investissements.

Pour terminer…

Avez-vous un conseil à donner à ceux qui voudraient s'investir dans la création d'outils de développement en langage Pascal ?

Il y a dix ans, le langage Pascal c'était essentiellement Delphi sous Windows 32 bits ; aujourd'hui, c'est aussi bien Free Pascal et ses nombreuses plateformes que Delphi et les plateformes principales du marché (Linux également demain), c'est-à-dire un environnement beaucoup plus riche. Il faut donc plus que jamais bien organiser son code pour séparer ce qui est en pur Pascal multiplateforme d'un côté de ce qui est spécifique à l'environnement de l'autre. Pour revenir à FlashPascal, qui n'existe aujourd'hui que sous Win32 (il a été développé avec Delphi 6), toute la partie compilateur - dont une ancienne version en ligne de commande est toujours disponible sur flashpascal.sf.net - est totalement indépendante de Windows ; il est donc tout à fait envisageable de créer un FlashPascal pour Mac - il aurait peu d'intérêt pour Android ou iOS, qui ne supportent pas Flash 8.

Merci infiniment, Paul, de nous avoir consacré votre précieux temps !

Remerciements

Merci à Claude Leloup pour sa relecture.