BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Après MS-DOS, Microsoft Rend Open Source GW-Basic

Après MS-DOS, Microsoft Rend Open Source GW-Basic

Favoris

Microsoft a publié sur GitHub le code source originale de l’assembleur 8088 pour GW-BASIC 1.0, un dialecte du langage de programmation BASIC ("Beginner’s All-Purpose Symbolic Instruction Code", littéralement « code d’instruction symbolique multi-usages du débutant ») sorti en 1983 et fourni avec le système d’exploitation MS-DOS sur IBM PC et compatible PC. Après la mise à disposition du code source MS-DOS, en raison de nombreuses demandes, Microsoft a procédé à celle de l’interpréteur GW-BASIC sous licence MIT.

Microsoft a indiqué les motivations de la nouvelle version open source et les limites auxquelles elle adhère:

Ces sources, comme indiqué dans le README.md du repository, sont les sources du langage d’assemblage 8080 du 10 février 1983 et sont en open source à des fins de référence historique et éducatives. Cela signifie que nous n’accepterons aucune PRs ("Pull Requests") qui modifie la source de quelque façon que ce soit.


GW-BASIC est un interpréteur BASIC inspiré par Microsoft BASIC. La version 5 de Microsoft BASIC nécessitait un système Control Program/Monitor avec au moins 28 Ko de mémoire vive (RAM) et au moins un lecteur de disquette et offrait très peu en termes d’interactions avec des périphériques externes. Il n’y avait par exemple aucune fonctionnalités disponibles pour les périphériques de sortie (comme les graphiques, la couleur, le son ou la mise en réseau) ni les périphériques d’entrée (comme les joysticks ou les souris). Microsoft Basic était cependant considéré, à l’époque, comme une puissante implémentation de BASIC.

GW-BASIC était livré en tant qu’exécutable entièrement autonome, fourni avec le système d’exploitation MS-DOS sur IBM PC, il représentait une évolution des fonctionnalités par rapport à Microsoft Basic. GW-BASIC a grandi pour inclure une interface avec des joysticks, il pouvait communiquer bidirectionnellement via des ports série COM et produire des sons. GW-BASIC manquait cependant d’un support solide pour la programmation structurée, comme en témoigne l’instruction tant décriée GOTO et le manque de variable locales.

Il n’y avait en effet guère plus d’une décennie avant, Edsger W. Dijkstra, lauréat du prix Turing, a écrit son célèbre papier ("A Case against the GO TO Statement") discutant des questions liées à la déclaration GOTO. L’essai est considéré comme une étape majeure vers la dépréciation généralisée de la déclaration GOTO et son remplacement efficace par des constructions de contrôle structurées, telles que la boucle while. Soit dit en passant, le livre sur la programmation structurée de Dijkstra a énormément contribué à la compréhension de la conception des programmes et à l’utilisation de la programmation structurée.

Les programmes GW-BASIC s’exécutaient relativement lentement, en grande partie dû au fait qu’il s’agissait d’un langage interprété. Microsoft a mis à disposition le compilateur BASCOM BASIC, pour atteindre une vitesse améliorée. Finalement, GW-BASIC a pu exécuter des jeux simples et des programmes d’entreprise. Comme il était fourni avec MS-DOS, toute une génération de programmeurs a pu apprendre la programmation via BASIC.

GW-BASIC a finalement été remplacé par QBasic, la partie interpréteur du compilateur QuickBASIC, disponible séparément.

Certains développeurs ont réagi avec nostalgie. Luis Alonso Ramos a commenté:

Incroyable!! Je me souviens d’avoir utilisé GW-BASIC quand j’avais 9 ou 10 ans, apprenant la programmation en 1991-92.

10 PRINT “Hi!”
20 GOTO 100
100 END

La chose la plus impressionnante pour moi est l’avis de droit d’auteur dans GWMAIN.ASM:

COPYRIGHT 1975 BY BILL GATES AND PAUL ALLEN

Pas de Microsof à l’époque!

A vrai dire, les commentaires suivants peuvent être trouvés dans le code source:

BILL GATES WROTE A LOT OF STUFF.
PAUL ALLEN WROTE A LOT OF OTHER STUFF AND FAST CODE.
MONTE DAVIDOFF WROTE THE MATH PACKAGE (F4I.MAC).

Bill Gates a écrit beaucoup de choses. Paul Allen a écrit beaucoup d’autres trucs et code rapidement. Monte Davidoff a écrit le package MATH (F4I.MAC).

Paul Pacheco s’est exclamé:

J’ai appris à coder il y a 32 ans dans GW-BASIC. Cela ne me rajeunit pas.

Les sources publiées n’incluent pas les scripts de construction, les "makefiles" ou les outils requis pour générer des binaires exécutables, ni ne contiennent aucun binaire/exécutable pré-construit.

Il y a maintenant de plus en plus d’appels (qui ont commencé en 2011 avec le 20e anniversaire de Visual Basic) pour que Miscrosoft fasse de même avec VB-6.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT