Le jour où Microsoft a failli mourir
Histoire du Langage Basic
Ordinateur
Apple était en difficulté après que ses clients se soient plaints du fait qu'Integer BASIC n'avait pas de routines à virgule flottante. Mais, en engageant Microsoft pour produire Applesoft BASIC, Apple a par inadvertance renfloué l'entreprise d'une situation beaucoup plus difficile.
L'année 1977 a été une année marquante pour l'industrie naissante de l'informatique domestique. Une trinité - comme le célèbre magazine Byte l'a appelée - de micro-ordinateurs plug-and-play, des ordinateurs qui n'avaient pas besoin d'être assemblés à partir de kits mais qui étaient essentiellement prêts à l'emploi à l'achat, ont été rendus publics : le TRS-80 Model I, l'Apple II et le Commodore PET, et Microsoft fournirait BASIC pour les trois.
Le Commodore PET 2001 (Personal Electronic Transactor, un backronyme), ainsi nommé pour profiter de l'engouement pour le pet rock des années 1970, a été dévoilé au Winter Consumer Electronics Show (CES) au début de 1977. La machine utilisait la même technologie du microprocesseur MOS 6502 qui faisait fonctionner l'Apple 1. La puce 6502 a été créée au début de la décennie, dans les laboratoires de Motorola.
Là, une équipe d'ingénieurs a conçu le microprocesseur 6800, un précurseur coûteux du 6502. Lorsque Chuck Peddle, qui faisait partie de cette équipe d'ingénieurs, a quitté Motorola pour rejoindre MOS Technology au milieu des années 1970, il a apporté la conception du 6800 avec lui.
Bricolant un minimum avec les spécifications du 6800, Peddle a aidé MOS à produire le 6801, une version bon marché du microprocesseur d'origine; peu de temps après, une puce modifiée, la 6502, est sortie. Et Commodore était intéressé.
Commodore Business Machines a été fondée en 1958 à Toronto par le survivant de l'Holocauste Jack Tramiel. Né Idek Tramielski, il a changé de nom après la Seconde Guerre mondiale. Après que Tramiel ait immigré aux États-Unis et servi pendant la guerre de Corée, il a trouvé du travail comme réparateur de machines à écrire et a finalement créé une petite entreprise appelée Commodore.
Commodore a d'abord produit des machines à écrire, puis des additionneuses, puis des calculatrices, y compris programmables. Mais lorsque Texas Instruments, qui fournissait des pièces de calculatrices, décida d'entrer lui-même dans la mêlée en tant que vendeur de calculatrices en 1975, Tramiel décida d'acheter ses fournisseurs de puces avec l'aide d'un investisseur clé, Irving Gould (qui deviendrait président de Commodore).
Dans le cadre de cette frénésie d'achat, en septembre 1976, Commodore a absorbé la technologie MOS : Tramiel avait effectivement déclenché une crise existentielle chez MOS en commandant des puces à l'entreprise mais sans les payer ; ce non-paiement a considérablement réduit le capital de MOS puisque Commodore était leur plus gros client, rendant MOS mûr - et bon marché - pour une prise de contrôle. Cependant, l'acquisition a également exigé que Peddle devienne chef de l'ingénierie chez Commodore.
Une fois chez Commodore, Peddle (avec André Sousan, vice-président de l'ingénierie; Sousan a inventé le nom «PET») a convaincu Tramiel de déplacer l'activité de Commodore des calculatrices aux ordinateurs personnels. Chez MOS, Peddle avait aidé à concevoir le kit d'ordinateur monocarte KIM-1, qui utilisait le 6502.
Le PET a relevé sa conception de base du KIM-1, mais a placé le matériel au centre du tout premier tout-en-un. un ensemble d'ordinateurs personnels, qui comprenait un moniteur monochrome, un clavier QWERTY de style chiclet avec pavé numérique supplémentaire, une interface de cassette et 4K de mémoire intégrée.
La machine a également doublé le jeu de caractères ASCII standard de 128; les 128 caractères supplémentaires étaient des symboles graphiques (par exemple, des combinaisons de cartes à jouer et des motifs géométriques simples). L'ensemble du jeu de caractères étendu du Commodore a été surnommé PETSCIL.
Commodore avait besoin de BASIC pour le PET, alors la société s'est tournée vers Microsoft. Le jeu d'instructions pour la puce 6800 était similaire au 6502, donc plusieurs employés de Microsoft, dont Bill Gates et Richard Weiland, ont écrit un interpréteur BASIC pour le microprocesseur en 1976.
Apprenant que l'Apple II utilisait le 6502, Microsoft a demandé à Apple s'ils voulaient BASIC, à quel point Steve Jobs les a rejetés durement. Ainsi, Microsoft s'est ensuite tourné vers Commodore, qui construisait également un ordinateur avec un microprocesseur 6502.
Gates et la société ont décroché un contrat pour mettre BASIC dans la ROM du PET, plutôt que d'avoir à charger l'interpréteur dans la RAM via des moyens externes (par exemple, une interface de cassette).
Désespéré de diffuser le BASIC, cependant, Microsoft a fait une erreur: ne pas négocier de frais par unité comme cela a été fait avec Altair - Gates a suggéré trois dollars par unité; en réponse, Tramiel a reniflé, "Je suis déjà marié" - la société a acquiescé, vendant le produit à Commodore pour un montant forfaitaire unique de 25 000 $, à payer uniquement lorsque l'ordinateur a été expédié.
De plus, la licence Commodore pour BASIC était extensible à l'infini, sans paiement supplémentaire ni autorisation nécessaire, à tout autre ordinateur Commodore doté du même microprocesseur.
Commodore a ensuite largement profité de cet arrangement en publiant des versions de BASIC pour toute sa série d'ordinateurs domestiques 8 bits, y compris pour le successeur du PET, le VIC-20, dont William Shatner était le porte-parole dans les publicités, et le Commodore 64, parmi beaucoup d'autres - au cours de près d'une décennie. Commodore a apporté un certain nombre de modifications au BASIC de Microsoft, telles que la modification de l'invite OK pour lire au lieu de READY.
La première version d'Altair BASIC a imprimé READY, tout comme Dartmouth BASIC; plus tard, lorsque Gates "éliminait des octets" et optimisait le code, il pensait qu'il était "plus rapide d'imprimer OK, ce qui est un mot gentil et amical", comme il l'expliquait dans une vidéo de 1994 sur l'Altair.
Des années plus tard, Gates a rappelé avec nostalgie la collaboration entre Microsoft et Commodore sur BASIC :
En ce qui concerne Commodore PET, ils ont commencé avec nous dès le début. Parce que nous avons aidé Chuck Peddle, qui était chez Commodore à l'époque, à vraiment réfléchir à la conception de la machine. Ajouter beaucoup de personnages amusants au jeu de caractères, des choses comme des visages souriants et des symboles de costume. C'était la première machine que nous avons faite qui avait ce jeu de caractères étendu [c'est-à-dire PETSCII].
À l'époque, cependant, Gates a sans aucun doute compris qu'il recevait le petit bout du bâton de Tramiel; pour s'assurer que Commodore ne puisse jamais prétendre qu'ils ont, à la place de Microsoft, écrit Commodore BASIC, Gates lui-même aurait inséré un œuf de Pâques dans la deuxième version du langage : tapez WAIT6502,1 dans le Commodore PET et le mot MICROSOFT ! apparaît en haut à gauche de l'écran.
Le contrat que Microsoft a conclu avec Commodore, cependant, n'a jamais demandé que le nom de Microsoft soit affiché n'importe où à l'écran, et, lorsque le fils de Tramiel (qui était ingénieur chez Commodore) l'a vu, il était furieux contre Gates pour avoir utilisé certains de la précieuse mémoire du PET pour le non-sens. L'œuf de Pâques a finalement été retiré pour libérer de l'espace.
Notez que l'oeuf de Pâques Microsoft n'est pas seulement apparu dans la version Commodore de BASIC, mais aussi dans d'autres implémentations, y compris l'ordinateur couleur TRS-80.
Ce marché faustien - vendre BASIC mais n'en tirer aucune récompense à long terme - a mis Microsoft dans une situation financière précaire.
Mais Jobs, mécontent de la lenteur des progrès de Wozniak dans l'ajout de routines à virgule flottante au BASIC Integer d'Apple II, a contacté Gates - un leader respecté par Jobs pour avoir reconnu l'importance du logiciel et ensuite construit une entreprise prospère, Microsoft, autour de lui.
Ils ont conclu un accord : Microsoft, à court d'argent, fournirait une implémentation BASIC appelée Applesoft BASIC à Apple pour un paiement forfaitaire immédiat de 31 000 $, ainsi que des paiements annuels pendant toute la durée de la licence, qui était valable huit ans. Microsoft sort de ses difficultés financières.
Mais Apple n'était pas encore clair. Le BASIC que Microsoft a concédé sous licence à la société comportait un certain nombre de bogues. Non seulement différents modes graphiques devaient être implémentés dans le code, mais l'Apple II n'avait pas d'assembleur intégré, obligeant les programmeurs Apple à travailler avec un assembleur croisé "en ligne" (à distance) via un télétype.
La connexion était extrêmement lente, de sorte que les travaux progressaient à pas de tortue ; Pire encore, en décembre 1977, la société facilitant l'interface, Call Computer, effaça accidentellement tout le travail que les programmeurs d'Apple avaient effectué sur Applesoft BASIC, forçant Apple à redémarrer le projet avec rien de plus que des notes manuscrites.
Mais le programmeur Apple Cliff Huston a eu une idée géniale : au lieu d'utiliser l'assembleur croisé Teletype pour recoder l'interpréteur, il utiliserait un assembleur croisé sur un ordinateur IMSAI de lecture de bande papier obsolète, une machine très similaire au Altair 8800.
Les travaux se sont poursuivis rapidement, Applesoft BASIC étant rendu public au début de 1978, sur cassette et dans les délais. Même s'il ressemblait à Integer BASIC, Applesoft BASIC présentait des limitations importantes :
il était lent, prenant particulièrement longtemps à se charger ; c'était capricieux, par lequel une mauvaise frappe pouvait supprimer un programme entier; et les graphiques haute résolution n'étaient pas disponibles. Il y avait cependant des commandes graphiques à basse résolution, comme pour tracer des carrés et des lignes.
Après avoir corrigé le code et corrigé quelques bogues, Microsoft a livré une deuxième version de 6502 BASIC à Apple. Les programmeurs d'Apple se sont à nouveau mis au travail pour améliorer le logiciel, ajouter des commandes graphiques haute résolution et renommer les commandes basse résolution; de plus, Applesoft II a été porté sur ROM pour Apple II Plus.
En 1985, la chaussure était sur l'autre pied, et maintenant Apple avait besoin de l'aide de Microsoft. Alors que le Lisa - du nom de la fille de Jobs, c'était le premier ordinateur personnel doté d'une interface utilisateur graphique mais était très cher - et le Macintosh, qui est arrivé un an plus tard, étaient au centre de l'attention de l'entreprise, l'Apple II était toujours leur produit le plus populaire, fournissant à Apple un flux de revenus constant, et donc le support de la machine devait se poursuivre.
Une partie de ce support impliquait BASIC et donc Applesoft, mais la licence de huit ans du produit de Microsoft était terminée, et Apple ne pouvait pas se permettre de vider Applesoft de la ROM Apple II car cela laisserait des milliers et des milliers de produits logiciels inutilisables.
Bill Gates avait Apple sur un tonneau. Au lieu de facturer à l'entreprise un bras et une jambe pour continuer à utiliser Applesoft, Gates a eu une idée différente : un échange. Apple développait en interne une nouvelle version de BASIC, appelée MacBASIC, pour le Macintosh, qui avait été livrée sans BASIC.
En 1985, une version bêta de MacBASIC avait été publiée et faisait le buzz ; MacBASIC semblait être plus rapide que le BASIC de Microsoft, et il a même été expédié à l'Université de Dartmouth pour être utilisé dans un cours d'introduction à la programmation. En termes simples, Gates voulait MacBASIC.
Andy Hertzfeld, employé chez Apple à l'époque, a rappelé plus tard la genèse de MacBASIC : en tant que portage d'Applesoft BASIC vers le marché professionnel Apple III.
Microsoft a fini par publier sa propre version de BASIC pour l'éphémère Apple III, tout comme Apple: Apple Business BASIC. Ces deux implémentations étaient d'une pièce avec les soi-disant Business Basics des années 1970 et 80, qui étaient BASlC optimisés pour une utilisation professionnelle.
Mais en 1981, alors que le projet Macintosh battait son plein, Hertzfeld et d'autres membres de l'équipe pensaient qu'un interpréteur Basic serait important, pour permettre aux utilisateurs d'écrire leurs propres programmes. Nous avons décidé de l'écrire nous-mêmes, au lieu de compter sur un tiers, car il était important que les programmes de base puissent tirer parti de l'interface utilisateur Macintosh, et nous ne faisions pas confiance à un tiers pour "l'obtenir" suffisamment vite pour le faire.
En quelques mois, un autre membre de l'équipe, Donn Denman, avait conçu un interpréteur BASIC assez complet (avec éditeur de texte, analyseur et interpréteur pour exécuter le code binaire) pour le proto-Mac, mais le matériel ne cessait de changer, nécessitant des modifications du code.
Bien qu'il ne soit pas prêt à temps pour le lancement du Mac en janvier 1984, Denman redouble d'efforts pour réécrire l'interpréteur le plus rapidement possible. Microsoft a publié une version de BASIC pour Mac, mais il n'a pas profité des fonctionnalités uniques de l'interface graphique du Mac, laissant la porte grande ouverte à l'interpréteur de Denman, qu'il a terminé en 1985.
Mais juste avant la sortie de MacBASIC, Bill Gates a conclu un accord pour obtenir MacBASIC en échange d'une extension de licence de huit ans pour Applesoft.
Gates ne pouvait imaginer aucune implémentation de BASIC fonctionnant sur un Apple, à l'exception de Microsoft - bien que sa société ait publié des versions d'autres langages de programmation comme FORTRAN, COBOL et Pascal, à ce stade BASIC était toujours sans doute le pain et le beurre de l'entreprise - et avec Microsoft qui a nouvellement eu la propriété légale de MacBASIC et les copies bêta exceptionnelles rappelées, MacBASIC était effectivement mort et enterré. Sauf, c'est-à-dire, pour les versions piratées de la bêta, qui ont fait le tour assez longtemps pour conduire à la publication de plusieurs livres sur le défunt interprète.