Ci-joint un résumé d'un article de Liam Proven paru sur Theregister que j'ai trouvé assez intéressant :
Un arrangement commercial assez astucieux a peut-être nui à la réputation d’un langage important.
Une génération de passionnés d'informatique aux cheveux gris a appris à programmer grâce au BASIC sur les ordinateurs personnels des années 1980. Depuis, les professionnels le méprisent. Pourquoi ?
Il y a cinquante ans, l’ordinateur Altair 8800 d’Ed Roberts (MITS) faisait la couverture de l’édition de janvier 1975 du magazine Popular Electronics. Cette apparition a inspiré deux étudiants à développer un interpréteur BASIC. Quelques mois plus tard, ces derniers fondait une entreprise pour le commercialiser.
Ils n’ont pas inventé le BASIC. Celui-ci a été co-développé par le professeur Thomas Kurtz, décédé en novembre à l’âge de 96 ans, et son collègue John Kemeny (mort en 1992). À cette époque, de nombreuses personnes ont exprimé leur gratitude pour le travail de Kurtz et leur nostalgie pour le BASIC, qui a changé la vie de beaucoup.
Cependant, pour beaucoup d’autres, notamment ceux entrés dans le monde de l’informatique après les années 1980, le BASIC est perçu comme un jouet. Comme l’a dit le grand informaticien néerlandais Edsger Dijkstra :
(À noter qu’il détestait également FORTRAN, PL/I, COBOL et APL.) Son article Comment dire des vérités qui peuvent blesser (1975) était sans doute un peu ironique. Mais il est souvent oublié que cet article date d’avant l’ère des micro-ordinateurs. Le BASIC original de Dartmouth était un compilateur, très différent des versions ultérieures.Il est pratiquement impossible d'enseigner une bonne programmation à des étudiants ayant été exposés au BASIC : en tant que programmeurs potentiels, ils sont mentalement mutilés au-delà de toute espérance de régénération.
L'évolution du BASIC
Le BASIC a pourtant évolué. Dès 1979, l'Acorn Series 1 et l’Acorn Atom de 1980 proposaient un BASIC intéressant avec des boucles DO...UNTIL, des vecteurs, des commandes graphiques bitmap, etc.
En 1981, le BBC Micro introduisait le BBC BASIC, qui permettait l’utilisation de procédures nommées avec des variables locales, facilitant les expériences de récursion. Il intégrait aussi un langage d’assemblage en ligne. Le BBC BASIC existe encore aujourd’hui grâce à Richard Russell, qui a porté ce langage sur le Zilog Z80 en 1983.
Dans les années 1980, quasiment tous les ordinateurs étaient livrés avec une version du BASIC. Même l’IBM PC en proposait une en ROM. Microsoft, qui a fourni le BASIC pour l’Altair 8800, en a fait une pierre angulaire de son succès. Aujourd’hui encore, Visual Basic .NET reste une offre de Microsoft.
Un accord avantageux
Au lancement, le Commodore 64 (C64) coûtait 595 $ (1 945 $ en 2025, soit plus de 1 600 £). Ce n'était pas bon marché. Réutiliser l'ancien BASIC a permis une économie considérable : le C64 ne disposait que de 20 kB de ROM, répartis sur trois puces : huit kilooctets pour le BASIC, autant pour le système d'exploitation Commodore KERNAL, et une ROM de caractères de quatre kilooctets. À titre de comparaison, le BBC Micro avait 32 kB de ROM, occupant la moitié de l'espace mémoire du processeur 6502. (C'est pour cette raison que le jeu classique Elite, tout en laissant de la place pour l'affichage, a dû se limiter à 22 kB.)
Un autre facteur est que Commodore n'avait pas à payer pour le BASIC. À l'époque, le défunt Jack Tramiel, alors patron de Commodore, était un négociateur redoutable. Dans les années 1970 – comme le soulignait The Register en 2007, lorsque Commodore dominait le monde – Tramiel racontait sa négociation avec le jeune Bill Gates de Micro Soft :
« Il m'a dit que je n'aurais pas à lui donner d'argent [à l'avance]. Il voulait simplement 3 $ pour [chaque unité vendue] », a déclaré Tramiel. « Je lui ai répondu que j'étais déjà marié. » Tramiel a insisté pour ne pas dépasser un paiement total de 25 000 $, et six semaines plus tard, Gates a accepté.
Grâce à Tramiel, Commodore a obtenu un accord très avantageux. L'entreprise n'a même pas payé de redevances – mais cela signifiait aussi qu'il n'y aurait pas de mises à jour. Résultat : Commodore Business Machines (CBM) a utilisé pratiquement le même BASIC pour le PET, le VIC-20 et le C64. Il n'a subi que des ajustements mineurs pour le matériel, même si ce dernier évoluait considérablement : le PET n'avait ni graphismes, ni couleurs, juste un bip ; le VIC-20 disposait de 3,5 kB de RAM et de graphismes limités en 176×184 pixels ; et enfin, arriva le C64, tout-en-couleur et tout-en-musique.
Apprendre à programmer
Lorsqu'une personne commence à programmer un ordinateur pour la première fois, elle s'assoit devant la machine et saisit du texte. Dans toutes les langues sauf les plus ésotériques, elle tape des mots – des mots ressemblant à l'anglais, car, grâce à son alphabet et sa grammaire, l'anglais est l'une des langues humaines les plus faciles à lire, écrire et comprendre.
Ainsi, vous vous asseyez à un clavier, même virtuel, et vous tapez des mots, des nombres et de la ponctuation. C'est tout ce qu'un débutant doit savoir : comment saisir du texte et comment le corriger en cas d'erreur.
Mais BASIC ajoute une couche supplémentaire à cette interactivité : il intègre aussi un modèle de stockage. Si l'utilisateur tape une commande, l'ordinateur essaie de l'exécuter. Mais s'il attribue un numéro à cette commande, l'ordinateur ne l'exécute pas immédiatement : il la mémorise pour plus tard.
C'est une métaphore profonde et importante. Elle élimine toutes les absurdités héritées des "fichiers", "dossiers", "éditeurs" et "compilateurs" qui datent des mini-ordinateurs des années 1960, à l'origine de tous les systèmes d'exploitation modernes. Les débutants n'ont pas besoin de ce bagage. Qu'ils l'apprennent plus tard, s'ils démontrent un réel talent et souhaitent poursuivre en programmation.
Tapez une expression simple : l'ordinateur l'exécute. Ajoutez un numéro : l'ordinateur la retient pour plus tard. C'est tout ce qu'il faut pour commencer à écrire des logiciels.
Cela élimine le concept hérité de "fichier". Les fichiers ont été inventés comme un mécanisme d'indirection. Ils sont un index nommé, un pointeur permettant de localiser des morceaux de données sur le stockage secondaire – autrement dit, sur le disque plutôt que dans la mémoire. Un novice ne connaît pas la différence entre RAM et disque, et il ne devrait pas avoir à la connaître. Ce sont des détails d'implémentation. Ils devraient être aussi invisibles que l'adresse mémoire du contrôleur de disque.
C'est un des grands problèmes des recommandations actuelles qui proposent Python comme remplaçant moderne de BASIC. Python est un langage de script, un interpréteur qui fonctionne sur un autre système d'exploitation. Certes, on peut l'utiliser de manière interactive grâce à un REPL, mais pour écrire des programmes, il faut un éditeur de texte pour créer un fichier contenant le code Python.
Les débutants ne devraient pas avoir à savoir ce qu'est un "fichier", un "éditeur", ni qu'ils ont besoin d'un "éditeur" pour manipuler leur "code source" dans des "fichiers". C'est une dette technique pure et simple : ce sont des détails d'implémentation qui devraient être invisibles.
Cela vaut encore plus pour les distinctions entre "compilateurs" et "interpréteurs", ou entre "code source" et "code binaire". Ce sont des détails hérités que des systèmes ont déjà cachés il y a des décennies. Les utilisateurs ordinaires et les débutants en programmation ne devraient pas avoir à les connaître.
La chute du BASIC
En Europe, Acorn a marqué les esprits avec son matériel, mais c'est Commodore qui a dominé le marché américain. Le Commodore 64, surnommé "le micro 8 bits le plus vendu", était livré avec une version basique (et peu évoluée) de Commodore BASIC.
Ce choix a permis à Commodore de réduire les coûts, mais au prix d’un BASIC inadapté aux capacités graphiques et sonores avancées de la machine. Les utilisateurs devaient se rabattre sur des commandes PEEK et POKE ou passer directement à l’assembleur pour exploiter pleinement le matériel.
Bien que le C64 ait été un immense succès commercial, ce BASIC dépassé a contribué à ternir la réputation du langage.
Réévaluer le BASIC
Le BASIC a été critiqué pour ses limitations, mais il avait une caractéristique essentielle : il simplifiait l’apprentissage. Contrairement aux langages modernes comme Python, le BASIC n'exigeait pas de comprendre des concepts comme les fichiers, les éditeurs ou les compilateurs.
Avec le BASIC, taper une commande l'exécutait immédiatement. En ajoutant un numéro de ligne, l'instruction était stockée pour plus tard. Cette simplicité a permis à des générations de débutants de s'initier à la programmation sans avoir à naviguer dans des systèmes de fichiers ou des éditeurs complexes.
Leçons pour l'avenir
Si nous voulons vraiment démocratiser l’apprentissage de la programmation, nous devrions envisager de revenir à des outils simples et accessibles comme le BASIC. Cela ne signifie pas ignorer les avancées des langages modernes, mais plutôt repenser les concepts hérités de l'informatique des années 1960, comme les systèmes de fichiers, et les rendre invisibles pour les débutants.
Les langages éducatifs doivent offrir un apprentissage progressif, avec des concepts simples comme les numéros de ligne, des commandes claires, et une transition fluide vers des paradigmes plus avancés.
Comme Dijkstra l’a dit :
Peut-être est-il temps de réexaminer ces erreurs, et de simplifier, pour de bon, les bases de la programmation.La compatibilité signifie répéter volontairement les erreurs des autres.
Partager