Sonntag, 15. März 2009

COBOL: Die Sprache, die niemals stirbt

Grace Hopper, 1986:

»Am stolzesten bin ich auf die vielen jungen Leute, die ich in all den Jahren ausgebildet habe – das war wichtiger als die Entwicklung des ersten Compilers.«
Grace Murray Brewster Hopper, die Frau, die 1969 zum "Man of the year" ernannt wurde

Am 28. Mai 1959 tagte die Conference of Data Langunges (Codasyl), um die Idee einer universellen Programmiersprache zu diskutieren. Und so entstand der Name COBOL. Ein Jahr später war die entsprechende Sprache fertig – als COBOL-60. Doch die Ursprünge der Sprache gehen weiter zurück im die vierziger und fünfziger Jahre. Und verbunden ist COBOL mit einem Namen, der einen festen Platz in der Geschichte der Computerei besitzt: Grace Hopper.

Die Kodierkönigin Grace Hopper (1906 ‑ 1992):
Bugs, Compiler & Cobol
Von Raimund Vollmer
Email: RaiVollmer@aol.com

Vor mehr als 75 Jahren, 1943, begann der sensationelle Aufstieg der Grace Brewster Murray Hopper, der ersten »`Kodiererin' des ersten digitalen und programmgesteuerten Großcomputers« (Computerworld). Sie sollte gleich viermal die Softwarewelt verändern:
- erstens erfand sie den Begriff Bug, mit dem bis heute in der Software‑Szene Programmfehler jargonhaft bezeichnet werden,
- zweitens entwickelte sie den ersten Compiler namens A‑O,
- drittens ist sie die federführende Begründerin der Programmiersprache COBOL. Sie eröffnete damit dem Computer den Zugang zu kommerziellen Anwendungen,
- viertens gehörte sie zu den leidenschaftlichsten Verfechterinnen der Standardisierung. Sie adressierte erstmals das »Turm‑zu‑Babel‑Problem« (J. Presper Eckert) der jungen Computerbranche, die in den fünfziger Jahren unter der Fülle untereinander inkompatibler Versionen von Programmiersprachen litt.
All das und vieles mehr machte sie zu der am meisten bewunderten Dame der Computerbranche. Und sie kam zu Ehren: So erhielt sie im September 1991 von Präsident George Bush Sr. die National Medal of Technology. 1969 war sie sogar von der Data Processing Ma­na­gement Association zum Man Of The Year ernannt worden.
Hopper wurde am 9. Dezember 1906 in New York geboren ‑ als Tochter eines Marine‑Offiziers. Die U.S. Navy Reserve war auch ihr Schicksal. Nachdem sie 1934 an der Universität Yale ihren Doktor gemacht und bis 1943 am College Vassar Mathematik unterrichtet hatte, trat sie in die Fußstapfen ihres Vaters und ging zur Marine. Ihr gehörte sie bis 1986 nebst einigen Ausflügen in Wissenschaft & Wirtschaft an. Das heißt: Hopper war Hopper, egal für wen sie gerade arbeite. Nomen est omen. Sie hüpfte von einer Kategorie zur anderen und verband sie anschließend miteinander. Sie überwand Grenzen ‑ auch Altersgrenzen. Selbst als sie im Alter von 80 Jahren als dienstälteste Offizierin endgültig die Navy verließ, begann sie eine neue Karriere: als Beraterin bei DEC. Am 1. Januar 1992, also mitten im Jahressprung, verstarb Grace Hopper in ihrem Haus in Arlington (Virginia).[i]

Mark I, 1943

Amazing Grace ‑ die erstaunliche Grace wurde sie genannt, denn mit geradezu genialen Sprüngen verstand sie es, Dinge miteinander zu vereinen, die bis dahin nicht zueinander gehörten. Eine Frau als Offi­zier, das war das erste, was sie für sich durchsetzte. Mitten im zweiten Weltkrieg, verließ sie den akademischen Olymp und bewarb sich bei der Marine, um als Leutnant der U.S. Naval Reserve zurück in die Wissenschaft geschickt zu werden ‑ zu Professor Howard H. Aiken von der Harvard University. Dahinter stand indes kein Lehrauftrag, sondern ihre Marschroute war die Forschung. Denn zu jener Zeit entwickelte Aiken den Relais‑Rechner Mark I. IBM hatte dieses Groß‑Projekt, das insgesamt sechs Jahre intensive Forschungszeit verschlang, mit mehr als einer Million Dollar mitfinanziert. Nachdem der Rechner im Januar 1943 im IBM‑Labor in Endicott erstmals vorgeführt worden war, wurde er nach ausführlichen Tests für die Verladung nach Cambridge zur Harvard University vorbereitet. In diesem Umfeld stieß Hopper zu dem Team ‑ gleichsam als Grenzgänger zwischen einem Computerhersteller, einer Universität und einem Anwender. Es ist das klassische Dreieck, in dem sich bis heute die Programmierer sehen müssen. Diese drei Dinge, Technologieangebot, Lehre und Anwendung, sind es, die sie immer wieder miteinander verbinden müssen.
Eine Frau als Programmierer, das war das zweite, das Hopper für ihr Geschlecht durchsetzen musste. Neben Aiken und dem Fähnrich Robert V.D. Campbell war sie der dritte Mensch, der den ersten Großrechner der Welt, Mark I, programmieren durfte. Sie wurde sozusagen die Mutter aller Programmiererinnen. Ein »beeindruckendes Monster« nannte sie das Ungetüm, das 15,5 Meter lang und knapp 2,5 Meter hoch war.[1]
Der »Brontosaurier des Computerzeitalters« ‑ wie ihn der IBM‑Chronist William H. Rodgers in seinem Buch Die IBM‑Saga bezeichnete, wog mit seinen 765.299 Einzelteilen fast zwei Tonnen. Die Vorstellung »eines Zimmers voller strickender Damen« erzeugte bei dem Schriftsteller Jeremy Bernstein der bereits bei seiner Harvard‑Premiere am 7. August 1944 technisch überholte Rechner, der aus 3.304 klickenden Relais bestand. Doch die einzige Dame, die hier Programme strickte, war Hopper.[2]
Der Big Bang des Bugs

Sie nutzte die gigantische Strickmaschine, um damit gemeinsam mit Aiken sogenannte Bessel‑Funktionen zu berechnen und zu programmieren, die später in einem Dutzend voluminöser Bücher vom Harvard Computing Laboratory publiziert wurden. Böswillige Zungen behaupten, dass die Veröffentlichung der einzige wirtschaftliche Erfolg des Mark I gewesen war. Andere würden sagen, dass Hopper vielmehr bewiesen hat: mit Software kann man auch Geld verdienen. Sie verband sozusagen die Informatik mit dem Kommerz. Sie legte einen der Grundsteine für die heutige Software‑Industrie.
Wie jede junge Branche, so brauchte auch die Softwareszene einen eigenen Jargon. Er gedeiht besonders schön, wenn die Begriffe der Lebenswelt mit denen der neuen Disziplin verbunden werden. Mit der Erfindung des Begriffs Bug ist Hopper dies auf wundersame Weise gelungen. Und das kam so. »Irgend etwas stimmte nicht in einem der Schaltkreise dieses großen verglasten Computers«, berichtet Hopper von den Schwierigkeiten, die das Team mit Mark I im Sommer 1945 hatten. »Schließlich entdeckte jemand die Stelle und entfernte mit einer gewöhnlichen Pinzette das Problem: eine Fünf‑Zentimeter‑Motte. Von da an sagten wir, wenn irgend etwas mit einem Rechner schiefging: Da sind Bugs drin.«[3]
Das war der Urknall aller Software‑Fehler, der in Wirklichkeit ein `biologisch bedingter' Hardware‑Fehler war.
Die Moral von der Geschicht’: man kann in noch so hohe Abstraktionsebenen der Mathematik & Informatik entschwirren, die Realität holt die Programmierzunft immer wieder ein ‑ und sei es in der Gestalt einer Motte.
Diese heimtückische Verbundenheit mit dem Realitätsprinzip ist es, die den Softwareleuten die Arbeit so schwierig macht. Man möchte deshalb die Wirklichkeit auf Distanz halten, indem man ihre Begriffe in einen neuen Zusammenhang stellt. Dazu dient auch der Jargonausdruck Bug, in dessen Anwendung zugleich eine höchst raffinierte List liegt. Denn mit ihm überantworten die Softwareleute ihre eigenen Fehler, die ja Denk‑Fehler sind, zurück in die materielle Welt der Biologie. Es ist weniger so, daß die Informatiker damit ihr persönliches Versagen kaschieren wollen. Denk‑Fehler vertragen sich vielmehr nicht mit dem Ideal der reinen Software‑Lehre, die zu schützen und zu achten mitunter ihre wichtigste Aufgabe zu sein scheint. Dass Hopper selbst aus einer Motte eine Wanze (Bug) metaphierte, also zuerst die Realität rigoros umdeutete, bevor sie den Begriff zum Jargon erhob, verdoppelt nur die Raffinesse, mit der Softwareleute ihre formale Welt vor der realen schützen. Als Grenzgänger zwischen der ungeordneten Wirklichkeit und der nach formal korrekten Kategorien aufgebauten Welt der Computer bleibt im Fall eines Fehlers immer noch die Zuflucht: Es war ein Missverständnis. Wie kann ein Bug ein Softwarefehler sein, wenn die Wanze in Wirklichkeit eine Motte ist...
Das Missverständnis füllt also das Gap zwischen Wirklichkeit und Softwarewelt. Denkt man an Themen wie die Daten‑ und Prozessmodellierung, dann ist aus diesem reich gefüllten Gap inzwischen eine eigene Branche geworden, die nur eine Aufgabe hat: das Klären von Missverständnissen.
Das A und O aller Compiler
Die Erfindung des Begriffs Bug gibt bereits einen Hinweis auf das, worin Hoppers größtes Verdienst liegt: in der Erfindung von Zwischenebenen, die sie dadurch schuf, dass sie Welten übersprang. 1949 wechselte sie als Senior‑Mathematikerin zur Eckert‑Mauchly Computer Coorp., die ein Jahr später von Remington Rand aufgekauft wurde. Jetzt arbeitete sie bei einem Hersteller, der den Computer für kaufmännische Zwecke einsetzen wollte. Ihre Zielmaschine: Univac I, der erste kommerzielle Großrechner der Welt. Hier entwickelte sie 1952 den ersten Compiler, genannt A‑O. Er nahm im Unterschied zu den üblichen Interpretern ein ganzes Programm, das in einer leichter verständlichen algebraischen Notation (Quellcode) geschrieben worden war, und übersetzte es auf einen Schlag in die allein gültige Maschinensprache. Bis dahin hatte Univac den algebraischen ShortCode favorisiert, einem Interpreter der ein Programm Zeile für Zeile während der Laufzeit ausführte. Mit dem Compiler wurde diese Interpreter‑Ebene übersprungen und gleichzeitig für die Entwickler die enge Verquickung von Programm und Maschine überwunden. Damit hatte Hopper der Softwarezunft einen neuen Weg gewiesen ‑ hin zu höheren Programmiersprachen. Mit ihnen konnten die Entwickler ihre eigene Sphäre wesentlich ausweiten. Die Anwendungsentwicklung wurde einfacher. Sie verlor ihren elitären Anstrich.[4]

COBOL statt Babel
Damit hatte Hopper den wichtigsten Sprung vollzogen, der zugleich eine neue Zwischenebene begründete. Der vielleicht größte Aberglauben der Computerzunft der frühen Jahre bestand darin, dass sie glaubte, die neuen Maschinen sich nur für technisch‑wissenschaftliche Aufgaben eignen würde. Dem setzte 1957 Hopper ihre Programmiersprache Flow‑Matic entgegen, die bereits auf der englischen Sprache basierte und auf dem Univac I lief.
Damit hatte sie den Vorläufer der Programmiersprache COBOL (COmmon Buisness Oriented Language) geschaffen. Ihr großes Engagement galt dabei der Standardisierung dieser bis heute populärsten und am häufigsten totgesagten Sprache. (So hatte zum Beispiel Ende der sechziger Jahre IBM prognostiziert, dass COBOL innerhalb weniger Jahre durch PL/1 ersetzt werden würde. Als IBM 1987 ihre System Anwendungs‑Architektur ankündigte, war COBOL die Sprache der ersten Wahl und nicht PL/1, das damals zur Verblüffung vieler Experten nicht zur SAA‑Gemeinde gehörte.)[5]
Standardisierung ist bis heute die am stärksten umkämpfte Zwischenebene im Com­pu­ter­business. Und es war Hopper, die dieses Kampffeld als eine der ersten betrat. Nachdem sie sich 1966 im Rang eines Kapitäns aus der Marine verabschiedet hatte, wurde sie ein Jahr später wieder zurück­geholt. Ihre Auf­gabe: Standardisierung aller Computersprachen und Programme. Und so geriet sie immer wieder in die Konflikte zwi­schen Programmierer und Benutzer. Am besten exemplifiziert sei er in ihrem Lebenswerk, der Sprache COBOL.
Mit COBOL hatte sie in der Wirtschaft und bei Behörden den Sphären der Ver­wal­tung den Zugang zum Computer verschafft. Und damit geriet die Computerei in die Fänge der Bürokratie. Diese zeigten sich äußerst widerspenstig gegenüber jeder Art von Veränderung, während die ihnen dienenden Programmierer ihrer Kreativität freien Lauf lassen wollten. Ordnung & Chaos befanden sich in einem permanenten Widerstreit. Die größte Gefahr bestand darin, dass die Softwarezunft unterliegen und sich ebenfalls zu Bürokraten wandeln würde. Einerseits kämpfte Hopper für Veränderung, andererseits engagierte sie sich mächtig für Standardisierung. Sie besetzte also die vornehmste Kategorie der Verwaltung, die Standardisierung, als ein Thema des Computings. Das war ein gewaltiger Sprung, der vielleicht zu erfolgreich in den ver­gangenen Jahrzehnten aufgearbeitet wurde. Denn inzwischen lei­det die Branche eher unter zu vielen als zu wenig Standards.

Journalyse-Quellen:
[1] Hermann K. Reiboldt, Raimund Vollmer, Stuttgart 1978: »Der Markt sind wir«
[2] William H. Rodgers, Hamburg 1971: »Die IBM‑Saga«
[3] Frankfurter Allgemeine Zeitung, 13.4.93: »Wer?«
[4] Electronics, 17.4.80: »Special Commemorative Issue«
[5] Computerworld, 24.6.91, John M. Bradley: »COBOL: The successful failure«

Kommentare:

Laconia hat gesagt…

Grace Hopper hat sicherlich Großes geleistet, aber den "Bug" gab es schon lange vorher. Sie dokumentierte lediglich den ersten Fall eines "echten" Computer-Bugs - Beweis dafür, dass der Begriff von ihrem Team schon länger verwendet wurde. Bereits Edison verwendete den Begriff 1878:
http://en.wikipedia.org/wiki/Software_bug

Raimund Vollmer hat gesagt…

Danke für den Hinweis.