Forum

L'ami ne s'appelle pas molette , mais BASIC ... 60 ans déjà.

yanolezard

yanolezard

Nombre de posts : 307
Nombre de likes : 292
Inscrit : 5 décembre 2016
Contacter en MP

Bonjour à toutes et à tous,

L'ami de notre jeunesse, le langage de programmation "BASIC", vient de souffler ses 60 bougies ... depuis le mois de Mai 1964, date de la première version officielle de cet original langage.

Ah oui, "BASIC" vient de "Beginner's All-purpose Symbolic Instruction Code" ou plus littéralement « code d'instruction symbolique multiusage du débutant" ... c'est relativement moins joli, dans cette traduction française.

Son histoire est enthousiasmante :

"BASIC" a été conçu par John Kemeny et Thomas Kurtz, à l’Université Dartmouth pour que des étudiants non scientifiques puissent utiliser les ordinateurs.

Le concept de base est simple : trouver une alternative aux langages compliqués à apprendre (comme le Fortran, l'Assembleur, l'Algol), pour un apprentissage facile, une rapidité à coder et surtout capable de s'exécuter sur un ordinateur. Et comme les deux compères travaillent à la prestigieuse université de Dartmouth, ils profitent des structures informatiques en temps partagé pour tester leurs découvertes : le " Dartmouth Time Sharing System" (ou DTSS).

Après de nombreux échanges parfois limites, une ligne directrice émerge : le langage doit être plus simple d’accès que les langages actuels, plus puissant et 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 langage "Basic".

La première mouture intègre 14 instructions, en anglais, avec des exigences :

  • Le nom des instructions et la syntaxe doivent être faciles à retenir et à coder.

  • Les opérations arithmétiques reprennent la symbolique utilisée : *, /, -, +,^ (puissance).

Si l'ami "Kurtz" s’occupe du langage, l'ami "Kemeny" développe le premier compilateur "BASiC" avec la numérotation des lignes de code du "Basic".  

Officiellement, le langage "BASIC" est né 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 bien avant cette date même si aucun document n’a survécu. 

La cerise sur le gâteau : 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é. 

Deux standards émergent début 1971 : le "Minimal Basic" et le "Full Basic". Les 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.  

Deux jeunes étudiants codent sur les ordinateurs de l’université et voient le potentiel de l’informatique. Et quand l'ordinateur "Altaïr" sort : ils vont sauter sur l’occasion.

Le constructeur cherche des logiciels et un langage de développement plus simple et accessible : Bill Gates et Paul Allen sont à l'affût et vont créer une petite entreprise, en 1975.

Micro-Soft (qui deviendra Microsoft). 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 furieux : 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. Steve Wozniak décide de coder entièrement l’interpréteur en se basant sur le HP Basic (Wozniak 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 langage "BASIC" rencontre le côté visuel

Avec le "Macintosh" et "HyperCard", la "Pomme" ouvre la voie à une nouvelle génération de Basic et d’outils de développement : le développement graphique.

  • Au milieu des années 1980, 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.

  • I8 mois pour concevoir "Visual Basic" (1991)  : entièrement réécrit, interface refaite avec la boîte à outils, 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.  

Alors, depuis tout ce temps, le "BASiC" a fait des petits car il est disponible pour toutes les plates-formes récentes dont une version interprétée libre, conforme aux standards et hautement multiplateforme : le "Bywater BASIC" :

  • L'interprète est écrit en Langage C sous licence GNU/GPL, et ne permet pas de faire des "interfaces graphiques utilisateur" (GUI).

  • Une version libre, similaire au Visual Basic (pour Windows et GNU/Linux), et permettant donc de faire des environnements graphiques (GUI) : Phoenix Object Basic"

  • Deux autres plus récentes : "Gambas" et "K-Basic" (via Qt).

La plus connue des versions compilées est le Microsoft QuickBasic et le QBasic, une version qui ne permet pas de générer des programmes autonomes.

  • Les dernières versions de Visual Basic, sont aussi compilées,

  • D'autres versions, dont le "True Basic" et le PowerBasic sont compatibles avec le standard ANSI Basic.

  • True Basic Inc. a été fondée par les créateurs originaux du Basic, tout en lui adjoignant de nombreuses fonctionnalités.

  • PowerBasic fondée par le concepteur de "Turbo Basic", propose toujours son PowerBasic en version 16 bits pour MSDos, mais aussi en version 32 bits pour Console (PBCC) et pour Windows (PBWin).

Pour ce dernier un outil graphique (PowerBasic Forms) facilite la création graphique d'interfaces utilisateurs basées sur des objets Windows. Son compilateur produit des exécutables compacts, rapides et stables de qualité industrielle.

  • "GFA Basic" : réalisation d'exécutables puissants pour les environnements Atari et Windows disponible gratuitement en tant qu'Abandonware .

  • "RealBasic" : variante disponible pour les Apple Macintosh (génère des exécutables pour Windows et GNU/Linux)

  • Machine virtuelle "Parrot" : comment un interprète Basic est mis en application dans un langage de type assembleur.

  • "PureBasic" : variante avec une syntaxe simple mais avec une production rapide et des fichiers exécutables petits, pour Windows, GNU/Linux, AmigaOS, MacOS, avec compilation et instructions en assembleur en-ligne.

  • "wxBasic" : variante, écrite en C et C++, pour Windows, GNU/Linux, MacOS, gratuit et peut être utilisé en compilé ou en interprété.

  • "BlitzBasic" & "DarkBasic" : variantes spécialisées dans la création de jeux vidéo avec un accès simplifié aux API multimédias (OpenGL & DirectX). Le compilateur est payant dans les deux cas. Cette variante est optimisée.

  • "Liberty Basic" : spécialisé dans les IHM et reconnu comme le successeur de "QBasic".

  • "SmallBasic" : grand nombre de plates-formes (Windows, Win32, MS-DOS, GNU/Linux, PalmOS), sous une licence GNU.

  • "FreeBASIC" (communauté QBasic en déclin), compilateur 32-bits distribué sous licence GPL, multiplateforme : syntaxe calquée sur celle du QBasic de Microsoft et supporte pointeurs, assembleur inline et une branche orientée objet.

  • "OOoBasic" : Basic pour LibreOffice et Apache OpenOffice.

  • "TI-Basic" : utilisé sur certaines calculatrices "Texas Instruments".

  • "Basic Casio" : utilisé sur les calculatrices graphiques Casio.

Et encore ... pour les naufragés de VisualBasic 6 (VB6) comptant encore quelques centaines de millions de lignes de codes (notamment dans l'industrie, mais pas que), un projet est en cours de développement : "RAD Basic" (https://www.radbasic.dev/) pour continuer à prendre en charge la maintenance (laissée à l'abandon, sans solution par Microsoft) des programmes, en faire de nouveaux, donner libre cours à son imagination ... Il s'agit d'un projet qu'un grand nombre d'industriels plébiscite et qui pourrait leur "sauver la mise" (car réécrire des quantités parfois astronomiques de lignes de code peut leur coûter la "cagnotte du Loto").

Pour le plaisir des yeux (et des doigts) :

INPUT "Quel est votre nom"; UserName$ 'Nom de l'utilisateur

PRINT "Bonjour "; UserName$

DO

INPUT "Combien d'étoiles voulez-vous"; NumStars 'Nombre d'étoiles de l'utilisateur Stars$ = ""

Stars$ = REPEAT$("*", NumStars)

'Stars$ = STRING$(NumStars, "*")

PRINT Stars$

DO

INPUT "Voulez-vous plus d'étoiles"; Answer$

LOOP UNTIL Answer$ <> ""

LOOP WHILE UCASE$(LEFT$(Answer$, 1)) = "O"

PRINT "Au revoir ";

FOR A = 1 TO 200

PRINT UserName$; " ";

NEXT A

PRINT

Merci "Ami de jeunesse" et peut-être du futur, le BASIC (pas celui de l'environnement Framework NET), pour nous avoir fait revivre et vivre de nouveau tes lettres (ou tes instructions) de Noblesse.

Puisse "RAD Basic" reprendre avec dignité le chemin ... basic.

Bien à vous, toutes et tous,

Yanolezard

Au service des talents IT

Free-Work est une plateforme qui s'adresse à tous les professionnels des métiers de l'informatique.

Ses contenus et son jobboard IT sont mis à disposition 100% gratuitement pour les indépendants et les salariés du secteur.

Free-workers
Ressources
A propos
Espace recruteurs
2024 © Free-Work / AGSI SAS
Suivez-nous