Thomas E. Kurtz, co-inventeur du BASIC

Cet article vous a plu ? Pourquoi ne pas le partager ?

Thomas E. Kurtz… Ce nom ne dira pas grand chose à la plupart de mes lecteurs. Sauf s’ils appartiennent à la génération d’informaticien à laquelle j’appartiens. Et encore. Tous ne sont en effet pas passés par les affres du langage qu’il mit au point avec son collègue, John Kemeny, décédé il y a une trentaine d’année. Kurtz et Kemeny sont en effet les inventeurs du … BASIC.

L’invention du BASIC

Cela ne vous dit probablement rien, mais pour nous, vieux informaticiens, ça veut dire beaucoup. Le BASIC est en effet un très vieux langage de programmation, c’est même le langage informatique sur lequel j’ai appris à programmer, au début des années 80, sur un Commodore VIC 20, doté de 3,5Ko de mémoire vive. Autant vous dire qu’on n’allait pas très loin avec ça. Mais nous nous en contentions parfaitement, c’était déjà beaucoup plus de ce dont on pouvait disposer sur un calculatrice programmable comme une TI-57, et avec ses petites capacités graphiques à deux balles, le BASIC du VIC 20 permettait de faire des choses assez jolies pour l’époque.

En consultant l’article Wikipedia consacré à Kurtz, on apprend que nos deux inventeurs, Kurtz et Kemeny étaient deux professeurs de mathématiques au Darmouth College. C’est en fait Kemeny qui y recruta Kurtz. Avec un groupe d’étudiants, ils mirent au point un système de gestion partagée d’un seul ordinateur via plusieurs terminaux, ainsi qu’un langage rudimentaire pour initier leurs étudiants à la programmation. Ils lui donnèrent le joli nom de Beginner’s all-purpose symbolic instruction code, rapidement remplacé par son acronyme BASIC. Le langage ne fut pas breveté, pour permettre une large diffusion au sein des universités, et remporta un certain succès. Les grands constructeurs de l’époque s’en emparèrent, notamment DEC et IBM. On vit apparaître de nombreux dérivés du BASIC, de moins en moins compatibles entre eux, aboutissant au final à un effacement progressif; au profit d’autres langages, plus évolués et mieux normalisés.

Pourtant, il existe toujours un descendant du BASIC en activité. Développé par Microsoft, Visual BASIC est en effet directement issu du langage mis au point par Kurtz et Kemeny, tout en l’équipant d’un vaste jeu de fonctionnalités inspirées des langages procéduraux, qui faisaient défaut au langage initial. D’autres versions de BASIC incluant des capacités encore plus étonnantes, issues de la propgrammation orientée objet, ont même existé. C’est vous dire le succès de ce langage !

Le plus simple des langages

Avec son jeu d’instructions très simple, le BASIC était probablement l’un des langages les plus simples. Un programme BASIC classique avait la forme d’une liste d’instructions, écrites sur des lignes qu’on numérotait, de manière à pouvoir brancher l’exécution du programme vers telle ou telle ligne. Voici par exemple un petit programme BASIC pour créer un arbre généalogique (si vous vous demandez pourquoi choisir cet exemple;, regardez ici).

10 REM Programme pour créer un arbre généalogique
20 CLS
30 DIM NOM$(10), PARENT1$(10), PARENT2$(10)
40 PRINT "=== Création d'un arbre généalogique ==="
50 PRINT "Combien de personnes souhaitez-vous ajouter ?"
60 INPUT "Nombre de personnes : ", N
70 FOR I = 1 TO N
80   PRINT "Entrez les informations pour la personne "; I
90   INPUT "Nom : ", NOM$(I)
100  INPUT "Nom du parent 1 (ou vide) : ", PARENT1$(I)
110  INPUT "Nom du parent 2 (ou vide) : ", PARENT2$(I)
120 NEXT I
130 PRINT "=== Arbre généalogique ==="
140 FOR I = 1 TO N
150   PRINT "Nom : "; NOM$(I)
160   IF PARENT1$(I) <> "" THEN PRINT "  Parent 1 : "; PARENT1$(I)
170   IF PARENT2$(I) <> "" THEN PRINT "  Parent 2 : "; PARENT2$(I)
180   PRINT "---------------------------"
190 NEXT I
200 END

Je me souviendrai toute ma vie de mes premiers pas en BASIC. C’était à l’été 1982, je venais de recevoir le VIC 20 que m’avait offert mon oncle Jo Guez, disparu l’an dernier, en cadeau pour ma réussite au Bac quelques jours plus tôt. Un revendeur Commodore avait en effet ouvert à deux pas de chez mes parents, et j’y avais passé de nombreux après-midi à apprendre à utiliser ces ordinateurs personnels bon marché. Parti en vacances d’été à Juan les Pins, comme chaque année, j’étais parti avec cet ordinateur, qui ne comportait qu’un clavier qu’on devait connecter à un écran de télévision au format PAL (par chance, un autre de mes oncles avait rapporté d’Israel une télévision noir et blanc au format PAL quelques mois plus tôt).

Je me mis alors à programmer un jeu très simple, qui simulait le fonctionnement d’une course de voitures. Une course rudimentaire, bien entendu, qui utilisait le scrolling de l’écran pour donner l’impression de déplacement. Le museau d’une Formule 1 était affiché sur la ligne du bas, et en appuyant sur des touches de clavier prédéterminées, on pouvait déplacer ce museau vers la droite ou la gauche. La largeur de la route et la position de ses bords évoluaient de manière aléatoire, perdant ou gagnant un pavé de ligne en ligne, ce qui donnait l’impression de rouler sur une piste qui défilait sous nos yeux…

Ceci n’est pas une copie d’écran de mon jeu en BASIC, mais vous avez compris le principe…

Je n’ai bien évidemment gardé aucune trace de ce programme. Les disques durs n’existaient pas encore, et il me fallait réécrire tout le code à chaque fois que je voulais jouer ou montrer mon jeu… BASIC était vraiment rudimentaire, mais le plaisir qu’on en tirait était déjà immense.

Pour ma part, cette courte idylle avec le BASIC prit fin à partir de 1985, lorsque je fis mes premiers pas avec des langages plus étonnants, comme LISP grâce à Jérôme Chailloux, puis avec Pascal, C, Prolog et SmallTalk. Mais c’est une autre histoire…

Cet article vous a plu ? Pourquoi ne pas le partager ?