Même si la retraite a sonné depuis un bon moment pour le BASIC, ce langage de programmation fête ses 60 ans en ce mois de mai.
BASIC signifie Beginner’s All-Purpose Symbolic Instruction Code et porte très bien son acronyme. C’est l’outil de programmation à tout faire pour les débutants. Sachant qu’à l’époque la très grande majorité des utilisateurs étaient de vrais débutants, sans même de notion informatique. L’objectif de ce langage était alors de faire comprendre la logique d’un dialogue avec une machine. Ses expressions, sa méthode et son vocabulaire étaient censées être les plus « lisibles » possibles. Avant lui, peu de systèmes étaient simplement disponibles pour le grand public.
Thomas Kurtz et John Kemeny
Le tout premier BASIC a été inventé à l’université de Darmouth dans le New Hampshire par deux professeurs de mathématiques : Thomas Kurtz et John Kemeny. Pensé pour les étudiants, la formule a fait rapidement le tour d plusieurs université avant d’être repris par des clubs et des entreprises. En 6 ans, il devient le langage le plus couramment étudié a l’université. En 1975 avec l’apparition du MITS Altair 8800 il devient un langage de programmation populaire des clubs d’université.
Il est ensuite été dérivé dans de multiples variantes au fil des années. Le succès du langage lui même est corrélé à la miniaturisation des machines. Les langages de programmation proposés auparavant était des solutions de spécialistes et correspondaient à des ordinateurs qui occupaient le plus souvent une grande pièce plutôt qu’un coin de bureau. Le FORTRAN ne s’enseignait qu’a des niveaux avancés d’études quand le BASIC était proposé dans des clubs dés le Collège.
Son dérivé le plus célèbre, l’Altair BASIC fonctionne avec un interpréteur qui ne nécessite que 4 KB de mémoire. Cette faible consommation de ressource en font un outil qui intéresse les industriels et en 1977 on retrouve trois machines importantes sur le marché qui emploient ce langage directement intégré à leur firmware : le Commodore PET, l’Apple II et le TRS-80 de Radio Shack. Il est logique de voir que l’informatique personnelle a été le lancement d’une prgrammation grand public mais tout aussi logique d’imaginer que c’est par envie de programmer des jeux et des outils que les particuliers se sont équipés d’outils de ce type.
Un General Electric GE-225
Le BASIC a donc permis de proposer un système de programmation à des citoyens ordinaires, sur des ordinateurs personnels qui ne coutaient pas le prix d’un avion de ligne. A l’université de Darmouth, le premier BASIC a été développé sur un ordinateur General Electric GE-225 lui même programmable avec un langage qu’une poignée de personnes maitrisaient à l’époque. Ses instructions étaient pensées pour être compréhensibles immédiatement : PRINT servait a afficher quelque chose, les termes IF, ELSE et THEN a orienter l’action et l’exécuter et le fameux GOTO a se déplacer vers un autre élément du programme. On pouvait ainsi utiliser des mots courants pour piloter un logiciel. Moins visibles, des fonctions plus expertes permettaient de ne pas se lasser de ces ordres simples et autorisaient la programmation d’outils plus complexes. Autre point clé, si certains détails pouvaient changer entre un ordinateur et un autre suivant les versions utilisées, les briques principales et la logique d’ensemble restaient les même.
Beaucoup d’éléments techniques et une certaine méthode propre au BASIC sont toujours employés dans de multiples langages de programmation exploités aujourd’hui mais c’est surtout un langage qui aura marqué plusieurs générations de programmeurs en herbe. Des enfants qui ont mis la première fois les mains sur un clavier à l’école grâce à des clubs et des enseignants souvent passionnés d’informatique. C’est là que toute une génération a pu faire ses premiers pas avec ce langage avant de basculer vers des solutions plus modernes au fil du temps.
Par son approche grand public, sa modularité, sa légèreté et son fonctionnement qui a été complémentaire à la naissance d’une informatique personnelle, le BASIC a clairement été un pilier de la programmation moderne.
2,5€ par mois | 5€ par mois | 10€ par mois | Le montant de votre choix |
ah que de nuits à découvrir le Basic sur mon Commodore 64 … même s’il fallait pas mal de Peek et Poke pour arriver à animer 3 bouts de pixels à l’écran ;-)
Heureusement que VB, VBA, VB.net ont pris la suite avant de basculer vers d’autres horizons (Fortran, Pascal, Python, …)
Oui, il y a 60 ans on inventait un langage pour les débutants en programmation dégoutante…
Le Cobol et le Fortran existait déjà… le Pascal allait arriver et il reste (à mon avis) le meilleur langage (compilé) d’apprentissage !
Trs 80….mon apprentissage de la programmation !! et après en effet comme dit vieux chouf, le pascal avec pas mal d’années avec delphi, et plutôt python actuellement.
Mais je trouve qu’il est moins simple actuellement de trouver un langage ‘simple’, avec un gui agréable, le tout accessible gratuitement pour l’amateur lambda.
Un grand merci aux concepteurs du Basic et a Pierre pour ce sympathique rappel. 1964 était vraiment une bonne année !
IF BASIC=60 THEN MYAGE=BASIC
dit comme ça….le temps passe !!
Basic puis C, le combo gagnant de l’apprentissage dans les années 80/90. Comme les vieux d’ici, j’ai commencé sur commodore 64 puis CPC et Macintosh Plus.
Aujourd’hui, je conseille Scratch (pour les enfants), Python (en utilisant IDLEX) puis C++ pour apprendre à programmer, voire programmer tout court (ça couvre 95% du prototypage du commun des mortels)
@Gepp: j’oubliai le Logo pour les enfants (souvenir de mon premier code logo sur un TO en primaire <3 )
J’ai débuté la programmation avec le Basic et le TO7/70 en étant adolescent.
Depuis C++ et Java et une carrière en informatique, mais je retrouve le Basic avec VBA (Outlook et cie).
Toute une époque.
Daniel
Ah d’accord.
En fait tout le monde sur ce forum à le même age et le même parcours que moi.
Moi qui pensais qu’il n’y avait que des jeunes comme Pierre.
@Cerfvollant
tu as lazarus, disponible sous linux et windows: https://www.lazarus-ide.org/
Pour info, Double commander est ecrit avec Lazarus si tu veut voir ce qu’on peut faire
https://doublecmd.sourceforge.io/
En ce 6 mai, jour de mes 62 ans, cela me fait mal de savoir que je suis plus vieux (et moins célèbre) que ce langage qui a été le précurseur de l’informatique moderne…
Le basic est pas du tout à la retraite il a juste modernisé son nom en vba et reste très utilisé chez microsoft dans word et excel entre autres mais c’est moins fun que sur zx81 avec 1 Ko de memoire (mon pere m’avait deja soude un dark mode avec un interrupteur dessus pour que je me brule pas les yeux la nuit)
J’ai « débuté » le BASIC sur ZX80 à 5 ans alors que je ne savais pas encore lire et écrire ;-)
J’ai ensuite touché au Pascal et au Fortran à la fac (bons souvenirs), puis surtout à Matlab au boulot (c’est pas un langage mais bon, j’aimais bien ce côté boite à outils). Par contre j’ai jamais pu me faire à Pyhton, je bloque :-(
Le BASIC reste à mon sens un excellent moyen d’apprentissage à la programmation pour les grands débutants ou les enfants. Dommage que ce langage ne soit pas repris autour d’initiatives type microbit et autres : on aurait alors le meilleurs pour l’apprentissage de la programmation, de l’électronique et de la robotique !
@Fred : pareil !
çà donne effectivement un coup de vieux ton article Pierre ;-)
Dans les années 80 j’avais adoré le GFA Basic disponible alors sur les Atari ST
Je suis étonné que tu parles de retraite. Le BASIC continue d’exister et d’être massivement utilisé sous un autre nom dans la suite Office de Microsoft. Les macros utilisent le VBA (pour Visual *Basic* for Application) et si le nom change, la syntaxe est presque la même que les premiers BASIC (que j’ai pratiqués sur PC1500 et TRS80 model 100) en dehors des numéros de ligne qui ont – fort heureusement – disparu.
Mon message était pour Pierre. J’aurais dû faire un rafraichissement de la page avant de poster mon commentaire :)
@CerfVolant:
Si tu veux un langage simple et complet… sur ce seul critère de complexité vocabulaire+syntaxe, disons, je dirais que c’est le C qui s’impose. Certes, ce qu’il permet de faire avec cette approche minimaliste n’est pas forcément aussi simple mais c’est un langage que je qualifie de simple comparé à Python pour ma part. Et stable, lui. Le K&R suffisait à l’apprendre et je pense que tous ses exemples compilent encore sur le dernier GCC.
Si des langages interprétés simples comme le BASIC ont fait les débuts de l’informatique personnelle, c’est surtout car l’étape compilation était très longue: En école d’ingé, sur les exercices de TD de qq dizaines de ligne pourtant plus tard et sur des stations Unix du début des années 90, on était vite à plusieurs minutes: Pour dégrossir le gros des erreurs (souvent exprimées plus clairement que les compilos d’alors en prime) avant la compilation sans devoir se taper plusieurs minutes, on utilisait d’ailleurs des outils désormais tombés en désuétude, les linter!
En fait… je me remets à utiliser des linter quand j’ai un peu de python à faire (la richesse des bibliothèques permet de faire des choses utiles rapidement, même si personnellement je n’aime plusieurs aspects de ce langage): Trop de sales blagues sur lesquelles on tombe trop rarement et à l’exécution tandis que la compilation assure quand même déjà un bon niveau de correction d’un programme. Je pense que même bash fait mieux que python pour signaler les gags avant de tomber connement dedans. Pylint, avec un peu de config pour éviter les fixettes de nommage présentation que les grands prêtres gardiens du temple du guide Guido, compense cette tare de l’interpréteur.
Mais ça reste à mon sens un langage de glue de librairies codées dans des langages plus performants. La multiplicité de façons de faire la même chose ne doit pas aider non plus à l’enseigner même si, grosso modo, la version la plus compacte est souvent la meilleure: C’est d’ailleurs la raison profonde de la complexité supérieure des langages interprétés sur les compilés: En coller un max directement exécutable dans l’interpréteur codé dans un langage performant.
Pour familiariser de jeunes enfants, je dirais que Logo reste ludique avec sa petite tortue, surtout que des versions francisées existent. Je trouve que les langages type assemblage de blocs sont très mauvais dans ce cadre: Cela parait séduisant à priori, mais à l’usage cela tourne au n’importe quoi et n’est pas représentatif des langages de programmation en général, qui passent par l’écrit.
Dans les langages qui permettent tout comme le C (y compris du firmware et toutes les strates d’un OS), on entends parler de Rust en candidat (de plus) à se succession mais y arrivera-t’il? L’approche est par certains aspects séduisante, mais l’investissement pour résoudre le problème de sa permissivité côté gestion mémoire (largement résolu par d’autres outils tant logiciels que matériels d’ailleurs) risque de faire tiquer… et la liberté offerte par le C est très appréciée. Cela a du sens pour de l’applicatif sensible, genre en frontal réseau (d’ailleurs c’est Mozilla qui l’a créé), mais pour du soft bas niveau je pense que passé le hype cela va faire vite chier. De toutes manière à certains stades tout langage objet pose déjà pb (le C++ était resté à la porte du kernel des OS majeurs, il est plus logiquement venu pour les interfaces graphiques), car on ne maîtrise pas assez finement ses allocations alors qu’en C on peut le faire au même niveau qu’on le ferait en assembleur, la portabilité en plus.
@pilef: Le Darmouth BASIC, qui fête ses 60 ans donc, est à la retraite depuis 1979. Date de fin de ses mises à jour. Si tu veux jeter un oeil à sa syntaxe, tu comprendras pourquoi il et aujourd’hui un peu dépassé :
https://www.dartmouth.edu/basicfifty/commands.html
Apres, tout le billet explique en quoi cet ancêtre a beau être un heureux retraité, il a permis de développer materiel et logiciel au fil du temps. Dont le VBA…
@Pierre Lecourt: Première phrase de ton article : « Même si la retraite a sonné depuis un bon moment pour le BASIC, ce langage de programmation fête ses 60 ans en ce mois de mai. ». Ce n’est pas évident de comprendre que tu ne parles que de la retraite du dartmouth à ce stade :D
Merci @Pierre pour cet article du temps béni. Perso, j’ai commencé avec un PC1211 en 1984. Pas glamour et la lenteur en plus ! En 1984, j’ai pris un CPC 464 avec un basic bien foutu (while/end et atorenum à la demande) et un poil d’assembleur pour quelques effets waouh mais simples à coder :-) et même du forth !
Quand j’ai eu un Amiga 500 4 ans plus tard, le basic de microsoft livré avec était une bouse boguée et lente. J’ai embrassé le C (et un peu l’assembleur 68000 parce que c’était beau et agréable à coder).
Plus tard, j’ai aussi fait du Pascal, du Perl, du bash, du rexx, du Delphi. Première leçon de Delphi, apprise à la dure : on n’invente pas ce qui n’est pas encore dans le paquetage GUI standard car :
#1 c’est chronophage à construire ;
#2 ce sera encore plus chronophage à maintenir ;
#3 ce sera incompatible quand cette fonctionnalité sera finalement incorporée et tu devras reprendre beaucoup de code (car sinon #2 te le fera regretter) ;
#4 si cette fonctionnalité n’est finalement jamais incorporée, c’est signe qu’il n’aurait pas fallu la développer et réfléchir à faire sans ou autrement.
Delphi 3 fut le premier Delphi vraiment satisfaisant, en particulier avec l’équivalence code texte/code visuel.
Aujourd’hui, le seul front de programmation où l’offre d’origine ne dresse pas un mur insurmontable à la volonté d’en tâter d’un néophyte, ça m’a l’air le web. Pas tout le web, il faut mettre de coté les applis trop sophistiquées. Mais le genre d’applis qui restent, de gestion comme on disait à l’époque, n’est pas non plus de nature à susciter des vocations. Dommage car html5 + css3 (pas en mode dingue des effets) + js moderne (et pour un navigaeur moderne histoire d’éviter le codage de compatibilité qui est pédagogiquement un ennemi) + ajax du même acabit (avec un serveur php ou js), ça peut permettre de faire des choses sympas et assez facile à déboguer et multi-plateformes.
Mais pour la simplicité d’un premier langage sans nuire à sa puissance, je ne vois que le forth. Un forth classique qui n’essaie pas d’être objet. Et en plus on sera capable d’utiliser une antédiluvienne hp41 grâce au forth (ou dans l’autre sens).
@pilef: Ben les autres n’ont pas… 60 ans ? :D
L’ALtair Basic de Gates et Allen est né en 75. Le VBA date de 1991, ce ne sont pas encore des soixantenaires !
Cet article sur le basic me rappelle une machine que j’ai vue chez le youtuber « 8bit guy »(color maximite 2) , C’est une carte ARM prévue pour faire tourner des programmes en basic. Et même doom est dessus en basic. Je pensant avoir vu un article ici sur cette machine mais je n’ai rien retrouvé.
REM Les Appareils
10 Let un= »PET CBM »
20 Let deux= »Sinclair ZX81″
30 Let today= « GEEKOM IT11 »
40 Input « Votre age? »;age
50 IF age > 60 Goto 80
60 Print (« Vous êtes un jeune ;) « )
70 Goto 100
80 Print (« Vous avez connu le formidable clavier du « )
81 Print (deux)
100 End
Mon petit grain de sel : je trouve dommage que les enfants ne soient pas plus initiés à la programmation, un peu de scratch par-ci par-là, surtout bcp de « tablette ».
exemples :
https://playground.robogarden.ca/blog/top-5-countries-in-coding-and-programming
ou :
https://neil.fraser.name/news/2013/03/16/
Bien sûr l’IA va certainement changer pas mal de choses mais je vois dans les « séries asiatiques » notamment chinoises que ce problème est largement mis en avant et qu’ils en ont conscience. On va dire qu’un grand pourcentage des séries chinoises mettent en avant un héros premier rôle féru d’informatique. C’est de la fiction mais cela montre l’échelle de valeur là-bas qui contraste beaucoup avec l' »occident ».
J’ai trouvé un site pour enseigner la programmation aux enfants mais en anglais qui me semblait pas mal (code monkey).
Dans les antiquité, il y a aussi un ancêtre franco-français, le LSE (Langage Symbolique d’Enseignement) ou plus sérieux le LTR…
Le basic reste quand même un langage super facile à apprendre, surtout la version francisée (SI…ALORS…SINON).
Pour les tous petits, cela permet d’aborder la logique en douceur. Couplé au logo, je trouve que c’était une bonne idée à l’époque MO5/TO7, le problème étant le matériel, les profs pas formés, en fait le reste !
On parle de VBA, mais c’est plus un langage de script pour office, qu’un vrai langage de programmation.
Je ne m’imagine pas ouvrir Excel pour avoir une session VBA pour le plus petit.
Le roi de l’interprété actuel ? Python, clairement. Je l’utilise, mais je ne l’aime pas. C’est un délire intellectuel. C’est confus, rigoureux là où il ne faut pas, permissif là où il faudrait être rigoureux.
Sa seule force, ce sont les bibliothèques qui le rendent indispensables pour faire des petits programmes de 10 lignes, en prototype, pour traiter des données/fichiers, ou relier 2 applis.
Il y a scratch, mais c’est à part, c’est de la prog graphique. du blueprint, finalement.
Aborder un langage compilé (C, C++, on pourrait aussi dire Java), c’est déjà une étape bien supérieure.
Et je suis d’accord avec certains, le Pascal était une bonne école pour ça.
Mais pour en revenir aux débutants, aux plus jeunes surtout, je trouve que le basic est et reste une bonne idée pour prendre ses « premiers bains ».
Il y a, AMHA, de la place pour faire un BASIC++ : un environnement de développement ludique, coloré, qui attire et invite à la programmation, avec une passerelle vers un plotting graphique simple (repris du logo) et même un passage rapide vers de la programmation graphique « à-la-scratch ».
Un langage avec les mots clés traduits dans la langue du public, car tout le monde n’est pas anglais, histoire de faciliter l’accès du langage ; mais avec un surlignage permanent, pour rappeler les vrais mots clés en anglais du basic. D’ailleurs, les fichiers peuvent être sauvegardés en vrai basic, seul l’affichage serait traduit…
Je le répète, la cible est pour les débutants absolus ; faire un truc qui attire, et surtout pas faire fuir.
Et une fois le plaisir trouvé, vous savez tous comment se déroule la suite :)
Le BASIC correspondait bien à sa cible. Perso, celui de Texas Instruments m’allait fort bien. Malheureusement, « on » a voulu « enrichir » (complexifier) pour coller à l’image qu’on se faisait du souhait des clients. Quand on compare les usines à gaz sous les tableurs actuels, alors que la simplicité (performante) était de mise sous VP Planner (784 kB…) !; et encore, on ne parle même pas de sa version 3D. Vendre (plus cher, car c’est « amélioré »), voila le maître mot; quand bien même 95+% des acheteurs (quasi contraints) n’utilisent pas certaines fonctionnalités; que souvent ils ignorent, n’en ayant aucun besoin. Rester « basique » aurait été bien.
@pierre : il manque un o dans le texte => prgrammation
@Gepp> Comme les vieux d’ici, j’ai commencé sur commodore 64
J’ai commencé sur un PET à l’école, je suis un DinoTech ?
Mais ma 1er machine est un C64 avec son BASIC Micro$oft même si Commodore avait un accords pour pas afficher son nom sur la machine! J’ai vite fait de l’assembleur pour pouvoir utiliser les capacités de la machine. Le Basic servait de chargeur de code. Le PET avait lui un moniteur/assembleur langage machine intégré que l’on pouvait appelé avec un SYS 1 de mémoire, c’était plus pratique. Le C64 avec la cartouche KCS Power permettait de retrouver cela avec la pression sur un bouton de la cartouche.
Pour moi, le c# a remplacé les autres langages, c’est mon basic de maintenant (enfin depuis 15 ans), très simple à utiliser, a prendre en main gratuit (vs express). Certes avoir des connaissances c/c++ aide).
Je suis condamné à faire du JavaScript et j’ai horreur de ça.
Mon meilleur kiff fut l’assembleur 68000, même si j’en ai pratique pas mal d’autres.
Jamais pu blairer le pascal, bien trop verbeux et contraignant.
Le ti basic m’a donné une voie professionnelle il y a maintenant 39 ans… Souvenirs
Mon pied dans l’informatique quand tu as 11 ans c’est avec le Basic. Dans mon cas, ça a été plus avec l’Atari Basic . Quel fierté d’écrire seul un programme de devinette numérique. Puis apprendre à optimiser et fiabiliser son code.
Tout ça maintenant largement adulte, cette logique de programmation à forgé mon esprit logique .
Une belle école et une belle époque.
@yann : « […] en C on peut le faire au même niveau qu’on le ferait en assembleur, la portabilité en plus. »
Mouais ! Il y a trente ans, le « Dr Dobb’s Journal » publiait de temps en tant trois ou quatre pages de #define et autres pragmas permettant de rendre le C portable.
Quant au travail en équipe en C, c’est un peu la croix et la bannière pour faire accepter une certaine charte de lisibilité du code à des gens qui ont pris l’habitude de programmer « comme ils veulent ». Mais peut-être sont-ce uniquement les gens avec qui j’ai dû travailler qui étaient comme ça.
En tout cas, après avoir adoré le C, j’en suis revenu
Merci pour ce moment de nostalgie :)
Superbe vidéo qui nous replonge chaleureusement dans l’ambiance. Sur la chaîne YouTube de ce Monsieur, «Triceraprog», une autre vidéo parle d’un émulateur disponible pour celles et ceux qui souhaiteraient replonger dans le passé:
http://dtss.dartmouth.edu/
J’ai commencé pour ma part avec le langage machine du 6809, pour entrer en mémoire les codes d’un mini assembleur qui m’a permis d’écrire ensuite un assembleur plus évolué. Brique par brique, comme les pionniers :)
En nombre de lignes, le C est le langage que j’ai le plus utilisé. On peut tout faire en C.
J’ai adoré PASCAL pour sa rigueur.
Mais le langage qui m’a le plus fasciné est LISP. C’est difficile à décrire, il y une étrange intelligence dans LISP. Pour parvenir à vos fins, sur certains algorithmes simples ou complexes, vous devez à la fois vous surpasser en terme de créativité et accepter de rester à un certain niveau d’abstraction.
LISP est comme un miroir; Le résultat qu’il vous renvoie est le reflet de votre propre intelligence… Comme une invitation à vous améliorer :)
Je (re-)découvre ce site avec une grande satisfaction. Quelle mine d’informations! De réflexions toutes plus pertinentes les unes que les autres!
Python, un langage qui s’affiche sous le signe d’un… serpent! J’ai entendu quelques histoires édifiantes sur les Serpents, qui ne se terminent pas trop bien en général pour celles ou ceux qui frayent avec eux… Pareil, j’ai toujours eu du mal à accrocher, même si cela semble être devenu le point de passage obligé pour l’IA et nombre d’autres domaines scientifiques (au hasard, la librairie MagPyLib parmi tant d’autres).
Le C, une création de Pur Génie, une vision incroyable des besoins en matière de programmation, réfléchie, claire, spécifiée et… intemporelle.
FreeTinker, intéressant que vous évoquiez LIPS. Cela a réveillé quelques beaux souvenirs…
J’ai voulu savoir ce que ce language était devenu. Quête surprenante à la découverte d’un Monde qui semble continuer à évoluer en parallèle de notre réalité. Les « Lisp Machines » mystérieuses, inaccessibles, avec si peu de témoignages de ceux qui les ont approchées. Désormais aux mains de « Symbolics » qui s’en sont faits les gardiens apparement. On se croirait dans la série Fringe!
En creusant encore, je suis tombé sur une réflexion intriguante de la « malédiction du LISP » (« LIPS Curse »). En allant encore plus loin, j’ai découvert des travaux pour la création d’un Système d’Exploitation écrit dans ce lunguage.
Mezzano OS: Mezzano
Temple OS, écrit par un seul Homme, Terry A. Davis (1969–2018).
TempleOS
…ou dans la Série Millennium Millennium, peut-être.
Finalement, j’ai décidé d’acheter le livre de Peter Seibel, « Practical Common LISP ». Dans son édition de 2005 avec couverture rigide, parce que j’ai bien l’intention de me (re-)plonger dans le sujet.
Je resterai à l’écart des voies ferrées. Repose en Paix, Terry.