War Bill Gates ein guter Programmierer?
Ein britischer Informatiker hat das Programm ausgegraben und analysiert,
das den Grundstein zum Erfolg von Microsoft legte. Eine Archäologie,
die sich mit Bit und Byte, statt mit Tonscherben befasst.
Es gibt Leute, die in ihrer Freizeit alte Programme lesen statt
neue Bücher. Reuben Harris, ein 30-jähriger Software-Ingenieur
aus London, widmet sich in seiner Freizeit diesem Vergnügen. Seine
Bibliothek ist das Internet, das eine Fülle von codiertem Lesestoff
bereithält. Zum Beispiel in Dutch Owens Software Museum (museum.sysun.com).
Als Harris dort eine Version von Altair-BASIC entdeckte, klingelte
es in seinen Ohren. Mit dem Prozessor des Altair, dem Intel 8080,
war er seit seiner Kindheit vertraut. Er schreibt: «Altair-BASIC
war ein Meilenstein in der Softwaregeschichte. Es war die erste
Programmiersprache für den ersten Personal Computer der Welt.
Und zudem das allererste Produkt, der Grundstein von Microsoft.»
Geschrieben hatten den Code Bill Gates, Paul Allen und Monte Davidoff.
Verglichen mit heutiger speicherfressender Software war Altair-BASIC
ein Kraftpaket, das bloss 4 Kilobyte Arbeitsspeipeicher benötigte
und daneben noch genügend Platz für BASIC-Programmcode liess.
Harris stellte sich die Frage: Waren Gates und seine Kollegen
eigentlich gute Programmierer? Und er machte sich auf die Suche
nach dem Quellencode des legendären Programms.
Das Jahr 1974 war ein «annus mirabilis» der Computergeschichte.
Im Januar kündigte Hewlett Packard den HP-65 an, den ersten programmierbaren
Taschenrechner. Im April folgte Intel mit dem 8080, dem ersten
8-Bit-Mikroprozessor auf einem Chip. Bill Gates war eben 19 geworden
und College-Student in Harvard, als die Zeitschrift «Popular Electronics»
Ende Jahr auf der Frontseite ihrer Januarnummer einen Bausatz
für den Altair 8800 ankündigte mit der Schlagzeile: «Worlds first
Minicomputer Kit to Rival Commercial Models». Die Kiste kostete
im Versand 400 Dollar, war einem Minicomputer von Data General
nachgebildet mit Lämpchen und Schaltern auf der Frontseite, aber
noch ohne Anschluss für einen Teletype und ohne brauchbare Software.
Eine Herausforderung für Bastler und unterforderte Studenten.
Gates und sein Jugendfreund Paul Allen beschlossen sogleich, einen
BASIC-Interpreter für den Altair zu schreiben, gestützt auf Dartmouth-BASIC,
eine Programmiersprache, die 1964 am Dartmouth-College für Programmieranfänger
entwickelt worden war. (Beginners All-Purpose Symbolic Instruction
Code). In einem Energieschub sondergleichen schrieben Gates und
Allen die Software in wenigen Wochen in Tag- und Nachtarbeit,
unterstützt vom Mitstudenten Monte Davidoff, der das für BASIC
zentrale mathematische Paket programmierte. Da an der Harvard
University kein Computer mit einem Intel 8080 Prozessor zugänglich
war, simulierten Gates und Davidoff die Software auf einer Digital
Equipment PDP-10 und integrierten aus der Welt von DEC gleich
noch einige BASIC-Erweiterungen in ihren mikroskopischen Interpreter.
Mit ihnen konnte man zum Beispiel aus BASIC direkt auf Speicherplätze
zugreifen (PEEK und POKE) oder Maschinencode einbinden.
Mit der Software auf einem Lochstreifen flogen Gates und Allen
im Frühling 1975 nach Albuquerque, um sie H. Edward Roberts, dem
Inhaber von MITS vorzuführen, der Firma, die den Altair-Bausatz
vertrieb. Den Computer hatten sie bisher noch nie gesehen, die
Software erst in der Emulation mit Macros auf der PDP-10 getestet.
Im Flugzeug schrieb Allen nach dem Altair-Handbuch ein Ladeprogramm
für den Lochstreifen. Vor Ort luden sie damit ihren Interpreter,
erst erfolglos, doch im zweiten Anlauf meldete er sich mit READY
auf dem Teletype. Allen tippte den Befehl PRINT 2+2, der Teletype
hämmerte eine 4 auf Papier. Das Programm funktionierte! Es war
sicher einer der dramatischsten Augenblicke in der Geschichte
der Informationstechnologie, obwohl das die Beteiligten wohl kaum
realisierten. «Das BASIC, das sie für den Altair schrieben, mit
seiner intelligenten Kombination von Eigenschaften von Dartmouth
und von DEC, war der Schlüssel zu Gates and Allens Erfolg beim
Begründen einer Personal Computer Industrie», schreibt der Computer-Historiker
Paul E. Ceruzzi.
Reuben Harris, selber Experte für Visual Basic, hat jedoch nicht nur in den Geschichtsbüchern recherchiert, sondern im Code selber, dessen Original-Source in den Archiven der Harvard University unter strengem Verschluss aufbewahrt wird. Nicht einmal das Fotokopieren des einmaligen historischen Dokumentes wird erlaubt. Harris nahm deshalb Kontakt mit dem Mit-Autor Monte Davidoff auf und bekam von ihm via Internet eine Kopie des 4k-Interpreters in Maschinencode zugeschickt. In viermonatiger, mühsamer Arbeit «disassemblierte» er Byte um Byte, versah den Code mit aussagekräftigen Adressen und Kommentaren. Auf seiner Website steht er nun der Öffentlichkeit zur Verfügung, so dass sich alle Welt über Bill Gates Programmierkompetenz ins Bild setzen kann.
War Bill Gates wirklich ein starker Programmierer? Oder war er
«just a salesman», wie viele vermuten? Die Frage muss auf dem
Hintergrund der damaligen technischen Möglichkeiten und dem Stand
der Programmierkunst beantwortet werden. Modernes Software-Engineering
und Techniken wie strukturiertes oder objektorientiertes Programmieren
waren noch nicht entwickelt und hätten auch viel zuviel Speicherplatz
benötigt. Harris stiess beispielsweise auf einen rätselhaften
Sprung in die Mitte einer 3 Byte langen 8080-Instruktion. Zuerst
glaubte er an einen Programmfehler, doch dann fand er heraus,
dass es sich um den sogenannten LXI-Trick handelte, der Intel-Veteranen
wohlbekannt ist, um Speicherplatz zu sparen. Einem heutigen Programmierer
lässt solch vertrackter Spaghetticode jedoch die Haare zu Berge
stehen. Damals war haushälterischer Umgang mit Speicherplatz eines
der obersten Gebote. Es gab zwar schon BASIC-Interpreter für PDP-Minicomputer,
aber die belegten mindestens 8 Kilobyte.
Bill Gates selber erwähnt in einem Interview, dass er damals sogar
die typische Bereitmeldung READY des BASIC-Interpreters durch
das kürzere OK ersetzte, um noch ein paar Bit zu sparen.
Reuben Harris bezeichnet sich selbstbewusst als «die einzige Person,
die den Code analysierte, den Bill Gates selber schrieb». Und
er kommt bezüglich seiner Programmierkompetenz zum Schluss: «Ja,
er war verdammt gut!» Auf eine weitere Entdeckung ist Harris besonders
stolz. Er hat herausgefunden, dass die Fehlercodes, die Gates
und seine Freunde in ihrem Altair-BASIC verwendeten, auch bei
den neuesten Versionen von Microsofts Visual Basic noch dieselben
sind. In den unendlichen Datenhaufen moderner Software finden
sich also noch Spuren der Geschichte, ähnlich wie in einer Stadt,
deren Glaspaläste auf uralten Grundmauern ruhen. Vielleicht wird
sich eine besondere Sparte der Archäologie schon bald mit Bit
und Byte statt mit Tonscherben befassen. |
 |