7 Punkte von GN⁺ 2025-04-04 | 2 Kommentare | Auf WhatsApp teilen
  • 50 Jahre Innovation bei Microsoft begannen mit dem Altair-BASIC-Code
  • Das erste Produkt, das es schon vor Office, Windows 95, Xbox und KI gab
  • Dieser Code leitete das Zeitalter des Personal Computers ein und wurde zur Grundlage für das Wachstum von Microsoft

Der coolste Code, den ich je geschrieben habe

  • 1975 gründeten Bill Gates und Paul Allen Microsoft mit der Vision: „Ein Computer auf jedem Schreibtisch und in jedem Zuhause
  • Dass Microsoft nun 50 Jahre alt geworden ist, ist in hohem Maß großartigen Führungspersönlichkeiten wie Steve Ballmer und Satya Nadella sowie den unzähligen Mitarbeitenden zu verdanken
  • Gates empfand an diesem denkwürdigen Moment Freude, aber auch Wehmut
    • Die Zeit, als er vor dem PDP-10 in Harvard programmierte, kommt ihm vor, als wäre sie erst gestern gewesen
  • Der Anfang von Microsoft war der Altair-8800-Computer, den er 1975 auf dem Titelblatt des Magazins Popular Electronics sah
    • Der Altair war ein Bausatz-PC eines kleinen Elektronikunternehmens namens MITS und für seine Zeit ein revolutionäres Produkt
    • In dem Moment, als sie das Magazin sahen, spürten Gates und Allen sofort, dass die PC-Revolution bevorstand, und beschlossen, Teil davon zu werden

Warum sie beschlossen, BASIC zu schreiben

  • Die beiden waren schon als Schüler an der Lakeside School von Computern fasziniert
  • Sie waren beeindruckt von der Tatsache, dass der Altair auch normalen Menschen die Möglichkeit zum Programmieren geben konnte
  • Gates und Allen schlugen MITS zunächst vor, eine BASIC-Sprache für den Altair entwickelt zu haben
  • Tatsächlich existierte die Software noch gar nicht, also mussten sie sie selbst schreiben

Das Grundkonzept der BASIC-Sprache

  • BASIC ist eine 1964 von zwei Professoren am Dartmouth College entwickelte Programmiersprache für Einsteiger
  • Sie wurde so entworfen, dass selbst Menschen ohne jede Computererfahrung nach kurzer Einarbeitung eigene Programme erstellen konnten
    • Zum Beispiel: ein Scheckbuch-Saldo-Rechner oder ein Tic-Tac-Toe-Spiel
  • Es war die erste Programmiersprache, die Gates und Allen lernten, und sie wird bis heute verwendet
  • BASIC ist wie Englisch eine Sprache, mit der man dem Computer Aufgaben erteilt, also etwa Befehle ausführt, mathematische Probleme löst oder Funktionen ausführt

Wie man BASIC für den Computer verständlich macht

  • Das Problem war, dass Computer BASIC nicht direkt verstehen konnten
  • Gates und Allen beschlossen, einen Interpreter zu bauen, der BASIC-Code Zeile für Zeile in Computerbefehle übersetzt und ausführt
    • Das hatte den Vorteil, in Echtzeit Feedback zu geben, sodass Einsteiger Fehler schnell korrigieren konnten
  • Sie erwogen auch einen Compiler, der das gesamte Programm auf einmal übersetzt, kamen aber zu dem Schluss, dass ein einsteigerfreundlicher Interpreter besser geeignet war

Beginn der Entwicklung

  • Da der im Altair verwendete Intel-8080-Chip damals nicht verfügbar war, entwickelte Paul auf Harvards PDP-10 ein Programm, das diesen Chip emulierte
  • Gates schrieb den Hauptteil des Interpreters, und ihr Freund Monte Davidoff übernahm das Modul für mathematische Operationen
  • Zu dritt arbeiteten sie zwei Monate lang Tag und Nacht und vollendeten eine Software, die zuvor gar nicht existierte

Überwindung der Speicherbeschränkungen

  • Computerspeicher war damals sehr teuer, und das Nachrüsten von Speicher im Altair konnte mehr kosten als der PC selbst
  • Das Ziel war, den BASIC-Interpreter innerhalb von 4 KB zu implementieren
    • So blieb den Nutzern noch Speicher, um ihre eigenen Programme auszuführen
  • Gates erreichte dieses Ziel mit verschiedenen Techniken zur Speicheroptimierung
    • Zum Beispiel: komprimierte Datenstrukturen und effiziente Algorithmen

Die Geburt von Microsoft

  • Nach unzähligen Nachtschichten führten sie den fertigen BASIC-Interpreter Ed Roberts, dem Chef von MITS, vor
  • Die Vorführung war erfolgreich, und MITS erwarb die Lizenz für diese Software
  • Durch diesen Erfolg wurde Altair BASIC zum ersten Produkt von Microsoft, und der Firmenname Micro-Soft entstand (später verschwand der Bindestrich)
  • Dieser eine Code wurde zum Ausgangspunkt aller Microsoft-Innovationen der folgenden 50 Jahre
  • Mehr Details finden sich in den Memoiren Source Code

Quellcode herunterladen

  • Der Original-Quellcode von Altair BASIC, mit dem Microsoft begann, kann direkt eingesehen werden
  • Als historisches Dokument zeigt er, wie sehr sich das Programmieren in den vergangenen 50 Jahren weiterentwickelt hat, und Gates ist auf diesen Code noch immer sehr stolz

Quellcode herunterladen (PDF)

2 Kommentare

 
iolothebard 2025-04-06

Der von Microsoft als OEM gelieferte BASIC-Quellcode für den 6502 (Apple II, Commodore, ..) wurde in einen buildbaren Zustand zurückversetzt (?).
https://github.com/mist64/msbasic

Es gibt auch ziemlich viele Fälle, in denen Leute direkt einen 6502-SBC bauen und MSBASIC darauf portieren.
https://github.com/beneater/msbasic

Nur zu staunen ist schön, aber vielleicht macht es noch mehr Spaß, selbst einzusteigen … ;)

 
GN⁺ 2025-04-04
Hacker-News-Kommentare
  • Der Quellcode ist eine unterhaltsame Lektüre. Ich habe den Quellcode von GW-BASIC gefunden, und darin gibt es ein paar interessante Kommentare
    • Es gibt einen Kommentar, dass nicht alle Ziffern in den Puffer passen, daher müssen alle Zeichen wieder vom Stack geholt werden, dann die Startposition des Puffers, und anschließend muss das Zeichen "%" ausgegeben werden
    • Es gibt einen Kommentar, dass die Konstanten des Zufallszahlengenerators nicht geändert werden sollen, ohne Knuth Vol. 2, Kapitel 3 zu konsultieren
  • Korrektur: GW-BASIC, nicht QBASIC
  • Steve Jobs sagte oft, Microsofts Problem sei, dass das Unternehmen keinen Geschmack habe
    • Der flackernde Schrifteffekt beim Scrollen erinnert mich daran. Er ist sehr ablenkend und lässt sich selbst im Lesemodus nicht deaktivieren
    • Nur der Vollständigkeit halber: Ich mag Bill Gates und das, was er für die Welt getan hat
  • Ich habe einen Intel-8080-Emulator so geschrieben, dass er zwischen Dec10/VAX/IBM VM CMS portierbar war. Der 8080 ließ sich mit einem einfachen Switch über 256 Werte implementieren. Geschrieben in FORTRAN77
    • Einen BASIC-Interpreter zusammen mit Fließkommaunterstützung zu schreiben, ist deutlich schwieriger. Das BASIC von Gates, Allen und anderen Mitwirkenden war ziemlich gut
  • Mit etwas Glück und der Bereitschaft, Risiken einzugehen, entstanden Erfolge auf unerwartete Weise. Ich bin nicht sicher, ob ich zu meinen Lebzeiten noch einmal etwas wie das PC-Zeitalter erleben werde. Vielleicht am ehesten das Mobiltelefon oder das Internet
  • Der Quellcode ist am Ende verlinkt (Warnung: PDF mit 100 MB)
  • Ich frage mich, warum man JS aktivieren muss, um diese Website anzusehen
  • Es ist interessant, das hier zu lesen, nachdem man Palo Alto von Malcom Harris gelesen hat
  • Das ist wirklich cool. Ich finde, Text ist als Medium im Design noch nicht ausreichend genutzt
  • Ich würde gern sagen: „Ich freue mich auf ein GitHub-Repository mit diesem Code in ASCII“, aber mir ist klar geworden, dass Microsoft das wahrscheinlich nicht erlauben würde
  • Microsoft (und vielleicht auch Bill Gates persönlich) hat in der Hacker-Community starke „Ablehnung“ hervorgerufen. Aber man kann nicht leugnen, dass er und Paul Allen echte Hacker waren und viel zum technischen Fortschritt beigetragen haben. Natürlich bevorzugen wir alle OSS und würden Linus (oder irgendeinen anderen OSS-Entwickler) hundertmal eher wählen als einen „bösartigen Kapitalisten“, aber Anerkennung gebührt ihnen trotzdem