Larmichette: Retour au BASIC, le langage de programmation le plus important de l'histoire de l'informatique
-
Par Clive Thompson
Le codage était l’apanage des élites, jusqu’à ce que BASIC arrive dans les rues.
J’entrais dans les misères de la septième année à l’automne 1980 lorsqu’un ami m’a entraîné dans une pièce faiblement éclairée au deuxième étage. L’école avait récemment installé un ordinateur Commodore PET dernier cri, une boîte trapue et anguleuse qui brillait dans le coin. « Tu dois essayer ça », m’a-t-il dit en me tendant un morceau de papier sur lequel il avait écrit un programme à la main.
Je l’ai mis sur le gros clavier mécanique du PET .
10 PRINT “CLIVE”
20 GOTO 10J’ai tapé « RUN », appuyé sur Entrée et j’ai regardé mon nom s’afficher sur l’écran en texte vert vif sur noir, encore et encore.
Pour un enfant de 12 ans à l’ère pré-Internet ? C’était électrisant. J’avais tapé quelques commandes – dont certaines semblaient facilement compréhensibles – et la machine avait obéi. J’avais l’impression d’avoir volé le feu à Zeus lui-même.
J’ai aussi réalisé, en étudiant ce petit programme à deux lignes, qu’il s’agissait d’une boucle infinie. L’ordinateur exécutait le code jusqu’à ce que le soleil s’éteigne ou que quelqu’un le débranche. Il n’y a pas beaucoup de façons, quand on est un préadolescent, de saisir la trame de l’infini. Mais je venais de le faire, grâce à ce langage informatique étrangement accessible : le BASIC.
Le lendemain, mes amis ringards et moi avons fait une descente dans la bibliothèque. Nous avons trouvé 101 Games in BASIC, un livre avec du code pour créer des versions de dames, Battleship, etc. C’était notre Necronomicon. Bien sûr, nous avions entendu parler de la programmation informatique, mais nous n’avions jamais soupçonné que c’était quelque chose que les enfants pouvaient faire.
Mais le BASIC ? Putain de merde. Cela semblait pratiquement explicite : des commandes comme IF et THEN vous permettent de prendre des décisions logiques, INPUT vous permet de poser une question à un utilisateur et de travailler avec sa réponse. Il s’agissait d’une programmation qui atteignait un juste milieu entre l’esprit d’un humain et celui de la machine.
C’est pourquoi j’ai longtemps soutenu que le BASIC était le langage le plus important de l’histoire de l’informatique. C’est un langage pour les noobs, bien sûr, mais à l’époque, presque tout le monde était un noob. Tout au long des années 70 et 80, Le BASIC a envoyé une onde de choc dans la culture technologique des adolescents. Les enfants qui ont eu la chance ou le privilège (ou les deux) d’avoir accès à des ordinateurs fonctionnant sous BASIC – le VIC-20, le Commodore 64, les boîtes Sinclair au Royaume-Uni – ont immédiatement commencé à écrire des jeux, des aventures textuelles, des chatbots et des bases de données. Dans les années 90, ils sont devenus la génération qui a créé toutes les applications Internet et tous les codes qui ont fait du cyberespace une réalité. Le BASIC a fait sortir le codage de sa tour d’ivoire et a ainsi fait basculer le monde sur son axe.
Il est difficile d’expliquer à quel point la plupart des codages étaient abstrus avant le BASIC. Dans les années 1950 et 1960, vous utilisiez généralement le langage machine, qui comportait des commandes telles que « sal 665 » et « sal 667 ». (Ceux-ci disent à l’ordinateur de déplacer son accumulateur, une région cruciale de la mémoire, vers la droite ou la gauche. Compris ?)
Quelques premiers visionnaires ont tenté de créer des langages pour les normés. Dans les années 1950, la pionnière informaticienne Grace Hopper a conçu un langage appelé FLOW-MATIC (un nom dont la méchanceté n’a pas encore été surpassée) qui utilisait des commandes de type anglais simple telles que IF EQUAL TO et READ-ITEM. Hopper voulait que les hommes d’affaires ordinaires soient capables d’écrire (ou du moins de lire) du code. Ses innovations ont ensuite été intégrées dans COBOL, le langage des systèmes bancaires et backend.
Mais c’est le BASIC qui a vraiment fait exploser le couvercle. Il a été créé en 1964 par John George Kemeny et Thomas Kurtz, deux professeurs de mathématiques au Dartmouth College qui pensaient – dans une position qui préfigurait le mouvement Learn to Code des années 2010 – que le codage devrait être quelque chose que tout étudiant en arts libéraux pouvait apprendre.
Pour quelqu’un qui vient de se lancer dans ce métier étrange, le BASIC semblait positivement thaumaturgique. C’était un lancer de sorts : vous prononciez des mots qui donnaient vie au fer et au silicium et leur faisiez faire des choses. (Comme le dit l’ingénieur logiciel Erin Spiceland, coder, c’est « dire aux roches quoi penser ».) Si vous étiez, comme moi, mariné dans Tolkien et d’autres romans de haute fantaisie fleuris, il y avait une profonde romance dans l’idée que chaque jour le langage pourrait affecter la réalité. Parlez, mon ami, et entrez.
Le BASIC encourageait également le bricolage. Fait inhabituel pour l’époque, il s’agissait d’une langue « interprétée ». Avec de nombreux langages précédents, vous écriviez le code, mais avant de pouvoir l’exécuter, vous deviez le « compiler » dans un petit paquet de 1 et de 0. Ce fut une affaire hésitante : écrivez, compilez, puis exécutez-le. Avec BASIC, en revanche, la machine a réagi instantanément. Vous avez écrit quelques lignes, appuyé sur RUN, et boum : la machine l’a interprété, sur-le-champ.
Cela a transformé le codage en une conversation avec la machine. Programmer, c’était comme penser à voix haute. Je travaillerais sur un chatbot, par exemple, donc j’entrerais quelques lignes dans l’analyseur, puis j’appuierais sur RUN pour voir comment il fonctionnait. J’ajouterais quelques lignes supplémentaires, observerais ce qui a fonctionné et ce qui n’a pas fonctionné, puis je réexécuterais. Ce va-et-vient avec la machine a rendu l’ensemble du processus de codage moins rébarbatif. C’était moins comme faire du Very Important Design que comme simplement déconner . La plupart des langages les plus populaires au monde (comme JavaScript et Python) sont désormais également interprétés à la volée. Mais BASIC a été parmi les premiers.
Le BASIC a également créé la première culture open source de masse au monde. Les gens partageaient librement du code : si un ami écrivait un jeu de blackjack sympa, nous en ferions tous une copie - à la main, comme les scribes dans les monastères médiévaux - et l’exécuterions nous-mêmes. Chaque mois, le magazine Compute imprimait des quantités de BASIC envoyées par des amateurs. J’ai passé un après-midi à taper minutieusement des centaines de lignes du « Jeu de la vie » de Conway que j’avais trouvées dans un numéro, puis j’ai regardé, hypnotisé, un organisme artificiel s’épanouir à l’écran.
Il y a un dicton dans le monde des programmeurs selon lequel le code est écrit principalement pour que d’autres codeurs le lisent, et seulement en second lieu pour que la machine l’exécute. BASIC l’a prouvé à grande échelle.
Mais comme langage pratique ? Pour créer des logiciels livrables ?
Le BASIC n’a pas toujours été génial.
Les graphismes, par exemple, fonctionnaient de manière glaciale. J’ai essayé de créer un jeu de tir spatial, et c’était incroyablement lent. C’est en partie pourquoi tant de créateurs de jeux BASIC se sont plutôt concentrés sur les aventures textuelles : les mots, au moins, sont rendus rapidement. L’explosion cambrienne des robots d’exploration de donjons basés sur du texte à la fin des années 70 et dans les années 80 était en partie le produit des limitations intégrées de BASIC.
BASIC comportait également quelques éléments vraiment irréfléchis. Malheureusement, il incluait la commande obscure GOTO (lue comme « aller à »). Cela vous permet d’écrire du code qui se déplace à la marelle : si le programme arrive à la ligne 120, vous pouvez dire à l’ordinateur de passer soudainement à la ligne 25, par exemple.
Pour un codeur débutant, c’était un moyen simple d’écrire des choses ! Mais cela a encouragé une structure complexe en « spaghetti », où la logique délimitait et zigzaguait partout. Si j’écrivais un programme assez long (comportant des centaines ou des milliers de lignes) et utilisais plusieurs dizaines d’instructions GOTO, mon code devenait un labyrinthe de mystères, impénétrable même pour moi. L’informaticien Edsger Dijkstra détestait tellement ce style qu’il a écrit un essai entier pour s’en plaindre : « Allez à la déclaration considérée comme nuisible ». Quiconque apprendrait à programmer en BASIC serait, comme il l’écrira plus tard, « mentalement mutilé au-delà de tout espoir de régénération ». (même pas vrai)
Dijkstra était hyperbolique. Mais il n’avait pas entièrement tort : après ses heures de gloire, la popularité du BASIC a chuté. Des langages plus récents sont apparus, encourageant des styles d’écriture plus propres et plus modernes et fonctionnant plus rapidement. Le BASIC vit toujours de nos jours - lui-même modernisé, avec GOTO (pour la plupart) banni - dans le monde de Microsoft Visual Basic, que de nombreux employés de bureau non codeurs ont utilisé pour rassembler des applications à usage interne. Mais de nos jours, seuls 4 % des développeurs professionnels admettent utiliser le BASIC. Moi, lorsque j’ai recommencé à programmer dans les années 2010, après une interruption de 25 ans, je me suis plutôt tourné vers des langages plus récents comme Python et JavaScript.
De temps en temps, cependant, je recherche un émulateur pour le Commodore PET. Je vais taper ce programme que j’ai écrit pour la première fois, il y a plus de 40 ans, et appuyer sur RUN.
Cela ressemble toujours à de la magie.
Source: https://www.wired.com/story/back-to-basic-the-most-consequential-programming-language/
-
J’ai programmé trois ans avec ce langage … c’était génial mais pervers car sans rigueur, il était impossible de comprendre le programme. Il m’est arrivé de re écrire des programmes car je ne comprenais plus ce que j’avais voulu faire à l’époque !
Du coup je mettais des commentaires, mais problème, il fallait les enlever pour pouvoir compiler, sinon : overflow !
et ce n’est pas tout, après la compilation, il fallait linker le programmebref que du bonheur
-
@Mister158 Au début, on parle de basic interprété, pas de compilation, tu rentres une ligne, tu tapes run et ça execute.
Le basic compilé, c’était très limité et merdique.
On pouvait aussi servir la numérotation comme repère de sous-programme, telle partie entre 100 et 199, l’autre 200 à 299, 1000 à 1999, etc…
La rigueur ne vient pas du langage, mais de la personne qui écrit le code. (mais ça doit être mon côté suisse)
La plus belle instruction du basic: REM
Sur le TRS-80, le plus chouette basic du monde et le processeur Z80 (qu’on vient juste de cesser de produire en 2024), le plus bel assembleur pour coder en langage machine.
Pour multiplier en nombre par dix (y’avais pas de mul dans les processeurs à l’époque)
- sauver le nombre dans un registre
- décalage à gauche avec insertion de 0 (x2)
- décalage à gauche avec insertion de 0 (x4)
- additionner au registre (x5)
- décalage à gauche avec insertion de 0 (x10) bingo !
Et il fallait faire ça sous 8 bit dans deux registres et plus pour le résultat.
-
+1 sur la larmichette…
… les séances en 3ème sur le comodore 64 du collège avec un prof de physique pas très frais qui comprenais probablement moins le basic que la secrétaire …
Les jeunes ne sauront jamais ce qu’ils ont loupé !! -
Evidement la rigueur est au codeur; Je l’ai appris à mes dépends.
Sinon moi je faisais déjà ça en pro à l’époque donc j’avais accès aux machines les plus sophistiquées
j’ai très peu fait d’interprété, juste en cours