Mittwoch, 12. Februar 2014

Informatik-Revolutionen der letzten 50 Jahre

Fast droht ein Jubiläum in Vergessenheit zu geraten. Es ist die Ankündigung des IBM System/360 im April 1964. Die Böblinger Hardware-Entwickler der IBM erinnern gerade daran mit einem deutschen Pressebeitrag. IBM habe die IT-Branche revolutioniert, heißt es in dem Beitrag. Das Wort Revolution wird bei Computern und in der Informatik manchmal etwas leichtfertig benutzt. Manche Entwicklungen geschahen in kleinen Schritten, bei andern war ein Umdenken unvermeidlich. Manchmal entstand der Eindruck, dass unser Fachgebiet mal wieder neu definiert wurde. Bei politischen Revolutionen wird meist das Establishment auf brutale Weise liquidiert. Bei wissenschaftlichen und technischen Revolutionen werden nur Lehrbücher verbrannt oder Gerätschaften entsorgt. Neue und jüngere Fachvertreter schieben sich nach vorne, es sei denn die Alten schaffen die Wende.

Im Folgenden werde ich nicht nur über die Revolution von 1964 sprechen, sondern auch über einige, die etwas später erfolgten. Dabei erlaube ich mir, vor allem die Ereignisse und Trends anzusprechen, die ich selbst erlebt habe. Wie bei Historikern üblich, benenne ich Revolutionen nach einer Jahreszahl, wohlwissend, dass man oft willkürlich ein Datum festlegen muss. Jedenfalls stimmt der Zeitraum. Zusätzlich gebe ich in Klammern das Thema, um das es ging.

Revolution von 1964 (Architektur-Revolution)

Worum es 1964 ging, ist die Erkenntnis, dass man die Schnittstellen, wie ein Programmierer den Rechner sieht, über möglichst viele Maschinentypen konstant halten sollte. Irrtümlicherweise wird hier (von uneinsichtigen Sprachtheoretikern) meist von Abstraktion gesprochen. Es ist die Spezifikation, also die Festlegung dessen, was invariant bleiben soll. Die Kollegen, die diese Revolution auslösten, waren Gene Amdahl, Fred Brooks und Jerry Blaauw. Ihre Vision hat zumindest das Denken einiger Hardware-Kollegen bis heute beeinflusst. Die Universität Leipzig verweist auf einige der relevanten Veröffentlichungen. Auch die Rolle von Bob Evans wird erwähnt. Ohne ein Kraftzentrum wie ihn hätte es kein System/360 gegeben. Bei den technischen Konzepten, die in der Architektur des System/360 stecken, schien mir die Wahl eines Zeichensatzes mit 256 Elementen sehr weittragend gewesen zu sein. Da sie jedoch die aus der Lochkartenzeit stammende Interpretation dieses Zeichensatzes (EBCDIC statt ASCII) beibehielt, hat dies IBM und ihre Kunden später sehr belastet. 

Ein Befehlssatz, der sich primär an Byte-Daten orientierte, war für viele der späteren Anwendungen ungeeignet. Bildschirme, die jeden Bildpunkt adressieren konnten, passten nicht in diese Architektur. Das gleiche galt für Sensor-Daten, mit denen Geräte in Echtzeit gesteuert wurden. So erfolgreich die neue Architektur auch war, um das bis dahin bekannte Geschäft auszuweiten, sie wurde für IBM zum Hemmschuh beim Erschließen neuer Anwendungen. Sie führte auch intern zu einer sehr starken Gegenbewegung, die sich in einer Vielzahl neuer Architekturen ausdrückte. Diese setzten die S/360-Produktlinie IBM-intern sehr unter Druck. Es begann mit System/3 und Serie/1 und setzte sich mit der IBM 8100 und der System/38-Famile (der späteren AS/400) fort. Nicht nur die Entwickler benahmen sich wie Konkurrenten, auch der Vertrieb. Vor allem Bob Evans hat diesen Zustand bekämpft, musste sich aber geschlagen geben.

Fred Brooks hat vermutlich als einziger der drei erwähnten Autoren die Bedeutung und die Besonderheiten von Software erkannt. Er wechselte IBM-intern nicht nur in die Software-Entwicklung, er konnte auch seine Erkenntnisse ausgezeichnet formulieren. Sein Buch über seine Erfahrungen bei OS/360 wurde zum Bestseller (über 300,000 verkaufte Exemplare). Auch einige seiner späteren Veröffentlichungen wurden nicht nur stilprägend, sondern legten tiefe Einsichten offen. Das Problem, das Brooks in seinem erwähnten Buch nicht einmal streift, ist die Tatsache, dass OS/360 nur einen Teil des Hardware-Marktes des Systems/360 abdecken konnte.

Damit die Software-Seite nicht ganz ignoriert wird, verweise ich auf einen im Heft 4/2013 der IEEE-Annalen erschienenen Beitrag über diese Zeit, in dem primär an die Programmiersprachen Algol und PL/I erinnert wird. Wie in diesem Beitrag ausgeführt, war die Übertragung der im Hardware-Bereich geborenen Idee einer einheitlichen Architektur auf die Software ein grandioser Misserfolg. Meine wichtigsten Erfahrungen aus dieser Zeit habe ich in dem Beitrag wie folgt zusammengefasst:

- Sich um eine einzige, allumfassende Programmiersprache zu bemühen, ist eine Illusion. ... Es gibt ein starkes Indiz, dass die verschiedenen Gemeinden [Kaufleute und Techniker] für sich bleiben wollen. Sie sind in der Tat besser mit verschiedenen Sprachen bedient. Das Fehlen [einer einheitlichen Sprache] ist eine Belastung nur für Menschen, die über Grenzen hinweg arbeiten.

- Ernsthafte Benutzer schätzen ihre Software-Investitionen. Software, die verwendet wird, stellt ein intellektuelles Vermögen dar und erweitert die Fähigkeiten der Mitarbeiter. Dies gilt für Anwendungen wie für Entwicklungs-Tools. Jede Migration ist teuer.

- Software-Entwicklung ist überschaubar, sofern die Ziele verstanden und die zu verwendende Technologie unter Kontrolle ist. …Neue Technologien erfordern eine Lernkurve. Ein Top-down-Ansatz für neue Anwendungsbereiche ist in der Regel riskant. Bottom-up-Ansätze führen leicht zu Überschneidungen und Inkonsistenzen, können aber mit weniger Problemen gemanagt werden.

- Fortschritte in der Hardware sind zugleich eine Hilfe und eine Herausforderung für die Software. ..Ich habe ständig den Fortschritt der Hardware-Technologien unterschätzt, obwohl ich  enge Kontakte zu einigen der treibenden Einzelpersonen und Gruppen hatte. Ich wollte ihnen einfach nicht glauben.

Revolution von 1969 (Software-Revolution)

Die Schnittstelle, an der sich entscheidet, was als Software oder als Hardware gilt, ist die vorhin erwähnte Rechner-Architektur. Von der Sache her ist Mikrocode, der im Hauptspeicher residiert, genau dasselbe, er gilt jedoch nicht als Software. Zunächst wurde Software als für den Vertrieb von Rechnern nützliche Zugabe gesehen. Einige Leute, die selbst keine Rechner bauten, sahen dies anders und überzeugten die amerikanischen Behörden zu handeln. Es wurde auch als Möglichkeit gesehen, die Vormachtstellung einzelner Hardware-Hersteller zu brechen. Seit Ende der 1960er Jahre sprach man daher in Fachkreisen vom ‚Unbundling‘, der Trennung von Hardware und Software. Auch die bekannte NATO-Tagung 1968 in Garmisch verwandte eine ganze Sitzung auf das Thema.

Von Watts Humphrey, der damals im Firmenstab (engl. Corporate Headquarter) tätig war, wurde das ‚Unbundling‘ vorbereitet und bei IBM eingeführt. Ich selbst unterbrach ein einziges Mal in meiner Berufskarriere meinen Sommerurlaub, um das Ergebnis von Humphreys Arbeiten zu erfahren. Das war im August 1969. IBM trennte sich gezwungenermaßen von einem Geschäftsmodell, von dessen Richtigkeit viele Kollegen überzeugt waren. Man müsse das Gesamtsystem optimieren. Hardware ohne Software sei ein Unding. Das Gegenargument lautete – und wem es passte, betete es nach  ̶  nur wenn Wettbewerb für alle Teile eines Produkts bestehe, erhalten Nutzer das Optimum und der Markt wird expandieren. Geschlossene Systeme kamen in unserer Branche außer Mode – eine weitere Besonderheit im Vergleich zu andern Branchen. Selbst die Wissenschaft versuchte Argumente für offene Systeme zu finden. In einem andern Zusammenhang [1] schrieb ich dazu:

Es waren aus Sicht der IBM eher defensive Überlegungen, die zu diesem Schritt führten. Man wollte nicht selbst auf Dauer gerade die für Anwendungsprogramme immer stärker steigenden Investitionen tragen, sondern auch andere Firmen motivieren, sich hier zu engagieren. Da mangels entsprechender Standardisierung im Anwendungsmarkt die Stückzahlen noch sehr gering waren, gab IBM alle Sprachübersetzer dazu. .. Aus heutiger Sicht bestand eine weitere Einschränkung darin, dass IBM ihre Software-Produkte damals nicht für Mitbewerber-Maschinen anbot. Hätten z.B. die Entwickler von OS/2 diese Limitierung nicht gehabt, wäre möglicherweise der Wettlauf gegen Windows und Microsoft (und damit das Geschehen am Markt für Betriebssysteme) anders ausgegangen.

Man kann die 1970er Jahre als die Hochblüte der Minirechner ansehen. Firmen wie Apollo, Data General, DEC, Prime, HP und Honeywell dominierten den Markt. Manche boten nur ‚nackte‘ Hardware an. Software (vor allem Betriebssysteme und Compiler) konnte man ja anderswo kaufen oder sich schenken lassen. Unix und C machten von sich reden. Über Pascal und C++ führte die Programmiersprachen-Entwicklung schließlich zu Java. Dass durch die Minirechner die Großrechner der IBM nicht frontal angegriffen wurden, soll folgende Episode belegen. Sie wurde ebenfalls in [1] berichtet.

Wir wollten auch eine Marktanalyse machen und erhielten Zugang zu den IBM-Daten über Konkurrenz-Situationen. In diesem Zusammenhang erinnere ich mich an eine Zahl. Es ging darum, wie schneidet IBM ab gegen die VAX-Rechner der Firma DEC. Das Ergebnis unserer Recherche war verblüffend. Es gab in dem betreffenden Jahr weltweit nur 100 Situationen, in denen dieser Rechner gegen einen IBM-Rechner angeboten wurde. IBM hatte in 90% der Fälle den Auftrag gewonnen. Also kein Grund, besorgt zu sein. Aus anderer Quelle wusste ich, dass in derselben Zeit, DEC über 1000 VAX-Rechner verkauft hatte. Die Erklärung, die auch für andere Produktbereiche galt, lautete: Hier hatte ein Wettbewerber einen ganz neuen Markt geschaffen, der von IBM nicht wahrgenommen wurde. So wie der Minirechnermarkt an IBM, so ging später der PC-Markt an DEC vorbei.

Solche Neudefinitionen des Marktes gab es auch später mehrfach. Sie sind vielleicht das besondere Kennzeichen unserer Branche.

Revolution von 1975 (Daten-Revolution)

Hatten zuerst Programmiersprachen für viele Kollegen ihren Reiz verloren, folgten bald die Betriebssysteme. Sie waren – zumindest im kommerziellen Bereich  ̶  plötzlich nicht mehr die strategisch wichtigste Komponente. An ihre Stelle traten die Geschäftsdaten, genauer die Transaktions- und Datenbanksysteme, die sie verwalteten und verarbeiteten. Anwendungen, von denen das Geschäft der Kunden abhing (engl. mission critical applications) verlangten, dass das System nicht nur im Nachhinein die anfallenden Daten verarbeitete, sondern zeitgleich mit ihrer Entstehung. Die System-Komponenten, die bei IBM plötzlich im Mittelpunkt standen, hießen CICS und DL/I im Bereich der mittleren Systeme (DOS/VS und VM) und IMS bei MVS. Andere Firmen hatten vergleichbare Produkte. Sie leiteten eine Phase der Zentralisierung ein, wobei kritische Daten möglichst nur einmal erfasst und gespeichert wurden. Sowohl mit DL/I wie IMS ließen sich so genannte hierarchische Datenbanken sehr effizient implementieren.

Nach Ted Codds richtungsweisenden Forschungsergebnissen von 1970 dauerte es bis 1979, ehe mit Oracle das erste relationale Datenbank-Produkt im Markt erschien. Im Jahre 1981 folgte IBM mit SQL/DS, das später in DB2 umbenannt und zu einer ganzen Produktfamilie weiterentwickelt wurde. Bei relationalen Datenbanken ist keine bestimmte Struktur (Hierarchie oder Netzwerk) vorgegeben. Es dauerte allerdings mehrere Jahre ehe brauchbare Implementierungen zur Verfügung standen. Brauchbar hieß, ihre Leistung musste in etwa der Leistung hierarchischer Datenbanksysteme entsprechen. Der wissenschaftlichen Seite der Informatik gaben diese Probleme einen unvergleichlichen Auftrieb, insbesondere in Deutschland.

Revolution von 1978 (Computer-Bildschirme)

Magnetplatten, die schon vor 1964 ihren Markteintritt hatten, sind der Gerätetyp, der lange Zeit die Art und die Struktur von Anwendungen beeinflusste. Sie haben neben den Halbleitern eine geradezu revolutionäre Entwicklung genommen. Für den Preis von einigen Megabytes (10 hoch 6 Bytes) von 1964 kann man heute einige Terabytes (10 hoch 12 Bytes) bekommen, also das Millionenfache. Die Entwicklung fand in vielen kleinen Schritten statt.

Ähnlich, aber zeitverschoben, lief die Entwicklung bei Bildschirmen (auch Computer-Monitore genannt). Ein sehr entscheidender Schritt war Ende der 1970er Jahre der Übergang zu Bildschirmen, bei denen einzelne Bildpunkte (Pixels) angesteuert werden. Damit eröffneten sich alle Anwendungen, die nicht nur Ziffern und Buchstaben verarbeiten, sondern Bilder und Grafiken. Das Komplement auf der Druckerseite sind hochauflösende Laserdrucker.

Revolution von 1981 (PC-Revolution)

Rechner waren Jahrzehnte lang große Kästen, die in speziell klimatisierten Räumen standen und von Spezialisten benutzt wurden. Wie die Priester in einem antiken Tempel zwischen Göttern und Menschen vermittelten, so taten dies die Spezialisten zwischen Technik und Anwendung. Der von der Gruppe um Bill Lowe und Don Estridge in Boca Raton, FL, im August 1981 herausgebrachte IBM/PC veränderte nicht nur den Markt sondern auch die Branche von Grund auf. Mittlere und Großsysteme erhielten den Ruf von Dinosauriern, deren Aussterben nur eine Frage von Jahren sei. IBM hatte eine Hardware-Struktur gewählt, die auch von andern Unternehmen in kompatibler Form nachgebaut werden konnte. Wie nach den  Dinosauriern die Säugetiere die Welt übernahmen, so bevölkerten fortan Kleinstrechner (Mikroprozessoren) Büros, Fabriken, Privatwohnungen und Schulen. Statt der Spezialisten wurden Otto Normalverbraucher und Lieschen Müller zu Maschinenbedienern, manche auch zu Programmierern. Dass das Programmieren erleichtert werden musste, oder auch teilweise umdefiniert wurde, versteht sich von selbst. Ein Paradebeispiel heißt Tabellenkalkulation (engl. spread sheets).

Da IBM das Betriebssystem und andere wichtige Software-Komponenten der von Bill Gates gegründeten Firma Microsoft übertragen hatte, entstand auch ein von IBM unabhängiger Software-Markt. Gates hatte Verträge, die es ihm erlaubten, das was IBM finanziert hatte, auf Nicht-IBM-Hardware zu vertreiben. Die daraus resultierende Erfolgsgeschichte hatte nicht ihresgleichen in der Branche.

Revolution von 1990 (Internet-Revolution)

‚Das Netz ist das System‘ mit diesem Slogan warb ein Hersteller (ich glaube es war DEC), lange bevor es das heute so allgegenwärtige Internet gab. Isolierte Rechner sind nur ein Bruchteil dessen wert, was Rechner bedeuten, die miteinander kommunizieren können. Das Kommunizieren ist neben Speichern und Rechnen die wichtigste Aufgabe, die Rechner erfüllen.

Im Bereich der Datenfernübertragung ging IBM unter der Leitung von Ed Sussenguth einen Weg, der zu einem Wettkampf der Architekturen führte. IBM setzte auf eine verbindungorientierte Architektur (SNA genannt), das amerikanische Militär und die von ihr finanzierte akademische Forschung bevorzugten ein verbindungsloses Konzept (TCP/IP). Eine verbindungslose Kommunikation benutzt das Paketprinzip. Zu seinen Pionieren gehörten Leonard Kleinrock, Vinton Cerf und Tim Berners-Lee. Mit dem Zwischenschritt Arpanet entstand schließlich das Internet. Dieses wurde im Jahre 1990 kommerzialisiert. Es wuchs von 1990 bis heute von weniger als 1% zu fast 97% aller weltweit ausgetauschten Daten. Zurzeit werden gerade viele bisher noch als einzelne Knoten sichtbare Rechner durch ein verschwommenes Gebilde ersetzt, das als ‚Cloud‘ bezeichnet wird.

Revolution von 1992 (Anwendungs-Revolution)

Um 1991 baute Hasso Plattners Team bei SAP das System R/3. Es ebnete den Weg für Systeme, in denen mehrere Anwendungen über ein einheitliches Informationsmodell gekoppelt waren. Da die Firma SAP die von IBM entwickelte Architektur für Client/Server-Systeme (SAA genannt) besser implementierte als IBM, stieg SAP zum Führer im Weltmarkt auf. Außerdem konnte SAP eine enorme betriebswirtschaftliche Kompetenz zur Anwendung bringen. IBM zog sich alsbald aus dem Gebiet der Anwendungen völlig zurück. Später wurden auch Datenbank-Systeme zu einem Thema, das technisch sehr stark an das SAP-Umfeld gebunden ist. Als Produkte blieben sie jedoch ein weitgehend unabhängiges Geschäft.

Bei vielen Unternehmen ist es heute sinnvoller, betriebliche Abläufe vorhandenen Software-Lösungen anzupassen, als sich um eigene Software für vorhandene Abläufe zu bemühen. Der Markt für technische Anwendungen ist separat zu sehen. Hier stellen graphische Entwurfsysteme vielfach eine verbindende Basis her.

Revolution von 2007 (Mobilitäts-Revolution)

Als letztes Beispiel sei die von der Firma Apple und ihrem verstorbenen Inspirator Steve Jobs herbeigeführte Revolution erwähnt. Heute sind Smartphones und Tablets die einzig interessanten Computer. Sie sind auch deshalb so erfolgreich, weil sie geschlossene Systeme sind. Sie lösten nämlich zwei Probleme, gegen die die Branche machtlos zu sein schien, nämlich das Viren- und das Spam-Problem. Da Apple wegen dieser Strategie (wie einst IBM) in der Kritik steht, bin ich gespannt, ob und wie die auf dem Betriebssystem Android basierende Konkurrenz diese Probleme löst.[Siehe Nachtrag vom 7.3.2014]

Portable Geräte ermöglichen auch Privatpersonen eine mehrstufige Form der Computer-Nutzung. Über meine eigenen Erfahrungen gibt ein Eintrag vor drei Jahren in diesem Blog Auskunft. Als Ergänzung zu den unzähligen mobilen Geräten gewinnen ‚Clouds‘ immer mehr an Bedeutung. Es ist nicht mehr ein ortsgebundener Rechner, der dem mobilen Gerät als Stütze dient, sondern das Internet mit Funktionalitäten, die ortsunabhängig und standardisiert angeboten werden. Als Betreiber eines Rechenzentrums in den 1960er Jahren kommen mir einige der bei ‚Clouds‘ benutzten Argumente bekannt vor.

Nachbemerkung

Bekanntlich kennt Geschichte keine unveränderlichen Wahrheiten. Sie ist das, was Überlebende und deren Nachfahren für interessant und wichtig halten. Das ist mit der Informatik-Geschichte nicht anders. Zwei Beispiele seien erwähnt. F.L. Bauers Geschichte der Informatik konzentriert sich auf die Hochschul-Informatik und lässt die Praxis aus. Timo Leimbach konzentriert sich auf eine Geschichte der deutschen Informatik. In der allgemeinen Geschichte der  Menschheit ist die Geschichte eines Landes nicht besonders wichtig, etwa die von Luxemburg oder Andorra, oder die eines Berufes, etwa der Imker oder der Goldschmiede. Man darf sich natürlich mit ihr befassen, kann sich aber dann des Vorwurfs nicht erwehren, etwas provinziell oder einseitig zu sein. Eine allgemeine Geschichte der Informatik zu schreiben, ist ein Unterfangen, das ein Einzelner kaum bewältigen kann – es sei denn er hat viel Mut beim Weglassen.

Nachtrag vom 7.3.2014:

In einem Bericht der Firma Kapersky Labs wird festgestellt, dass im letzten Jahr weltweit 143.000 neue Smartphone-Schadcodes entdeckt wurden. Fast alle zielen auf Googles Android-Betriebssystem ab. Wörtlich heißt es: "Das geringste Risiko beim App-Download haben Nutzer, die ausschließlich die offiziellen App-Stores nutzen".

Referenz 
  1. Endres, A.: Die IBM Laboratorien Böblingen: System-Software-Entwicklung. Band 2 der Reihe Forschung und Entwicklung in der IBM Deutschland. Eigenverlag: Sindelfingen 2001; 144 Seiten; ISBN 3-920799-22-3

Kommentare:

  1. Am 12.2.2014 schrieb Klaus Küspert aus Jena:

    Mir fallen gleich noch andere ‚Revolutiönchen‘ ein: die E-Commerce-Revolution, die OO-Revolution und dann noch Prozess-/Workflow.

    Meine Antwort (BD) lautet: Meine Auswahl wurde von folgenden Gesichtspunkten bestimmt.

    (a) Die Zahl der Revolutionen sollte die Größenordnung 10 nicht überschreiten. Wenn man alle Zweige der Informatik berücksichtigt, kommt man leicht in die Gegend von 100 wichtigen technischen und organisatorisch/wirtschaftlichen Durchbrüchen, die sich auswirkten. Was ich davon als wichtig oder interessant ansehe, ist mein subjektives Urteil. Das ist natürlich geprägt von meiner Sozialisierung und Erfahrung.

    (b) Einige Dinge hängen miteinander zusammen. So ist es sinnvoll von E-Commerce erst dann zu reden, nachdem das Internet eine gewisse Reife und Verbreitung hatte. Die OO-Revolution hat eine klare Spur in der Programmierung hinterlassen. Ich habe C++ und Java erwähnt. Die Auswirkung auf Datenbanken zu beschreiben, ist etwas komplizierter.

    (c) Das Thema Prozesse und Modellierung (auch BPMN) wurde in diesem Blog immer wieder behandelt. Es traten dabei gewisse Diskrepanzen der Auffassungen zu Tage, denen schließlich ein ganzer Blog-Eintrag (am 6.10.2013) gewidmet wurde

    AntwortenLöschen
  2. Noch am 12.2.2014 schrieb Hartmut Wedekind aus Darmstadt:

    Ob Revolution oder Revolutiönchen? Am besten schaut man beim Altmeister Thomas Kuhn: „Die Struktur wissenschaftlicher Revolutionen“ nach. Er nennt eine Revolution einen Paradigma-Wechsel. Und in der Tat: Kuhn kennt gewaltige Paradigma-Wechsel, die er z.B. mit den Namen Kopernikus (Heliozentrisches Weltbild), Newton (Gravitationstheorie) und Einstein (Relativitätstheorie) verknüpft. Kleinere Paradigma-Wechsel sind z.B. William Harvey (Blutkreislauf), Lavoisier (Sauerstoff) und Röntgen (Röntgenstrahlen).

    Man muss im Nachhinein die Größe des Entwicklungssprungs betrachten. Und über die Größe (Wirkmächtigkeit) lässt sich streiten.

    Man kann sicherlich auch in der Informatik in einer Diskussion unter Wohlmeinenden eine Rangfolge der Paradigmata feststellen. Man muss sich aber in die Zeit versetzen, als der Sprung stattfand, und darf nicht aus der heutigen Zeit urteilen. Da sieht dann auf einmal der Kopernikus ganz klein aus.

    AntwortenLöschen