7 points par GN⁺ 2025-04-04 | 2 commentaires | Partager sur WhatsApp
  • Les 50 ans d’innovations de Microsoft ont commencé avec le code d’Altair BASIC
  • Il s’agit du tout premier produit de l’entreprise, antérieur à Office, Windows 95, Xbox et à l’IA
  • Ce code a contribué à ouvrir l’ère de l’ordinateur personnel et a servi de fondation à la croissance de Microsoft

Le code le plus cool que j’aie jamais écrit

  • En 1975, Bill Gates et Paul Allen ont fondé Microsoft avec la vision de « mettre un ordinateur sur chaque bureau et dans chaque foyer »
  • Si Microsoft atteint aujourd’hui ses 50 ans, c’est en grande partie grâce à de grands dirigeants comme Steve Ballmer et Satya Nadella, ainsi qu’aux innombrables employés de l’entreprise
  • En revivant ce moment marquant, Gates a ressenti à la fois de la joie et une certaine nostalgie
    • L’époque où il codait devant le PDP-10 de Harvard lui semble encore toute proche
  • L’histoire de Microsoft a commencé en 1975 avec la couverture du magazine Popular Electronics, où figurait l’ordinateur Altair 8800
    • L’Altair était un PC en kit conçu par MITS, une petite entreprise d’électronique, et représentait à l’époque un produit révolutionnaire
    • Dès qu’ils ont vu ce magazine, Gates et Allen ont compris que la révolution du PC approchait et ont décidé d’y prendre part

Pourquoi ils ont décidé d’écrire ce BASIC

  • Tous deux se sont passionnés pour l’informatique lorsqu’ils étaient élèves à la Lakeside School
  • Ils ont été impressionnés par le fait que l’Altair puisse offrir au grand public la possibilité de programmer
  • Gates et Allen ont d’abord proposé à MITS de développer un langage BASIC pour l’Altair
  • Mais en réalité, ce logiciel n’existait pas encore ; ils ont donc dû le créer eux-mêmes

Les bases du langage BASIC

  • BASIC est un langage de programmation pour débutants créé en 1964 par deux professeurs du Dartmouth College
  • Il a été conçu pour permettre à des personnes sans aucune expérience informatique de créer elles-mêmes des programmes après un apprentissage assez court
    • Exemples : calculateur de solde de chéquier, jeu de morpion, etc.
  • C’est le premier langage de programmation appris par Gates et Allen, et il est encore utilisé aujourd’hui
  • BASIC est un langage qui permet de donner des instructions à l’ordinateur comme on le ferait en anglais, afin d’exécuter des commandes, résoudre des problèmes mathématiques ou accomplir différentes tâches

Comment faire comprendre BASIC à l’ordinateur

  • Le problème était que l’ordinateur ne comprenait pas BASIC
  • Gates et Allen ont donc décidé de créer un interpréteur (Interpreter) capable de traduire et d’exécuter le code BASIC ligne par ligne en instructions machine
    • L’avantage était d’offrir un retour en temps réel, permettant aux débutants de corriger rapidement leurs erreurs
  • Ils ont aussi envisagé l’approche du compilateur (Compiler), qui traduit l’ensemble du programme d’un seul coup, mais ont jugé l’interpréteur mieux adapté aux débutants

Début du développement

  • Comme ils ne disposaient pas de la puce Intel 8080 utilisée dans l’Altair, Paul a développé sur le PDP-10 de Harvard un programme permettant d’émuler cette puce
  • Gates a écrit le code principal de l’interpréteur, tandis que leur ami Monte Davidoff s’est chargé du module de calcul mathématique
  • Pendant deux mois, les trois ont travaillé jour et nuit pour achever un logiciel qui, au départ, n’existait même pas

Surmonter les contraintes mémoire

  • À l’époque, la mémoire informatique coûtait très cher, et ajouter de la mémoire à l’Altair pouvait revenir plus cher que le PC lui-même
  • L’objectif était d’implémenter l’interpréteur BASIC dans moins de 4 KB
    • Cela permettait aux utilisateurs de conserver assez de mémoire pour exécuter leurs propres programmes
  • Gates a atteint cet objectif grâce à diverses techniques d’optimisation mémoire
    • Par exemple : structures de données compactées, algorithmes efficaces

La naissance de Microsoft

  • Après d’innombrables nuits blanches, ils ont présenté l’interpréteur BASIC terminé à Ed Roberts, le dirigeant de MITS
  • La démonstration a été un succès, et MITS a acheté la licence du logiciel
  • Grâce à ce succès, Altair BASIC est devenu le premier produit de Microsoft, et le nom Micro-Soft est né à cette occasion (le trait d’union a ensuite disparu)
  • Ce seul code est devenu le point de départ de toutes les innovations de Microsoft au cours des 50 années suivantes
  • Pour en savoir plus, voir le livre de mémoires Source Code

Télécharger le code source

  • Il est possible de consulter directement le code source original d’Altair BASIC à l’origine de Microsoft
  • Gates considère encore ce code comme un document historique dont il est très fier, montrant à quel point la programmation a évolué au cours des 50 dernières années

Télécharger le code source (PDF)

2 commentaires

 
iolothebard 2025-04-06

Le code source de BASIC pour 6502 fourni par Microsoft en OEM (Apple II, Commodore, etc.) a été restauré (?) dans un état où il peut être compilé.
https://github.com/mist64/msbasic

Il y a aussi pas mal de cas où des gens fabriquent eux-mêmes un SBC 6502, puis y portent MSBASIC.
https://github.com/beneater/msbasic

C’est déjà bien de simplement admirer, mais ce serait peut-être encore plus amusant de s’y mettre soi-même… ;)

 
GN⁺ 2025-04-04
Commentaires sur Hacker News
  • Le code source est une lecture amusante. J’ai trouvé le code source de GW-BASIC, avec quelques commentaires intéressants
    • Il y a un commentaire expliquant que le nombre ne tient pas dans le buffer, donc il faut ressortir tous les caractères de la pile, récupérer la position de départ du buffer, puis saisir le symbole "%"
    • Il y a un commentaire disant de ne pas modifier les constantes du générateur de nombres aléatoires sans consulter Knuth Vol 2, Chapitre 3
  • Correction : GW-BASIC, pas QBASIC
  • Steve Jobs disait souvent que le problème de Microsoft, c’était qu’ils n’avaient pas de goût
    • L’effet de scintillement de la police lors du défilement me fait penser à cette remarque. C’est très distrayant, et on ne peut pas le désactiver même en utilisant le mode lecteur
    • Cela dit, j’aime bien Bill Gates et ce qu’il a fait pour le monde
  • J’ai écrit un émulateur Intel 8080 de manière portable entre Dec10/VAX/IBM VM CMS. Le 8080 pouvait être implémenté simplement avec un commutateur à 256 valeurs. C’était écrit en FORTRAN77
    • Écrire un interpréteur BASIC avec gestion des nombres à virgule flottante est bien plus difficile. Le BASIC de Gates, Allen et des autres collaborateurs était vraiment excellent
  • Un peu de chance et la volonté de prendre des risques ont porté leurs fruits de manière inattendue. Je ne suis pas sûr de revoir quelque chose comme l’ère du PC au cours de ma vie. Ce serait peut-être le téléphone mobile ou Internet
  • Le code source est lié à la fin (attention : PDF de 100 Mo)
  • Je me demande pourquoi il faut activer le JS pour voir ce site web
  • Il est intéressant de lire cet article après avoir lu Palo Alto de Malcolm Harris
  • C’est vraiment génial. Je pense que le texte est un médium sous-exploité en design
  • J’aimerais dire : « j’attends un dépôt GitHub contenant ce code en ASCII », mais je me rends compte que Microsoft ne l’autoriserait probablement pas
  • Microsoft (et probablement Bill Gates personnellement aussi) a suscité une forte « antipathie » dans la communauté hacker. Mais on ne peut pas nier que lui et Paul Allen étaient des hackers au sens pur et qu’ils ont beaucoup contribué au progrès technique. Bien sûr, nous préférons tous l’OSS et choisirions Linus (ou n’importe quel autre développeur OSS) 100 fois plutôt qu’un « capitaliste prédateur », mais ils méritent qu’on leur rende hommage