3. Die frühe Geschichte der Software (1952-1968)

Punch card from a typical Fortran program Arnold Reinhold/Creative Commons
Punch card from a typical Fortran program Arnold Reinhold/Creative Commons

John Backus erhält 1993 den Charles Draper Preis für seine Entwicklung von Fortran, der ersten universellen Computersprache. Der Preis wird für die Entwicklung eines nicht physischen Gebrauchswertes vergeben. Software wurde in den ersten Entwicklungsjahren der Computertechnologie kaum als notwendig erachtet. Der Fokus lag auf der Entwicklung der Hardware.
Wie entwickelte sich die Software?
Eine einfache Definition von Software besagt, dass sie eine Ansammlung von Befehlen ist, die einen Computer dazu bewegen, eine spezielle Aufgabe durchzuführen.

Die Anfänge (1944-1951)

Der Harvard Mark 1 wurde 1944 programmiert, indem Nutzer eine Reihe von bis zu 24 Löchern in einen Papierstreifen stanzen mussten. Da der Mark 1 nicht speicherprogrammierbar war, mussten selbst sich wiederholenden Befehle jeweils neu in die Lochkarten gestanzt werden.
Deshalb wurden einige Codesequenzen, die immer wieder eingesetzt wurden, permanent in den Schaltkreisen des Mark 1 fest verdrahtet. Dies löste aber nicht das grundlegende Problem und machte die Rechner auch nicht flexibler. Howard Aiken entwickelte für den Mark 3 ein Eingabegerät, über dessen Tastatur mathematische Befehle eingegeben werden konnten. Das Eingabegerät konvertierte sie in numerische Befehle, die der Rechner ausführen konnte. Die Codes wurden auf ein Magnetband übertragen und dann ausgeführt. Oft benutzte Sequenzen wurden auf einer Magnettrommel gespeichert. Zuse verfolgte in Deutschland einen ähnlichen Weg mit seinem „Planfertigungsgerät“, dass Lochstreifen stanzen konnte. 1952 wurde Zuses Z4 in der Eidgenössischen Hochschule in Zürich aufgebaut und eingesetzt. Dort fiel Heinz Rutishauser auf, dass man einen Universalcomputer so programmieren müsste, dass er die Aufgabe eines Eingabegerätes oder „Programmators„, wie Zuse ihn genannt hatte, selbst erfüllen konnte. Als Erstes würde der Computer die Eingabe der Nutzerbefehle überprüfen, sie dann übersetzen und danach ausführen. Rutishauser brachte es auf den Punkt: „Benutzt den Computer als seine eigene Planfertigungsmaschine.“Rutishausers Idee, dass der gleiche Computer, der eine Aufgabe löst, auch seine eigenen Befehle vorbereitet, war ein ganz wesentlicher Beitrag zur Geburt der Software.

UNIVAC  Compiler (1952)

Hopper definierte den Compiler als eine Programmroutine, die ein spezielles Programm für eine bestimmte Aufgabe zusammenstellt. Heute wird mit dem Ausdruck Compiler ein Programm bezeichnet, das von Menschen generierte und lesbare Befehle in binären Maschinencode übersetzt.

Laning und Zierler (1954)

Laning und Zierler entwickelten in den frühen fünfziger Jahren das erste „moderne“ Programmiersystem für den Whirlwind am Massachusetts Institute of Technology. Im Gegensatz zu dem UNIVAC Compiler nahm es nicht nur Nutzerbefehle entgegen, sondern verfolgte auch die Speicherstellen, konnte Schleifen wiederholen und anderes mehr. Ceruzzi schreibt, dass es damals starke Anfeindungen aus der „Priesterschaft der Programmierer“ gegeben habe, die in dem Compiler verständlicherweise einen Angriff auf ihr Herrschaftswissen sahen.

SHARE (1955)

Die Möglichkeit, Computer in kleinem Rahmen programmieren zu können, rief natürlich auch die ersten Nutzergruppen und Kunden auf den Plan. Eine Gruppe von IBM 701 Nutzern traf sich mit anderen Käufern des Systems, um selbst erstellte Unterprogramme auszutauschen oder Wünsche an IBM zu formulieren und durchzusetzen. Es lässt sich nicht mehr genau klären, wie die Bezeichnung „Share“ zustande kam. Einige Quellen sagen, es sei die Abkürzung für „Society to Help Avoid Redundant Effort“ gewesen, andere sagen, das Kürzel hätte keinen tieferen Sinn gehabt.

Datensortierung

Die sequenzielle Speicherung der Daten verlangte nach einer Sortierung, um sie ansprechen zu können. Das numerische und alphanumerische Sortieren erforderte selbst noch in den frühen siebziger Jahren schätzungsweise ein Viertel der aufgewendeten Rechenzeit.

Die Informatik

In den frühen sechziger Jahren musste die Informatik sich noch ihren Platz unter den anerkannten Wissenschaften erkämpfen. 1965 wurde in Stanford das erste eigenständige Institut für Informatik errichtet.

Strukturierte Programmierung

1968 veröffentlichte Edsger von der Technischen Universität Eindhoven einen Brief, der eine heftige Diskussion und letztendlich einen weiteren Anstoß zu einer strukturierten Programmierung lieferte. Er begann so: „Seit vielen Jahren mache ich die Beobachtung, dass die Qualität von Programmierern sich an der abnehmenden Funktion der Häufigkeit von Go-to Anweisungen in ihren Programmen ablesen lässt.“

Zusammenfassung:

Computerprogrammierung wurde von den Pionieren des Computergeschäftes nicht vorgesehen. Erst in den fünfziger Jahren entwickelte sich das Bewusstsein um ihre Notwendigkeit. Für diese Art von Code bürgerte sich der Name „Software“ ein. Diese bestand anfangs nur aus einer immer größer werdenden Bibliothek von Subroutinen. Die Geschichte der Software war und ist auch eine Geschichte ihrer Krisen. 1968 sponsorte die NATO eine Tagung in Garmisch-Partenkirchen unter dem Motto „Software Engineering“. Der Titel suggerierte, dass die Softwareentwickler im Gegensatz zu den Ingenieurswissenschaften bspw. keine theoretischen Grundlagen und Richtlinien täglicher Praxis hätten. Auch der Sponsor machte deutlich, wie entfernt die Softwareentwicklung von der universitären Informatik entfernt war. Eine 1996 in Deutschland abgehaltene Tagung über die Geschichte der Softwaretechnik kam zu dem Ergebnis, das der Ansatz, Softwaretechnik zu etablieren, insgesamt gescheitert sei. Pragmatischere Lösungsansätze waren die Anerkennung der Softwaretechnik als neue Disziplin, formalere Techniken für strukturierte Programmierung und neue Programmiersprachen, die damals COBOL und FORTRAN ersetzen sollten.