BASIC : les 60 ans du langage

Par:
ftonic

lun, 06/05/2024 - 09:27

Le Basic fut l’un des langages les plus connus et des plus utilisés à l’école, à l’université, à la maison, en entreprise. Jusqu’au début des années 2000, il reste très actif. L’émergence de Python et de divers autres langages relègue le Basic comme langage dépassé et obsolète. Contrairement à une légende, le Basic n’a pas été inventé par Bill Gates et Paul Allen pour l’Altair. Il apparaît dans le milieu universitaire en 1964. Nous fêtons son 60e anniversaire.

Le Basic apparaît dans un contexte propice : nous sommes à l’université de Darmouth. John Kemeny et Thomas Kurtz travaillent ensemble depuis plusieurs années, notamment autour de l’ordinateur, de sa programmation et du temps partagé. Le temps partagé est un des grands projets du duo. En 1962, il soumet l’idée.  

Un nouveau langage : 1964

L’ordinateur était réservé à des usages précis et surtout, il faut le dire, à une certaine élite de chercheurs et d’entreprises. Et les langages étaient tout sauf intuitifs et simples : ALGOL, FORTRAN ou le pur assembleur. Kemeny et Kurtz veulent une alternative : un langage simple à apprendre, rapide à coder et capable de s’exécuter sur l’ordinateur. L’idée d’un nouveau langage découle du temps partagé déployé à Dartmouth : le Dartmouth Time Sharing System ou DTSS.

Kemeny propose à son collègue de créer ce nouveau langage. Ce sera le Beginner’s All-purpose Symbolic Instruction Code, plus connu sous le nom de Basic ! L’idée n’est pas simple et il faut trouver le bon compromis. Après de nombreux échanges, une ligne directrice émerge : il faut que le langage soit plus simple d’accès que les langages actuels, qu’il soit aussi puissant et qu’il puisse utiliser le meilleur des langages tels que ALGOL ou FORTRAN. C’est cette volonté d’intégrer le « meilleur de » que l’instruction GOTO, au départ présent dans FORTRAN, se retrouve dans le Basic.  

La première itération du langage intègre (seulement) 14 instructions. Le langage est en Anglais. Le nom des instructions et la syntaxe générale doivent être faciles à retenir et à coder. Les opérations arithmétiques reprennent la symbolique utilisée : *, /, -, + et ^pour l’expression de la puissance. Si Kurtz s’occupe du langage, Kemeny développe le 1er compilateur Basic. C’est aussi à cette genèse que l’on doit la numérotation des lignes de code du Basic.

Officiellement, le Basic naît le 1er mai 1964 aux alentours de 4h du matin lorsque le DTSS est totalement fonctionnel et que les premiers programmes Basic s’exécutent. En réalité, le Basic existait avant cette date même si aucun document n’a survécu. 

Rapidement, le Basic va s’enrichir de nouvelles instructions et fonctionnalités : apparition du INPUT, des messages d’erreurs plus précis.  

Le Basic est avant tout destiné aux étudiants de l’université et au DTSS. Les créateurs du langage n’avaient rien envisagé pour la commercialisation, le support, le modèle de licence ni sur les droits de propriété. Quand des étudiants demandaient à pouvoir copier le langage : faites-le ! IBM va même réécriture le langage pour son propre temps partagé ! Le Basic se répand rapidement et acquiert une belle notoriété. 

Kemeny et Kurtz savent que le langage doit évoluer et supporter les possibilités des ordinateurs de son époque. Ainsi, à la fin des années 1960 / début 1970, plusieurs évolutions arrivent : le support des sous-routines graphiques, programmation structurée (qui va donner le Structured Basic) et la nécessité de standardiser le langage. Le dernier point est important pour pouvoir assurer une compatibilité et faire évoluer le langage de manière uniforme. Deux standards émergent début 1971 : le Minimal Basic et le Full Basic. Les deux créateurs vont créer leur propre implémentation du standard ANSI : The Basic. Malgré les standards, de nombreux dialectes apparaissent et malheureusement, certains respectent les standards, d’autres s’en éloignent. Ainsi, le Basic se fragmente et la portabilité du code n’est pas assurée.  

Le Basic se répand au-delà du temps partagé : mainframe et surtout les premiers micro-ordinateurs. Et ces derniers sont moins puissants dans les ordinateurs proprement dits. Et rapidement, les Basic dédiaient aux micro-ordinateurs s’adaptent aux contraintes et modifient le cœur du langage.  

C’est dans ce contexte d’évolution que Gates et Allen vont créer leur propre version de Basic pour l’Altair. 

Microsoft Basic : l’essort du Basic et un point de rupture. 

Deux jeunes étudiants codent sur les ordinateurs de l’université. Ils voient le potentiel de l’informatique. Et quand l’Altair sort : ils vont sauter sur l’occasion. Le constructeur cherche des logiciels et un langage de développement plus simple et accessible. C’est ainsi que Gates et Allen vont créer une petite entreprise : Micro-Soft (qui deviendra Microsoft). Nous sommes en 1975. Sans disposer d’un Altair physique, il faut développer l’interprétateur Basic pour l’Altair. Ils vont être aidés par Monte Davidoff. Si Gates et Allen développent le cœur du langage, Davidoff s’occupe des routines mathématiques. L’Altair Basic, qui sera la fondation de toutes les versions de Microsoft Basic postérieures, s’éloignent du Basic standard. 

L’Altair Basic et le travail de Microsoft sont à la fois l’essor du Basic et l’origine d’une cassure avec les communautés. Micro-Soft licencie à MITS (le constructeur de l’ALTAIR) le Basic et la documentation. Sur chaque Basic vendu, Micro-Soft touche plusieurs dizaines de dollars ! Mais Gates est furieu :il observe que les ventes ne sont pas aussi bonnes qu’attendues. La cause est très simple : les Hobbyistes et les membres des clubs homebrew copient le Basic sans payer la licence et le langage se répand ainsi. L’Altair se vend bien, très bien, et ce sont des centaines de licences que Micro-Soft ne voit pas. 

Le 3 février 1976, Gates publie une lettre ouverte qui fera date. Le cofondateur de Micro-Soft dénonce le fait que de nombreux utilisateurs partagent les logiciels sans payer. Il reproche qu’ils paient le matériel, mais pas le logiciel. MITS perd de l’argent, car il ne vend pas le logiciel et Micro-Soft aussi, car il doit imprimer les manuels, réaliser les programmes et les rubans papier contenant le Basic. Sans cet argent, Micro-Soft ne peut produire des logiciels de qualité et assurer le portage sur d’autres matériels dans de bonnes conditions. 

Cette lettre ouverte a agité une partie des communautés informatique. Tiny Basic est créé en réaction à la licence Micro-Soft. Même si la version initiale fut relativement limitée, le langage était libre et repose sur le standard. 

Microsoft règne sur le Basic !

Très rapidement, Microsoft s’impose comme LE fournisseur de Basic de l’industrie informatique. Les uns après les autres, les constructeurs intègrent cette version de Basic. Les Commodore Pet et les TRS-80, TI-99, l’intègrent.  

Apple tente de créer son propre Basic dès 1976. Wozniak décide de coder entièrement l’interpréteur en se basant sur le HP Basic (Woz est un ancien de HP). Proposer un langage tel que le Basic était important pour Apple. Il va adapter le langage au processeur 6502. Le génie de Wozniak fut de réaliser l’interprétateur et le compilateur sans avoir de compétences bas niveaux des langages ! Le langage prend le nom de Integer Basic, car il ne supporte que les entiers. Cette faiblesse limite le langage et les utilisateurs réclament la virgule flottante ! Cette absence s’explique, en partie, par le manque de temps pour développer le langage. 

Microsoft cherchait à étendre la vente de son Basic. Contact fut pris avec Apple qui refusa l’offre puis finalement, la Pomme revint vers Microsoft pour disposer d’un Basic complet. Un contrat pluriannuel fut signé. 

Le point d’orgue de cette hégémonie arrive lorsque IBM prend une licence du Microsoft Basic pour son futur IBM PC. IBM avait tenté de développer son propre système et langage pour le 5322 ce qui occasionna plusieurs années de retard et d’importantes difficultés internes. Pour finaliser rapidement le PC, IBM chercha les logiciels à l’extérieur. Grâce à IBM PC, Microsoft s’impose comme un éditeur incontournable et son Basic est désormais partout, ou presque. IBM va créer plusieurs versions : IBM Cassette Basic, Disk Basic, Advanced Basic, Cartridge Basic. Le Microsoft Basic va connaître plusieurs évolutions, plus ou moins réussies : GWBasic (1983-88) et QuickBasic (1985-1990).

Le Basic devient visuel

Avec le Macintosh et l’arrivée d’HyperCard, Apple ouvre la voie à une nouvelle génération de Basic et d’outils de développement : le développement graphique. C’est au milieu des années 1980 que Alan Cooper imagine un nouveau Basic : environnement graphique, développement par composants. À partir de 1987, il développe Tripod. En mars 88, il montre un prototype à Bill Gates. Microsoft rachète le projet et renomme le projet en Ruby. Il faudra 18 mois pour concevoir Visual Basic ! Le projet est entièrement réécrit, l’interface refaite avec la boîte à outils, la notion de VBX. Ruby n’est pas installé par défaut dans Windows. Initialement, Tripod / Ruby était un shell avancé pour Windows, mais Microsoft changea rapidement l’objectif : ce sera un véritable environnement de développement, ce que l’on appelle désormais un IDE incluant le langage, le compilateur et l’ensemble des fonctionnalités.  

Pour aller plus loin

Magazine Technosaures

M. J. Lorenzo, the history of the Basic…, 2017