Samstag, 30. März 2013

Wirtschaftlich nutzen ohne zu erwerben, eine uralte Idee im modernen Gewande

Die CeBIT 2013, die gerade zu Ende ging, hatte "Shareconomy" zu ihrem Leitthema erklärt. Als weltweit wichtigste Veranstaltung der digitalen Wirtschaft rücke sie das Teilen und gemeinsame Nutzen von Wissen, Ressourcen und Erfahrungen als neue Formen der Zusammenarbeit ins Zentrum. Für die Wirtschaft und auch für die Gesellschaft sei 'Shareconomy' derzeit ein heiß diskutiertes Thema. So ähnlich verlautete Frank Pörschmann, der CeBit-Chef. ‚Besitz war gestern. Heute wird geteilt, getauscht und privat vermietet‘ das schrieb die Süddeutsche Zeitung Ende letzten Jahres.  Das Thema hat viele Aspekte. Ich will es hier primär aus Sicht der Informatik diskutieren, aber nicht nur. Durch die Möglichkeiten, die uns die Informatik in dieser Hinsicht bietet, erhält es auch anderswo ein neues Gesicht, neue Aktualität.

Blick in die Geschichte

Jäger und Sammler der Steinzeit oder im heute noch verbliebenen Regenwald kennen keinen Besitz, außer ihren Jagdwaffen. In Anatolien erfand man vor 10.000 Jahren die Landwirtschaft. Bauern verbesserten den Boden, in den sie säten, und  zähmten Ziegen und Rinder. Das war der erste nennenswerte Besitz, den Menschen erwarben. Aus Ehrfurcht oder Dankbarkeit räumten sie ihren Göttern oder Königen gewisse Rechte an dem Besitz ein. So entstand eine gedankliche Trennung zwischen Eigentum und Besitz. Könige und Heerführer verteilten erobertes Land an Veteranen oder Leibeigne zur Nutzung. Der Adel versprach den Bauern sie gegen Räuber und Eroberer zu beschützen, wenn sie dafür einen Teil ihrer Felderträge abliefern würden.

So ging es in weiten Teilen Europas zu, bis die Franzosen ihren König köpften. Das war 1792.  Zuerst waren es die Amerikaner, dann die Franzosen, die mit Eigentum im Besitz von Bürgern den Begriff der Freiheit verbanden. Einige der neuen Eigentümer (oder der übrig gebliebene Adel) übertrieben es. Deshalb forderte Karl Marx: ‚Enteignet die Enteigner!‘ Er fand Anklang nur in der Hälfte der Welt. Dort wurde alles in eine Gemeinwirtschaft überführt. Nicht nur Sozialisten und Kommunisten schworen darauf, auch einige religiös motivierte Gruppen wie die Pilgerväter in Neuengland und die Jesuiten in Paraguay. Erst seit 1989 gibt es in Ostberlin, Moskau und Bejing wieder Privateigentum.

Nutzung, Besitz und Eigentum in der Informatik

In der Informatik wurden anfangs weder Hardware noch Software verkauft, sondern nur gegen monatliche Miet- bzw. Lizenzgebühren zur Nutzung überlassen. Zu riskant war die neue Technik und zu teuer. Man wollte jederzeit aussteigen können. Nur die Banken sahen es anders. Sie wollten den DV-Herstellern nicht auch noch das Finanzierungsgeschäft überlassen. In den öffentlichen und privaten Rechenzentren wurde verbrauchte CPU-Zeit oder Systemzeit sekundenweise abgerechnet. Man erfand das Time-Sharing, sowohl als Technik wie als Finanzmodell. Noch heute erinnere ich mich an die Begründung, die mir vor 50 Jahren ein Ingenieurbüro gab, als es den Dienst unseres Rechenzentrums plötzlich nicht mehr in Anspruch nahm. ‚Wir müssen oft sonntags noch an unsern Angeboten arbeiten. Wir haben uns daher einen eigenen Rechner gekauft.‘ Manche Unternehmen sollen weniger gute Gründe gehabt haben, um sich den jeweils größten verfügbaren Rechner anzuschaffen.

Etwa ab 1980 verflog die Unsicherheit der Nutzer. Sie wussten, dass sie in Zukunft nicht mehr ohne eigene Rechner sein konnten oder wollten. Time Sharing wurde uninteressant. Außerdem kamen die Minis auf. Die Preise für ein Gesamtsystem (Hardware und Software) purzelten in den Bereich unter 100.000 DM. Viele der neuen Nutzer saßen in Ingenieurabteilungen oder Ingenieurfirmen und hatten auch weniger Geld als die Buchhalter. Es waren auch viele neue Lieferanten im Markt, die genug Probleme hatten, sich selbst zu finanzieren. Sie wollten sich nicht auch noch die Finanzierung der Kunden ans Bein binden. Sie wollten gleich Geld sehen. Die alten Lieferanten passten sich an und zogen nach. Anstelle oder zusätzlich zur Monatsmiete wurde ein Einmal-Kaufpreis (engl. one-time charge, abgek. OTC) angeboten. Die Formel lautete

OTC = x * Monatsmiete, mit 24 ≥ x ≥ 48.

Obwohl die Kunden ihre Maschinen gewöhnlich mehr als vier Jahre behielten, bewegte sich die Mehrheit recht zögerlich in Richtung OTC. Man wollte sich die Möglichkeit offen halten, flexibel auf neue Produkte reagieren zu können, die sich infolge des technischen Fortschritts laufend in den Markt drängten. Als es wenig später die PCs gab, wurden diese von Endnutzern gekauft, nicht gemietet. Das galt für Hardware wie Software. Die Software war in der Erstellung fast so teuer wie früher. Ihre Preise fielen jedoch enorm, da die Herstellkosten statt durch 1000 jetzt durch 100.000 dividiert werden konnten.

Im Internet wurde das Gefühl für Kosten ziemlich durcheinander gebracht. Während sich auf der Hardware-Seite zunächst wenig änderte, ging bei der Software alles drunter und drüber. Die OTCs verschwanden vollkommen. Software war entweder in einer dienstbezogenen Nutzungsgebühr enthalten  ̶  mal als monatliche Flatrate, mal nach übertragenen Bytes bemessen  ̶  oder war kostenlos. Der Vorteil einer Flatrate besteht darin, dass man sie im Budget fest einplanen kann. Sie kann teurer sein als die detaillierte Verbrauchsabrechnung, dafür macht sie weniger Sorgen. Da Rechner inzwischen wie Handys aussehen oder nur noch über Handys zugegriffen werden, konkurriert man, indem immer mehr Software-Funktionen durch die Flatrate abgedeckt werden. Was überhaupt noch separat als kostenlose Software erschien, war meistens durch Werbung finanziert. Diese Finanzierungsart ist so bestimmend geworden, dass man fast vergaß, dass mit der Erstellung und Verbreitung von Software immer noch Kosten verbunden sind. Für Software erwirbt man in der Regel kein Eigentum, sondern nur Nutzungsrechte.

Auf zwei Sonderfälle sei verwiesen. Wegen der großen saisonalen Schwankungen des Internet-Geschäfts, etwa bei Amazon, wurden Überkapazitäten geschaffen, die zwischendurch als Informatik-Wolken (engl. clouds) zur Verfügung gestellt werden. Auf dem Gebiet der ERP-Systeme hat der Erfolg von SAP Mitbewerber auf den Plan gerufen, die sich durch fallweise Abrechnung nach Nutzerzahlen einen Einstieg erhoffen (z. Bsp. Salesforce.com).

Durch Informatik unterstützte Nutzungsmodelle

Als ich das erste Mal ein Taxi nicht per Telefon sondern per Internet bestellte, war ich beeindruckt, dass der Taxifahrer nicht mehr fragte, wo ich denn sei. Auch gibt es Städte, wo ich im Internet fragen kann, wo es freie Parkplätze gibt und mich anschließend dorthin leiten lasse. Eine viel zitierte Anwendung heißt Car Sharing. Sie ist für Leute, die selbst kein Auto mehr haben und trotzdem selbst fahren wollen. Man will sich auch nicht mühselig zum Stützpunkt einer Autovermietung am Bahnhof oder Flugplatz durchschlagen. Per Smartphone findet man ein freies Auto in der Nähe. Der Kunde identifiziert sich, öffnet das Auto und fährt los. Am Ende der Fahrt verschließt er das Auto und veranlasst die Abrechnung  ̶  alles per Smartphone. Städte, die mit dieser Anwendung experimentieren, hoffen auf diese Weise den Innenstadtverkehr zu reduzieren. Als ‚Versuchsvehikel‘ dienen allerdings keine Luxuslimousinen sondern Kleinwagen.

Die Fahrzeuge einer Carsharing-Organisation sind meist auf fest angemieteten Parkplätzen über eine Stadt oder einen größeren Ort verteilt. Die Standorte befinden sich häufig bei Knotenpunkten des öffentlichen Verkehrs (Bahnhöfe, Tramknoten, Endstationen von Buslinien usw.), wo sie von den Mitgliedern gut erreichbar sind. Die vorab reservierten Fahrzeuge werden meist benutzt, um von diesen Knotenpunkten aus abgelegenere Ziele zu erreichen.

Unter Couch Surfing versteht man einen Web-Dienst, der dazu dient, kostenlose Unterkunft auf Reisen zu finden. Man kann auch selbst eine Unterkunft oder etwas anderes anbieten, wie z.B. einem Reisenden die Stadt zu zeigen. Ende Juli 2011 zählte Couch Surfing nach eigenen Angaben über drei Millionen Mitglieder in etwa 80.000 Städten.

Es gibt unzählige Formen der anteiligen Nutzung wirtschaftlicher Güter. Manche sind uralt, manche machen erst Sinn dank der Fortschritte der Informatik. Über Mietwohnungen und gemietete Ferienwohnungen redet kaum jemand. Backhäuser und Badehäuser wurden seit dem Mittelalter gemeinschaftlich genutzt. Der Gemeinde-Bulle oder die Gemeinde-Wiese (Almende) stand einer Genossenschaft frei zur Verfügung. Neben privaten Autos gibt es fast überall den öffentlichen Nahverkehr (ÖPNV). Er wird, um Umweltbelastungen und Staus zu vermeiden, in den meisten Städten besonders gefördert. Mietautos gibt es schon immer, seit es Autos gibt. Das Mieten von Flugzeugen, Tankschiffen, Lastwagen, Bau- oder Landmaschinen ist so gebräuchlich wie das Leihen von Fahrrädern, Skiern, Schlittschuhen, Fräcken, Brautkleidern, Arbeitskitteln und Babywaagen.

Immer mehr Unternehmen reduzieren die Zahl ihrer Festangestellten zu Gunsten von Freischaffenden und Leiharbeitern. Investitionen in Produktionsmittel (inkl. Büroräume, Lagerflächen) werden abgewogen gegenüber einer möglichen Fremdvergabe (engl. outsourcing). Der Hauptgrund für die anteilige Nutzung von Wirtschaftsgütern sind primär die zeitlichen Schwankungen in Bedarf und Nachfrage. Oft sind es auch die unterschiedliche Verfügbarkeit und die relativen Kosten von Kapital, die die Entscheidung beeinflussen. Neuerdings spielt die Idee der Nachhaltigkeit und der reduzierten Umweltbelastung hinein.

Wie weit dieses Denken uns bringt, zeigt eine spezielle Form, die mich geradezu fasziniert. Sie heißt Food Sharing. Hat man einen Salatkopf gekauft, verbraucht aber nur die Hälfte, lohnt es sich, die andere Häfte im Internet anzubieten, anstatt sie in den Mülleimer zu werfen. Hat man einen Interessenten gefunden, muss er unter Umständen die halbe Stadt (oder den halben Landkreis) durchqueren, um die Ware abzuholen. Ein Asylant, der für UPS fährt, ist vermutlich noch zu teuer, ganz abgesehen, von der Umweltbelastung durch Abgase. Was hier fehlt, ist eine Art Flaschenpost, die alle Häuser einer Stadt verbindet. Wird es richtig gemacht, wäre dies eine tolle Geschäftsidee. Es wäre die physikalische Ergänzung des Internet.

Information und Wissen als Sonderfall

Ich bin noch immer etwas überrascht, wenn in diesem Zusammenhang von Information und Wissen gesprochen wird. Das Teilen ist hier nicht das Gleiche wie bei physikalischen Gütern. Man ist immer noch geneigt an Bücher und klassische Bibliotheken zu denken, wo es um physikalische Objekte geht, die vergriffen, ausgeliehen oder verloren sein können. Das ist endgültig vorbei.

Wer vom Wissen teilen redet, denkt meist am Wikipedia. Millionen tragen bei, Millionen nutzen es. Bezeichnend ist, das bei Umfragen ein altersbedingter Unterschied zu Tage tritt. Junge Menschen (unter 35 Jahren) möchten gerne Information und Wissen teilen, ältere Menschen jedoch nicht. Zum Teil kommt der Unterscheid daher, dass es älteren Mitbürgern oft an Vorstellungskraft fehlt, was heute möglich ist. Manchmal kommt auch der unterschiedlich stark ausgeprägte Glaube an Utopien zum Tragen. Überlagert wird das Ganze von der Frage der Anerkennung geistigen Eigentums. ‚Der Kampf um das geistige Eigentum wird die größte Schlacht, die Sie je gesehen haben‘ sagte Jeremy Rifkin in seinem bereits im Jahre 2000 erschienen Buch Access  ̶  Das Verschwinden des Eigentums. Bis jetzt scheint er Recht zu behalten. Rifkin hat vieles von dem vorhergesagt, mit dem heute experimentiert wird.

Schlussbemerkungen

Das Interesse, das die ‚Shared economy‘ zurzeit erfährt, hat sowohl viele alte, aber auch einige neue Wurzeln. Vieles war schon einmal da, manches kommt wieder wie die Mode. Durch das Internet entsteht eine Markt-Transparenz, wie wir sie bisher nicht kannten. Es sind nicht nur mehr potentielle Kunden erreichbar, es ist auch eine erheblich schnellere Vermittlung möglich. Die Transaktionskosten sinken, Leerzeiten werden verringert. Manchmal werde ich den Eindruck nicht los, dass es sich z.B. im Falle des Car Sharing zunächst nur um ein Schlagwort handelt. Da wo es nicht eine Werbeaktion eines Autoherstellers ist, hat es zumindest einmal einem Verkäufer zu einem größeren Abschluss verholfen. Städte oder Gemeinden wurden zu einer Investition überredet, von der es sich erst noch zeigen muss, ob sie sich rentiert. Noch sucht man nach Lösungen und ist bereit Risiken einzugehen.

Manche ältere Leser werden sich auch an Garrett Hardins Buch erinnern über die Tragik der Almende (engl. Tragedy of Commons). Am Überweiden der Almende wurde hier klar gemacht, dass öffentliche Güter nicht die Zuwendung und Pflege genießen, die Privatbesitz erfährt. Mit dem Mittelalter endeten vielerorts die Almenden. Es wurden Zäune gezogen, um Privatbesitz abzugrenzen. Viele Güter, die vorher geteilt wurden, erhielten Konkurrenz durch Produkte, die auch privat erschwinglich waren. Der zunehmende Wohlstand beschleunigte die Entwicklung in Richtung des vermehrten Privatbesitzes. Das private Schwimmbad und das private Flugzeug mögen Endpunkte einer Entwicklung gewesen sein. Ob der private Rechner einst einer sein wird, bezweifele ich jedoch. Bei vielen Besitzgütern ergibt die wirtschaftliche Betrachtung nicht den alleinigen Maßstab. Auch Prestige und Sicherheit sind sehr menschliche Bedürfnisse.

Nicht zu verwechseln ist die ‚Shared economy‘ mit der so genannten Schenkökonomie (engl. Gift economy). Sie wird oft als bedeutender Zukunftstrend hochstilisiert. Sie unterscheidet sich jedoch dadurch, dass eine finanzielle Gegenleistung für das geteilte Produkt oder den geteilten Dienst ausgeschlossen ist.

Montag, 25. März 2013

‚Big Data‘ – nach der ‚Cloud‘ schon wieder ein Hype?

Wie von kaum einer anderen Branche, so werden von der Informatik immer wieder ‚neue Säue durch das Dorf getrieben‘. In diesem Falle ist der deutsche Ausdruck sogar derber als der englische. Die Informatik wird dabei nur von ihrer Schwester, der Wirtschaftsinformatik, übertroffen. Die technische Seite der Informatik, auch Kerninformatik genannt, ist meistens etwas langsamer. Bei ‚Cloud‘ und ‚Big data‘ ist die Zeitdifferenz des Interesses jedoch relativ gering. Nur noch so viel: Würde ich von Wolken und großen Daten reden, würde niemand zuhören. Mit Hilfe von Anglizismen erweitern wir laufend unsere Sprache. Während bei uns Wolken noch primär aus Wasserdampf bestehen, bestehen ‚clouds‘ nur noch aus Bits und Bytes.

Mein Ex-Kollege Irv Wladawsky-Berger, auf dessen Blog ich vor kurzem hinwies, ist um Klassen besser als ich, wenn es darum geht, aktuelle Themen in Wirtschaft und Gesellschaft anzusprechen. Bei dem Thema ‚Big data‘ will er gleich unsere ganze Gesellschaft neu erfinden (Reinventing Society in the Wake of Big Data). Er lässt sich dabei von dem MIT-Professor Alexander Pentland hinreißen, der an Prometheus erinnert, den Helden aus der griechischen Mythologie, der den Menschen das Feuer brachte.

“To be able to see the details of variations in the market and the beginnings of political revolutions, to predict them, and even control them, is definitely a case of Promethean fire. . . We’re going to reinvent what it means to have a human society.”

Was ist passiert?

Seit das Internet auch auf kommerzielles Interesse gestoßen ist, sammeln sich in ihm Daten in bisher nie gekanntem Umfang. Von Jahr zu Jahr werden die Schätzungen nach oben revidiert, will man den Umfang an kommerziell verwertbaren Daten beschreiben, der über das Internet zur Verfügung steht. Man unterscheidet eventuell noch, ob man die Daten meint, die sich direkt auf Internet-Knoten befinden, und solchen, die über Internet-Knoten erreichbar sind. Zum Glück liefert das griechische Alphabet noch Namen für die zugehörigen Zehnerpotenzen. Im Moment ist Exabytes (1018 Bytes) die gängige Maßzahl. Demnächst werden es Zetabytes (1021 Bytes) sein. Solche Datenmengen sind nicht nur interessant für das halbe Dutzend Informatik-Riesen (Amazon, Apple, Facebook, Google, Oracle und SAP), sondern auch für viele Regierungen oder nicht-staatliche Organisationen. 

Wenn Firmen um Kunden wetteifern, deren Anzahl in die Milliarden geht, ist es kein Wunder, dass ihre Datenbestände ebenfalls in entsprechende Größenordnungen anwachsen. Wie viele Rechner Unternehmen wie Amazon, Google und Facebook betreiben, ist zwar offiziell nicht bekannt. Jedermann weiß jedoch, dass es etliche Hunderttausende sind. Zählt man nur die Server, sind es einige Hunderttausend weniger, aber immer noch Hunderttausende. Dabei können als technische Lösung eine Vielzahl der Server auch auf einem Großrechner untergebracht (‚gehostet‘) sein.

Zwei Software-Produkte sind schon länger in aller Munde, nämlich MapReduce und Hadoop. Ersteres stammt von Google, das zweite von der Apache-Stiftung. Beide erlauben das Verarbeiten von großen Datenmengen im Petabyte-Bereich (1015 Bytes), die auf unterschiedlichen Knoten gespeichert sind. Diese Produkte gelten als die wichtigsten Neuerungen im Bereich der Datenorganisation in den letzten zehn Jahren.

Einige essentielle Besonderheiten

Aus der Vielzahl der Fragestellungen, die sich um ‚Big data‘ ranken, will ich fünf Besonderheiten herausgreifen. Sie scheinen grundsätzlicher Natur zu sein, also essentiell und nicht akzidentiell.

(1) Unkontrolliertes Wachstum: Übergroße Datenbestände haben gewisse Ähnlichkeiten mit den Software-Systemen, die Broy und Endres [1] unter der Bezeichnung Übergroße Systeme (engl. Ultra-large-scale systems) diskutierten.

Es sind dies riesige Software-Systeme, die ungeplant und unkontrolliert wachsen als Systeme von Systemen. Sie sind Welt umfassend und stellen wichtige Infrastrukturen dar, so für den Handel, die Gesundheit und den Verkehr. Vom Code-Umfang her stoßen sie in den Bereich von Milliarden Programmzeilen (GLOC) vor. … Sie setzen langfristig gültige Strukturen und Schnittstellen voraus. Sie wachsen über Jahrzehnte hinweg und sind empfindlich sowohl gegen Naturkatastrophen wie gegen Terroranschläge. Das Internet selbst ist das beste Beispiel. Auch die Systeme von Amazon und Google sowie die Buchungssysteme von Reisebüros und Fluggesellschaften gehören dazu.

‚Big data‘ sind quasi das Gegenstück. Gemeinsam ist vor allem das unkontrollierte Wachsen. Noch weniger wie Facebook die Anzahl seiner Nutzer vorhersagen kann, kann man abschätzen, welche Datenmengen und Datenarten sie der von Facebook bereitgestellten Software zur Verfügung stellen werden. Auch können die Datenmengen sehr schwanken. Amazon muss seine Kapazitäten (Menschen und Geräte) auf das Weihnachtsgeschäft ausrichten. Kommt es hier zu Engpässen, ist die Firma ruiniert. Für den Rest des Jahres kann man zwar den Mitarbeiterstab verkleinern, nicht jedoch die Informatik-Systeme.

(2) Nur lesende, extensive Nutzung: Zu den Daten, die mit dem Schlagwort ‚Big data‘ klassifiziert werden, gehören nicht die operationellen Daten, die das Tagesgeschäft ermöglichen. Es geht primär um eine nur lesende Zweitnutzung bereits angefallener Daten. In einem früheren Eintrag dieses Blogs wurde diese Art der Datennutzung als ‚Data Warehousing‘ bereits erläutert. Im Grunde geht es bei ‚Big data‘ um dasselbe, nur eine Zehnerpotenz größer und über das ganze Internet verteilt. Entscheidend ist, dass die Daten nur passiv und selektiv genutzt werden. Die Organisation der Daten ist vorgegeben. Sie ändern zu wollen, macht keinen Sinn. In der Landwirtschaft kennt man auch den Begriff der extensiven Nutzung, etwa bei Bergwiesen oder bei Latifundien. Wegen der anhaltenden Agrarüberflüsse wird diese Form in Europa derzeit gefördert. Ihr Gegenteil sind die Reisterrassen in Asien. Gewisse Analogien zur Datenverwaltung drängen sich auf.

(3) Detailtreue trotz Masse: Es ist ein Widerspruch zu lösen, den nur die Informatik lösen kann. Wenn die Zahl der Objekte auch noch so groß ist, so behalten sie doch ihr Recht auf Eigentümlichkeit, auf Diversität. Sie widersetzen sich der Abstraktion, da diese das Wesentliche entfernen würde. Sie würde die wertvollen Nuancen übertünchen, in denen die eigentliche Information steckt. Nur vollständige Diskretisierung und brutale Treue zum Detail ist Gebot.

(4) Balance-Akt bezüglich Privatsphäre: Der Erfolg jeder extensiven Datennutzung hängt sehr entscheidend davon ab, wo die Trennungslinie zwischen öffentlichen und privaten Daten gezogen wird. Nur nach einer sehr starken Anonymisierung darf mein medizinisches Schicksal oder mein Einkaufsverhalten im Weihnachtsgeschäft für wissenschaftliche oder wirtschaftliche Untersuchungen genutzt werden. Hier besteht ein sensibles Problem. Da ich weiß, wer die Daten erfasst, weiß ich, auf wessen Zuverlässigkeit ich angewiesen bin. Das ist auch der Grund, warum ich in fünf so genannten sozialen Netzen nur ein einziges Mal mit Klarnamen auftauche. Besonders vorsichtig bin ich bei Unternehmen, deren Geschäftsmodell davon abhängig ist, dass sie private Daten über mich erfahren.

(5) Dauerhaftigkeit des Problems: Manche Leute wünschen sich, dass die augenblickliche Umfangsexplosion der Datenbestände nur vorrübergehenden (ephemeren) Charakter habe. Dafür besteht wenig Hoffnung. Die bisher genannten Beispiele bezogen sich zwar alle auf private Unternehmen. Dieser Teil des Problems ist relativ neu und daher überraschend. Viele staatliche und überstaatliche Organisationen sehen ihren Daseinszweck im Sammeln von Daten. Das kann sich auf die Bevölkerungsentwicklung beziehen, oder auf das Ernährungs- oder Gesundheitswesen. Die Daten, die über Rohstoffe, Umwelt und Klima anfallen, stehen dem nicht nach. Besonders ergiebig sind die Projekte, die sich den extraterrestrischen Phänomenen widmen, wie z.B. dem Energiehaushalt der Sonne oder der Hintergrundstrahlung im Weltall.

Sicht der Wissenschaft

Nachdem die Praxis mit dem Problem bereits Jahre, wenn nicht Jahrzehnte lang gerungen hat, ist es inzwischen auch von den Hochschulen entdeckt worden. Eine deutsche Fachtagung, die diesen Monat in Magdeburg stattfand, hatte unter anderem zwei amerikanische Referenten eingeladen, einen von einer Hochschule, einen von einem Informatik-Hersteller, um über Teilaspekte des Themas vorzutragen.

Der anwesende Vertreter eines Herstellers vertrat die Meinung, dass ein völliges Neuschreiben bisheriger Systeme nicht möglich sei. Die Systeme könnten sich nur graduell weiterentwickeln. Der Hochschulvertreter stellte fest, dass bisherige Lösungen noch Schwächen besäßen, da sie meist graduell gewachsen seien. Er schlug einen Entwurf mit neuen und einheitlichen Konzepten vor. Unter anderem hat er die Notwendigkeit gesehen, selbstlernende Verfahren zur Anwendung zu bringen. Ohne die Details des Vorschlags zu kennen, kann ich mir vorstellen, dass das maschinelle Lernen sich bestenfalls nur auf lokale Optimierungen bezieht. Das Sammeln von grundsätzlichen Erfahrungen und ihre Kondensierung in Entwurfsentscheidungen kann nach meinem Dafürhalten nur ein menschlicher Experte leisten. Aufgaben, die für  Menschen zu schwierig sind, an Computer zu übertragen, ist eine Illusion, der nur Fachfremde verfallen.

Ein deutscher Kollege wies daraufhin, wie nützlich Visualisierungen sein könnten. Bekanntlich sind Visualisierungen eine sehr effektive Methode, um große Mengen an Daten zu komprimieren bzw. zu kondensieren. Es kommt dann die menschliche Fähigkeit zum Tragen, selbst Abweichungen geringsten Ausmaßes optisch oder haptisch leicht zu erkennen. Dieses Argument habe ich früher selbst benutzt.

Anstatt einer Zusammenfassung

Wie sagte doch Kollege Ludewig in diesem Blog: ‘…nicht jede Sau, die durch das Dorf läuft, verdient es, bejubelt zu werden.‘ Das Thema ‚Big data‘ sollte allerdings nach meiner Meinung die allergrößte Aufmerksamkeit erfahren. Das gilt für die Praxis genauso wie für die Wissenschaft. Es geht dabei nicht um Probleme, die wir uns erst ausdenken oder definieren müssen. Es betrifft die Realität von heute.

Wie das Thema in zukünftigen Produktstrukturen seinen Niederschlag finden wird, wage ich nicht zu beurteilen. Die Frage ist eigentlich sekundär. In mancher Hinsicht erinnert Einiges mich an die objekt-orientierten Datenbanken. Eine Weile sah es so aus, als ob es unmöglich sei, die vorhandenen relationalen Datenbanksysteme entsprechend zu erweitern. Speziallösungen überschwemmten den Markt. Die Platzhirsche, die relationalen Datenbanken, haben es schließlich doch geschafft, nicht in Normalform gespeicherte Daten angemessen zu verarbeiten.

Ob ‚Big data‘ die Menschheit in dem Maße weiterbringen wird, wie dies die oben zitierten amerikanischen Kollegen erhoffen, sei dahingestellt. Wichtig ist, dass hier die Informatik enorm gefordert ist. Sie hat die Chance, ihre einzigartige Bedeutung für die Menschheit erneut unter Beweis zu stellen. Nur sie besitzt Lösungskompetenz im praktischen Umgang mit großer Vielfalt und Massenhaftigkeit.

Zusätzliche Referenz
  1. Broy,M., Endres,A.: Informatik überall, jederzeit und für alle. Informatik-Spektrum 32,2 (2009), 153-162

Nachtrag am 27.3.2013: Auszeichnung für MapReduce

ACM in New York und die Infosys Foundation in Bangalore gaben gestern gemeinsam bekannt, dass Jeffrey Dean und Sanjay Ghemawat den  ACM-Infosys Foundation Award in Informatik für 2012 erhalten haben.

Dean und Ghemawat hatten im Jahre 2004 in einer Forschungsarbeit MapReduce vorgestellt. Es gestattet die vereinfachte Datenverarbeitung auf großen Clustern. Sie lösten damit ein Kern-Problem für den Google-Suchdienst. Sie hatten festgestellt, dass sie nicht schnell genug Maschinen bereitstellen konnten, um die beispiellosen Mengen an Daten zu verarbeiten, die von dem immer beliebter werdenden Google-Dienst benötigt wurden. Sie verfolgten eine Software-Lösung für etwas, was wie ein Hardware-Problem aussah. Diese Technologie wird inzwischen von nahezu allen großen Internet-Unternehmen in der Welt eingesetzt. Die von Dean und Ghemawat geschaffene skalierbare Infrastruktur ist entscheidend für das aufstrebende Gebiet des Cloud Computing, die Ressourcen über das ganze Internet verteilt bereitstellt.

ACM Präsident Vint Cerf sagte die Beiträge von Dean und Ghemawat haben die Informatik des 21. Jahrhundert verändert. "Sie schufen die technologischen Grundlagen einer unverzichtbaren Information Retrieval Ressource. Als Folge davon können sich Millionen von Ingenieuren, Wissenschaftlern und Gelehrten sowie normale Nutzer auf diese verteilten Software-Systeme verlassen, die die Kapazität von Zehntausenden von Computern ausnutzen." Der Preis ist mit 175.000 US$ dotiert.

Mittwoch, 20. März 2013

Wirtschaft, wie sie ist und wie sie sein sollte

Zwei zeitgenössische Wissenschaftler, die sich – von verschiedenen Seiten kommend  ̶  mit Ökonomie befassen, sind Amartya Sen (1933-) und Julian Nida-Rümelin (1954-). Beiden gemeinsam ist, dass sie sich vor allem Gedanken über die soziale und ethische Seite der Wirtschaft machen. Dabei geht es weniger um detaillierte und objektive Erklärungen der Prozesse und Zusammenhänge, als um eine geistesgeschichtliche Einordnung (‚Was passiert da eigentlich?‘) und um eine normative Bewertung und Infragestellung (‚Wollen wir das wirklich?‘). Nida-Rümelin bezeichnet Sen als Freund, mit dem er über Jahrzehnte hinweg Kontakt pflegte. Wie dieser so schätze er die formalen Methoden der Entscheidungstheorie und teile die Skepsis gegenüber dem Menschenbild (‚anthropologische Prämissen‘) der zeitgenössischen Wirtschaftstheorie.

Amartya Sen ist in Bengalen, dem heutigen Bangladesch, geboren. Er ist Professor für Wirtschaftswissenschaften in Harvard und erhielt 1998 den Nobelpreis. Mein Freund Peter Hiemann in Grasse hatte sich vor einigen Monaten mit Sen befasst. Ich las gerade ein Buch von Nida-Rümelin. Ich gebe hier die Berichte über beide Lese-Erlebnisse in Gegenüberstellung. Ich beginne mit Hiemanns Kommentaren zu Amartya Sens Buch ‚Ökonomie für den Menschen – Wege zu Gerechtigkeit und Solidarität in der Marktwirtschaft‘ von 2002.

Das Buch basiert auf Vorlesungen, die er vor Mitgliedern der Weltbank 1996 und 1997 gehalten hat. Sens Zielsetzung war: „Gesellschaftliche Organe, darunter viele Institutionen (der Staat, der Markt, das Rechtssystem, politische Parteien, die Medien, öffentliche Interessengruppen und Diskussionsforen) unter dem Gesichtspunkt zu thematisieren, dass sie die wesentlichen Freiheiten von Individuen erweitern und garantieren.“ Sen betont, dass „sich unterschiedliche Institutionen komplementär ergänzen müssen  ̶  vor allem marktunabhängige Organisationen und der Markt – sei eines der wichtigsten Themen seines Buches“. Sens Zielsetzung entspricht im Grunde dem Denkansatz, ökonomische Systeme als interagierende Teile eines gesellschaftlichen Gesamtsystems zu interpretieren. Im Folgenden versuche ich eine Zusammenfassung einige seiner wesentlichen Überlegungen.

Sen sieht in Adam Smiths ökonomisches Hauptwerk „Wohlstand der Nationen – Eine Untersuchung seiner Natur und seiner Ursachen“ (1776) einen Meilenstein der Wirtschaftstheorie, auf dem nachfolgende Überlegungen aufbauen. Insbesondere ist für Smith und Sen die Freiheit der Marktwirtschaft grundlegend und wichtiger als jeder ökonomische Lehrsatz. In dieser Hinsicht würdigt Sen auch Karl Marx, der im Aufkommen der Lohnarbeit (freie Wahl des Arbeitsplatzes) einen wichtigen gesellschaftlichen Fortschritt sah. Sen stellt fest, dass auch heute noch die freie Wahl des Arbeitsplatzes in vielen gesellschaftlichen Strukturen nicht verwirklicht ist. Zum Beispiel bei Grundbesitzern der oberen Kasten in rückständigen Teilen Indiens, wo es um die Wahrung „altehrwürdiger“ Interessen geht. 

Sen gibt Adam Smith recht, der schon im 18. Jahrhundert feststellte, dass Freiheit der Marktwirtschaft auch „Verschwender und Plänemacher“ auf den Plan ruft, die er für Probleme der „sozialen Vergeudung und Verlust an produktiven Kapital“ verantwortlich machte. Für Smith war jeder „Verschwender ein Feind der Allgemeinheit“. Sen zitiert eine Bemerkung Adam Smiths, die er für eine dessen berühmtester hält: „Nicht vom Wohlwollen des Metzgers, Brauers und Bäckers erwarten wir das, was wir zum Essen brauchen, sondern davon, dass sie ihre eigenen Interessen wahrnehmen. Wir wenden uns nicht an ihre Menschen- sondern an ihre Eigenliebe.....

Sens grundlegende Ansicht über Markteffizienz besagt, dass es bei dessen Beurteilung auf Fairness und die gerechte Verteilung von Freiheiten ankommt. Obwohl er in ausreichenden Einkommen einen Indikator für stabile ökonomische Verhältnisse sieht, ist er überzeugt, dass es gleichermaßen darauf ankommt, Einkommen in Verwirklichungschancen und erfreuliche Lebensumstände umzuwandeln. Bei der Bewertung der Marktmechanismen müssen nach Sen soziale Aspekte und Gerechtigkeitskriterien gleichzeitig thematisiert werden. Dabei ist zu beachten, dass in verschiedenen Wirtschaftsregionen verschiedene Kriterien zur Anwendung kommen. Zum Beispiel gelten in Europa garantierte Mindesteinkommen und allgemeine Krankenversicherung als wichtige Voraussetzungen für sozial gerechte Chancenverteilung in einer gesellschaftlich effizienten Marktwirtschaft, in USA gilt hohe Beschäftigung als wichtigstes Kriterium für Markteffizienz. 

Bei der Bewertung der Marktmechanismen wird die Verflechtung von politischen und ökonomischen Interessen sehr deutlich. „Politischen Einfluss um ökonomischer Gewinne willen zu suchen ist in unserer Welt eine handfeste Tatsache“. Nach Sen können solche Einflüsse sowohl positive als auch negative gesellschaftliche Auswirkungen haben. Sen zitiert in diesem Zusammenhang Adam Smith, der die Konsequenzen solcher Konflikte wohl realistischer beurteilte. Der meinte, „die Vertreter althergebrachter Interessen würden häufig triumphieren, weil sie das eigene Interesse sehr viel besser kennen – und nicht das öffentliche“. Sen dagegen möchte „allgemein marktfeindlichen Argumenten“ keinen Vorschub leisten, und scheint Konflikten zwischen unternehmerischen und öffentlichen Interessen vorwiegend einen potentiell  positiven Zweck abzugewinnen, indem verschiedenen Parteien Diskussionen als Prüfstein für eine offene Demokratie nutzen. In einem für Sen typischen Nachsatz, schränkt er seine allzu optimistische Aussage wieder ein: „Politische Freiheit kann die Verwirklichung einer anderen Freiheit, nämlich die vorurteilslose Auseinandersetzung über ökonomische Fragen, unterstützen“.

Wiederholt betont Sen, dass der „Einsatz der Märkte“ (was immer er unter Einsatz versteht) mit der Entwicklung gesellschaftlicher Chancen verbunden ist, die er im weitesten Sinn als Freiheiten verschiedener Arten sieht, d.h. als „demokratische Rechte, Sicherheitsgarantien, Möglichkeiten der Zusammenarbeit usw.“. Sen ist übrigens überzeugt, dass die Logik des Marktmechanismus auf private Güter abgestellt ist. Viele Bereiche der öffentlichen Vorsorge (z.B. öffentliche Güter und  Umweltschutz) können von privaten Märkten nicht bereitgestellt werden.

Sen weist auf einige potentielle Probleme hin, die der „Kunst des gezielten Einsatzes“ öffentlicher Mittel für soziale Zwecke entgegenstehen. Durch „Verzerrung der Information“ gelangen Individuen unberechtigt zu sozialen Leistungen. Durch „Verzerrung der Anreize“ kommt es zu kontraproduktiven Verschiebungen des „Arbeitsmarktes“ (Abhalten von weiterer ökonomischer Tätigkeit). Es besteht die Gefahr, dass Sozialhilfe sich negativ auf die Selbstachtung und die Achtung anderer auswirkt („negativer Nutzen und Stigmatisierung“). Schließlich sind Sozialprogramme stets mit „Verwaltungskosten und Korruptionsrisiko“ belastet. Sens Aussagen über „Finanzielle Klugheit und die Notwendigkeit der Integration“ bieten keine Erkenntnisse, die geeignet wären, Finanzmärkte zu „managen“. Sen behauptet, dass „Inflation ihrem Wesen nach ein dauerhafter Prozess ist, und Inflation zudem die Tendenz hat, mit der Inflationsrate zu wachsen“. Sens sehr allgemeiner Ratschlag lautet: „Die vermutlichen Kosten einer Tolerierung der Inflation sind gegen die Kosten einer Reduktion oder vollständigen Aufhebung der Inflation abzuwägen.“

Amartya Sen widmet ein Kapitel dem Thema „Die Bedeutsamkeit der Demokratie“. Sen wendet sich eindringlich gegen Behauptungen, dass Arme unweigerlich der Befriedigung wirtschaftlicher Bedürfnisse über politische Freiheiten den Vorzug geben würden.  Er wendet sich ebenfalls gegen die Behauptung, dass demokratische Freiheiten und Rechte   ein Hemmschuh für gesellschaftliche Entwicklung und Wirtschaftswachstum seien. Sen argumentiert, dass ökonomische Bedürfnisse die Dringlichkeit nach politischer Freiheit erhöhen. Sen begründet diese Ansicht mit der Wichtigkeit, die der konstruktiven Beteiligung aller Individuen einer Gesellschaft an der Entwicklung der politischen und ökonomischen Verhältnisse zukommt.  An anderer Stelle seines Buches verweist er auf das „Fiasko des bürokratischen Sozialismus“ ehemaliger Gesellschaftssysteme in  Osteuropa und der Sowjetunion. 

Vielleicht lohnt es sich, Sens Buch „Die Idee der Gerechtigkeit“ zusätzlich anzuschauen.  Einer Rezension dieses Buches konnte ich entnehmen, dass „er ein Verfahren befürwortet, bei dem auf die Eigenart der fraglichen Gesellschaft Rücksicht genommen wird, auf ihre tatsächlichen Verhaltensmuster. Seiner Meinung nach bedarf es Einigungen über die Rangfolge von Alternativen durch den Prozess eines öffentlichen Vernunftgebrauches. Diesen Ansatz bezeichnet er als komparativ. Die von ihm kritisierte  Konzeption einer sozial-politischen Grundordnung, welche auf dem Wert der Gleichheit beruht, bezeichnet er als transzendental. Soziale Verwirklichung der Gerechtigkeit soll Sen zufolge nicht nach Nutzen oder Glück oder der bloßen Verfügbarkeit von bestimmten Gütern bewertet werden, sondern an den Befähigungen und Chancen der Menschen einer Gemeinschaft.“

Eine sorgfältige Analyse von Sens  Aussagen, wieweit er in seinem Buch seinen Zielsetzungen gerecht wird, die Beziehungen, Verflechtungen und Abhängigkeiten von Staat, Markt, Rechtssystem, politischen Parteien, Medien und öffentlichen Interessengruppen darzustellen, habe ich nicht versucht durchzuführen. Das wäre eine sehr aufwendige Arbeit, die dadurch erschwert wird, dass Sens Aussagen sehr allgemein gehalten sind und breit gestreut (auch wiederholt) präsentiert sind.

Ich stimme mit Sen überein,
  • dass wir in einer Welt der Institutionen leben und arbeiten,
  • dass die Bewertung von Institutionen Aussagen über individuelle Freiheitsgrade erlaubt  und
  • dass der Marktmechanismus eine der wichtigsten elementaren Einrichtungen ist, mit deren Hilfe Menschen interagieren.
Meine Erwartungen, dass Sens theoretisches Modell detaillierte Aussagen über ökonomische Strukturen und Prozesse enthält, insbesondere über spezielle Funktionen und potentielle Ursachen für notwendige funktionale Veränderungen, waren wohl zu hoch gesteckt. Die derzeitigen Diskussionen, bedingt durch die globalen Finanzkrisen in USA und Europa, bieten wesentlich mehr Einsichten über politische und ökonomische Prozesse, die instabile gesellschaftliche Verhältnisse verursachen. Es wird interessant sein zu verfolgen, welchen Einfluss zukünftige pragmatische politische und ökonomische Regelsetzungen, um Finanzmärkte und Arbeitsmärkte zu stabilisieren, auf zukünftige ökonomische Theoriebildungen haben werden. An vielen Stellen des Buches hatte ich den Eindruck, dass sich Sen zu sehr bemüht, real existierende Konfliktsituationen zwischen unternehmerischen (vor allem von global agierenden Großunternehmen und systemischen Finanzinstitutionen) und öffentlichen Interessen aus dem Wege zu gehen. 

Während meines Versuchs, in Amartya Sens Thesen ein System, eine ökonomische Theorie zu erkennen, wurde mir deutlich, wie diversifiziert (und verwirrend) wirtschaftswissenschaftliche Ansätze sind, um ökonomische Theorien zu formulieren. Professionelle Ökonomen werden sich weiterhin damit beschäftigen und versuchen, für einige ökonomische Teilbereiche allgemeine Regeln und Algorithmen zu finden, die kurzfristige Prognosen erlauben. Neuen systematischen Ansätzen in politischen Theorien, unter anderen die „Neue Politische Ökonomie (NPÖ)“, könnte zukünftig größere Bedeutung zukommen. Deren Arbeitshypothesen umfassen  Theorien und Forschungsgebiete, die politisches Verhalten, Entscheidungsprozesse und Strukturen mit ökonomischen Prozessen verknüpfen. Auf der einen Seite kritisiert Amartya Sen (zu Recht?) den Denkansatz bzw. die Annahme der NPÖ, dass politische Entscheidungen als Nebenprodukt ökonomischer Entscheidungsprozesse angesehen werden. Auf der anderen Seite lässt Sen Aussagen vermissen, wie er sich die strukturelle Kopplung (bei Sen „Interdependenz“) von politischen und ökonomischen Systemen vorstellt.

Beim Studium von Sens Thesen ist mir aufgefallen, dass Sen keine Hinweise auf die ökonomischen Theoretiker John Maynard Keynes und Milton Friedman verwendet, obwohl beide in der öffentlichen ökonomisch orientierten Diskussion eine dominierende Rolle spielen. Sen dürfte bewusst sein, dass beide nicht nur Theoretiker waren, sondern direkten Einfluss auf politische Entscheidungsträger hatten und haben. Das gleiche galt vermutlich auch für Adam Smith im 18. Jahrhundert. Seine berühmte „unsichtbare Hand des Marktes“ findet heute weniger die von Sen gewürdigte Anerkennung, sondern wird vorwiegend als Argument verwendet, um neoliberales kapitalistisches Verhalten zu kritisieren.  Sen stellt mehr oder weniger „amüsiert“ fest: „Es ist eine Ironie der Ideengeschichte, dass mancher, der heutzutage eine radikale Politik fordert, sich oft für alte ökonomische Thesen erwärmt, die von Smith, Ricardo und Marx einhellig zurückgewiesen wurden.“

Soweit der Kommentar von Peter Hiemann zu dem Buch von Amartya Sen.

Julian Nida-Rümelin ist von Hause aus Philosoph. Er war während der ersten Regierung Schröder (1998-2002) Kulturstaatsminister in Berlin. Sein 2011 erschienenes Buch ‚Die Optimierungsfalle‘ beweist, dass er über den Zaun schauen kann und will. Er macht dies natürlich mit philosophischer Brille. Entsprechend den Teilen des Buches geht er von der Ökonomischen Rationalität aus, über Ethik zur Praktischen Vernunft. Zusammengefasst lautet sein Kredo: Der Homo Oeconomicus, der nur optimiert, wäre eine Katastrophe. Wir brauchen die moralische Persönlichkeit (im Sinne Kants). Zum Glück gibt es heute auch verantwortlich Handelnde in der Wirtschaft.

Im Detail macht er eine Reihe interessanter Aussagen, die ich unkommentiert nebeneinander stelle. Es ist ökonomisch rational, mit geringem Aufwand einen höchstmöglichen Profit oder zumindest einen guten Preis zu erzielen. In einer pareto-optimalen Verteilung kann niemand besser gestellt werden, ohne jemanden schlechter zu stellen. Jede Optimierung ist immer auch eine Wertung. Dinge wie Freundschaft und Liebe lassen sich nicht als Optimierung erklären. Ohne Altruismus gibt es kein gutes Leben.

Immanuel Kant glaubte, dass der Mensch nicht nur utilitaristisch (nach Hume) handelt, sondern aufgrund eines Pflichtgefühls, dem Sittengesetz. Nach Kants Meinung gehört zur Vernunft stets die Moral. Entscheidend sind nicht die Präferenzen, sondern was angemessen ist (Kategorischer Imperativ). Unsere Handlungen ordnen sich immer den Zielen unter, z.B. bei einem gemeinsamen Bankraub. Jemand, der eine Tat vollbringt, wissend, dass der Galgen dafür bereits steht, kann nicht schuldig sein, meinen viele Kantianer (Galgentest). Der islamistische Selbstmordattentäter ist das aktuelle Beispiel. Jede Kommunikation muss wahr (dem Wissensstand entsprechend), wahrhaftig (der eigenen Meinung entsprechend) und verlässlich (der Realität entsprechend) sein. Vertrauen wird nur aufgebaut, wenn der wirtschaftliche Erfolg hintangestellt wird.

Ethik definiert Tugenden. Einige davon findet man schon bei Platon (Beherrschtheit, Willensstärke). Verlässlichkeit ist ein wesentlicher Aspekt im Berufsethos. Mangelnde Urteilskraft führte in der Wirtschaftskrise zu falschen Einschätzungen. Vielen Menschen fällt es schwer, Komplexität auszuhalten. Entscheidungsstärke liegt vor, wenn strukturelle Entscheidungen schwerer wiegen als rein situationsbedingte (kohärente Praxis). Ohne Besonnenheit (nicht im Affekt handelnd) und Empathie (andere achtend) klappt kein menschliches Zusammenleben.

Die Gleichheit der Bürger ist mit der Ungleichheit im Betrieb verträglich. Nur Glück und Gerechtigkeit ergeben ein gelungenes Leben. Auf richtiges Handeln kommt es an. Es besteht ein Konflikt zwischen den Rechten des Individuums, der Freiheit anderer und der Nutzenoptimierung. Laut Amartya Sen sei dieser Konflikt nicht lösbar. Kant passe auch nicht immer, Platon sei manchmal besser.

Bildung muss Wissen und Tugenden vermitteln. Wir brauchen eine humane Ökonomie. Dafür benutzt er den Begriff ‚Strukturelle Rationalität‘. Die Menschen handeln nicht atomistisch, sondern in Verbindung (analog den Teilchen in der Quantentheorie). Wir haben viele Gründe für unser Handeln, die nicht zwingend und rational sind, z.B. eingegangene Verpflichtungen. Sie ergeben (nach Rawls) ein Gleichgewicht in unseren Überlegungen. Alles nur auf feste Gründe zu reduzieren, scheitert; aber nicht alles ist kulturbezogen.

Nida-Rümelin sieht seine Rolle darin, das ‚Kantsche Projekt‘ fortzuführen. Im Markt gibt es sehr oft externe Effekte. Es gibt Wirkungen von und auf Dritte. Die Rolle des Staates ergibt sich daraus, dass der Markt nicht perfekt ist. Er liefert keine kollektiven Güter, noch sorgt er für Nachhaltigkeit. Die Interessen zukünftiger Generationen werden nicht wahrgenommen. Neben Markt und Staat sollte es noch einen Dritten Sektor geben. Freiwillige Arbeit muss stärker beachtet und anerkannt werden, beginnend bei der unbezahlten Familienarbeit bis zu nicht-staatlichen Initiativen (NGOs). Zwei Sätze am Schluss gefielen mir sehr gut. ‚Alle Praxis ist Menschenwerk. Es gibt keine ehernen Gesetze der Biologie, der Geschichte oder der Ökonomie.‘ Um einige Wissenschaftler zurück auf die Erde zu holen, möchte ich da hinzufügen: ‚Auch Theorie ist nur Menschenwerk‘. Weniger gut gefielen mir Urteile von der Form: Software ist meist schlecht, da sie schlampig entwickelt wird; deutsche Autos dagegen sind immer gut.

In meinen Augen vertreten beide Autoren eine ziemlich idealisierende Sicht auf die Ökonomie. Um von ihr auf die Staats- und Bankenkrisen in Griechenland und Zypern oder die Jugendarbeitslosigkeit in Spanien zu kommen, bedarf es doch einiger Zusatzinformationen. Die Abstraktion, wie beide sie pflegen, macht halt alles einfacher. Dass Nida-Rümelin noch mehr moralisiert als Sen, ist nicht überraschend. Die Philosophie nimmt sich halt das Recht, alle Phänomene der nicht-physischen Welt nicht nur als Ausfluss der geistigen Bemühungen ihrer Vordenker darzustellen, sondern auch als reduzierbar auf einige wenige Grundprinzipien.

Samstag, 16. März 2013

Abstraktion oder Aggregation – was bringt uns weiter?

In einem Eintrag im Mai 2012 dieses Blogs wurde das Begriffspaar Abstrakt-Konkret wegen seiner Bedeutung in der Informatik kurz diskutiert. Dem Kollegen Hartmut Wedekind [1] folgend habe ich vor allem die Bedeutung im Sinne der mathematischen Logik hervorgehoben. Ein Beispiel, das dies illustriert, lautet:

2 Äpfel, 3 Birnen, 6 Erdbeeren und 10 Weintrauben → 21 Stücke Obst, oder besser etwa 2 Kilo Obst
  
Obst ist hier eine Abstraktion für vier vorkommende Obstarten. Würde man Äpfel aufteilen in Cox Orange, Granny Smith, Renette, Schöner aus Boskoop und Weißer Klarapfel wäre das eine Konkretisierung, also die Umkehrung einer Abstraktion. Eng damit verwandt ist die Differenzierung. Zum Konkretisieren holt man die Äpfel aus dem Baum. Zum Differenzieren wird gemessen und gewogen. Im Englischen würde das Wort Diskriminierung (engl. to discriminate) besser passen. Im Deutschen hat es aber eine Wertverschiebung erfahren. Die Mehrdeutigkeit von Differenzieren (engl. to differentiate) ist leichter zu verkraften.

Differenzierung und Konkretisierung tut not

Nicht nur Wedekind, auch viele andere Kollegen, bemühten sich, ihren Schülern und Studenten klarzumachen, wie wichtig für sie Abstrahieren sei. Dies ist leider nur die Hälfte der Geschichte. Der Denkfehler scheint historisch bedingt zu sein. In den Anfängen der automatischen Datenverarbeitung, insbesondere in der so genannten Lochkartenzeit, war es ein ökonomisch wichtiges Prinzip, das zu dieser Blickwinkelverengung führte. Es mussten Abstraktionen gesucht werden, um Effizienz zu erreichen. Was wirtschaftlich geboten war, wurde zu etwas Gutem erklärt. Inzwischen ist es an der Zeit, um umzudenken.

Unsere Technik hat ein Stadium erreicht, in dem sie uns nicht mehr zum Abstrahieren zwingt, zu Beschränkungen der Individualität. An die Stelle einer Nummer dürfen wieder Name und Adresse treten, sogar in Groß- und Kleinschreibung und mit Umlauten. Damit können Kunden, Mitarbeiter, Produkte oder Bauteile identifiziert werden. Die Technik kann helfen, unerwünschte Gleichschaltungen zu vermeiden. Anstelle einer Vermassung durch Automation kann die Individualisierung dank Technik treten, eine Explosion von Ausprägungen, eine Präferenz für Vielfalt. Computer haben keine Angst vor Komplexität, lediglich ihre Programmierer. Kundenspezifische Massenfertigung (engl. mass customization) sollte nicht auf den Automobilbau beschränkt bleiben, sondern kennzeichnend für jedes moderne System sein, vor allem für solche, die mit Menschen zu tun haben.

Lernen sollten junge Menschen, dass die Differenzierung immer Vorrang hat. Wenn wir nicht differenzieren, brauchen wir auch nicht zu abstrahieren. Abstrahieren ist nur eine Hilfe, allerdings eine sehr wichtige. Ohne sie erhält unser Weltbild keine Struktur. Normalerweise erfolgt die Strukturierung erst anhand vorhandener Objekte, nicht vorher. Apriorismus nennen die Philosophen diese fragwürdige Tendenz. Nachdem wir erkannt haben, dass Äpfel und Birnen sich unterscheiden, stellen wir später fest, dass sie einiges gemeinsam haben. Das Gemeinsame erkennen wir – zum Beispiel auf dem Marktplatz  ̶  daran, dass sie am selben Stand angeboten werden. Käse, Milch und Hühner gibt es woanders. Durch das Klassifizieren in Objekthierarchien ordnen wir die Welt. Mit Änderungen des Wissens ändert sich auch die Struktur, die wir ihm aufgeprägt haben. Für dynamisch sich ändernde Wissensgebiete kann eine zu starre Denkstruktur zur Belastung werden.

Viele von der Mathematik beeinflusste Kollegen werden sagen: ‚So what!‘ Wir liefern doch nur die gedanklichen Werkzeuge, um mit Abstraktionen und Differenzierungen umzugehen. Ob sie angewendet werden, überlassen wir den Nutzern. Diese Haltung sollten wir als Unprofessionell brandmarken. Meines Erachtens geht die Verantwortung von Pädagogen und Wissenschaftlern über das Auflisten von Alternativen hinaus. Sie sollten dabei helfen, das Wissen der Welt optimal zu strukturieren. Was sein persönliches Optimum ist, muss jeder selbst lernen.

Der wissenschaftliche Fortschritt rührt primär daher, dass wir lernen besser und genauer zu unterscheiden. Daher ist es besser, wenn junge Menschen angehalten werden auf Nuancen zu achten. Jede Verallgemeinerung birgt nämlich große Gefahren in sich. Ein guter Leitspruch könnte lauten: ‚Abstractions considered harmful‘. Es folgen einige Beispiele.

  •    Rechner haben unendlichen Speicherplatz
  •    Es gibt unendlich viele ganze Zahlen
  •    Gleitkommazahlen stellen reelle Zahlen dar
  •    Computer sind mathematisch genau rechnende Maschinen
  •    Alle Nutzer sind gleich erfahren oder unerfahren
  •    Meine Programmiersprache ist für alle Nutzer gleich gut
  •    Flatrate lässt allen Nutzern freien Spielraum
  •    Werbefinanzierte Leistungen kosten den Nutzer nichts, usw.

Auch in der Naturwissenschaft erfolgen Verständnis und Fortschritt eher durch Differenzierung als durch Verallgemeinerung. Die Geometrie stellt zwar Kreis und  Kugel deshalb in den Mittelpunkt, weil sie leicht zu definieren und zu zeichnen sind. Sie sind jedoch schwierig herzustellen und kommen in der Natur in reinster Form äußerst selten vor. Dieser Tage zeigte selbst der Saturnmond Rhea sein vernarbtes Gesicht. Er zeigte uns seine Geschichte und seine Persönlichkeit. Die Technik schließlich gelangt nur dann zu originellen Lösungen, wenn sie sich vor allzu leichten Verallgemeinerungen hütet. Je konkreter sie bleibt, umso besser. Da sie dem Menschen dient, sollte sie Abstraktionen vermeiden, so gut es geht. Es sind nicht die Abstraktionsleistungen, die zu Entdeckungen und Erfindungen führen, sondern neue Differenzierungen.

Nur die Mathematiker wagen es mitunter zu sagen, dass regulär (also niedrige Variationsvielfalt) schön sei, und dass schön zu sein als Grund gilt, wahr oder richtig zu sein. Die mathematische Theorie der Ästhetik hat da ihre Wurzeln. Moderne Schönheitschirurgen verdienen sogar sehr viel Geld damit, dass viele Frauen glauben, von der Differenzierung durch die Falten des Alters müsste man abstrahieren. Diese bewusst zu akzeptieren, wäre vielleicht klüger.

Um von den Beispielen aus Technik und Wissenschaft zu verallgemeinern, begebe ich mich auf ein Terrain, das voller Schlaglöcher ist, die Politik. Einerseits  werden tradierte Klassifizierungen als unpassend erklärt, etwa die als Behinderte, Neger oder Zigeuner. Andererseits werden Unterschiede zwischen Jungen und Alten, Frauen und Männern,  Begabten und Unbegabten, Faulen und Tüchtigen, usw. wegdiskutiert. Es wird nivelliert, auch da, wo es keinen Sinn macht. Auf Unterschiede hinzuweisen, ist politisch nicht mehr korrekt. Wir neigen dazu, möglichst alle Bürger über den gleichen Kamm zu scheren, statt ihre Individualität anzuerkennen oder zu betonen.

Nicht alle Strukturen sind Hierarchien

Wenn Mathematiker an Strukturen denken, denken sie sehr oft nur an Hierarchien. Das sind (umgekehrte) Bäume oder azyklische Graphen. Manche Anwendungen in der Informatik kommen sogar damit aus. Im Normalfall haben wir es mit Netzstrukturen zu tun. In Unternehmen, wo Mitarbeiter fast immer von mehreren Personen oder Funktionen (fachliche, rechtliche oder finanzielle) Anweisungen erhalten, spricht man von heterarchischen Strukturen.



Das beigefügte Bild versucht eine Heterarchie zu veranschaulichen. Es sind vier Halbordnungen angedeutet, in denen der Begriff ‚Mitarbeiter‘ vorkommt. Stellt man sich für jeden anderen Begriff eine ähnliche Figur vor, entsteht ein Netz. Wenn man sich Tausende solcher Netze vorstellt, bekommt man einen Eindruck davon, mit was Informatiker sich beschäftigen sollten. Ganz ohne Hoffnung bin ich nicht. Vermutlich ist Google längst auf diesem Weg.

Nur Aggregationen führen zur Automation

Abstraktionen dienen primär dazu, Informationen, die im Moment nicht benötigt werden und daher nur belasten, gedanklich abzuschütteln. Wir bilden Äquivalenzen von Dingen, die eigentlich keine sind, und tun so, als ob sie existierten. In der Informatik müssen immer wieder konkrete Daten zu Gruppen zusammengefasst und in ihrer Gesamtheit angesprochen werden. Dabei darf normalerweise keine Information verloren gehen. Von einer automatischen Vergessens-Funktion ist in diesem Zusammenhang manchmal die Rede. Da ein befriedigender Algorithmus bisher noch nicht gefunden wurde, begnügen wir uns meist mit einer automatischen Auslagerung innerhalb der Speicherhierarchie. Noch sammeln und speichern wir jedes Jahr mehr Exabytes (1018 Bytes) an Daten als im Jahr davor. Dank Informatik fehlt es nicht an Medien und Geräten, die für eine sinnvolle Weiterverarbeitung dieser Datenmassen geeignet sind. Nur die Software hinkt nach.

Die Informatik hat seit ihren Anfängen mit den unterschiedlichen Aggregationsformen von Daten und Informationen experimentiert. Bei kommerziellen Anwendungen sind Dateien und Datenbanken das Rückgrat für formatierte Daten. Für Text, Bild und Ton gibt es jeweils eigene Formate. Techniker begannen mit Vektoren und Matrizen, haben dann für jedes Teilgebiet weiter Formen von Datenkollektionen standardisiert. Sehr schnell stößt man aber an Grenzen der Austauschbarkeit.

In der kaufmännischen Informatik wird dieses Problem durch eine indirekte Lösung adressiert. Ausgewählte Datenbanken werden periodisch in ein ‚Data Warehouse‘ übertragen. Dabei durchlaufen sie einen Umformungsprozess, auch ETL-Prozess (Extract, Transform, Load) genannt. Anhand eines OLAP-Würfels (engl. online analytical processing cube) werden dann die Projektionen der Daten gebildet, die für  statistische Analysen benötigt werden.

Ähnliches ist mir für technische Daten nicht bekannt. Was die Daten eines komplexen Teiles im Auto- oder Flugzeugbau beschreibt, hat keinen Bezug zum Bauwesen oder der Vermessungstechnik, von Anatomie, Astronomie, Biologie, Chemie und Geologie ganz zu schweigen. Sollte es nicht von Vorteil sein, wenn alle diese Daten eine gemeinsame Form der Beschreibung hätten? Bitketten und Zeichenfolgen scheinen mir ein äußerst primitives Niveau der Daten-Kommunikation zu sein. Mögliche Lösungen findet man bestimmt nicht in Mathematik-Büchern. Suchen sollte man sie in Produkt-Spezifikationen oder Patenten von Computergrafik-Anbietern wie Adobe, AutoCAD oder Wolfram Research.

Quintessenz

Wir sollten die Unterschiede mehr betonen als die Gemeinsamkeiten. Der Schritt zur Abstraktion heißt nämlich zu oft, dass man aus der Realität und der individuellen Verantwortung entfliehen möchte ins Unverbindliche, in die ideale Welt ohne Grenzen und Beschränkungen. Weder die grüne Wiese ist das Ideal der Ingenieure, noch das Abstrakte. Nicht alles Konkrete muss aus Beton sein (engl. concrete).

Die Informatik sollte keine Angst vor nicht-hierarchischen Strukturen haben. Die Welt ist voll davon. Auch sollte man über mächtige und flexible Aggregationen nachdenken. Langwierige Transformationen sind nur die zweitbeste Lösung. In der augenblicklichen historischen Situation sind sie durchaus akzeptabel. Informatiker dürfen, ja sollten aber auch nach langfristigen, optimalen Lösungen suchen. Die Branche hat bereits Schlagworte wie ‚Big Data‘ und ‚Sharing‘ zur Hand.

Die Informatik kommt nicht umhin, sich von der Denkweise und den Zielen der Mathematik zu befreien. Was die als Fußgängerin groß gewordene Leihmutter Mathematik kennen und lieben gelernt hat, mag den Auto fahrenden und Flugzeug fliegenden Kindern und Enkeln nicht immer helfen. Nach über 50 Jahren sollte die Informatik sich von mathematischen (oder gar philosophischen) Denkmodellen zu lösen beginnen und langsam damit anfangen, selber zu denken.

Zusätzliche Referenz

  1. Wedekind, H., · Ortner , E., ·Inhetveen, R.: Informatik als Grundbildung, Teil III: Gleichheit und Abstraktion. Informatik-Spektrum 27,4 (August 2004), 337-341 

Nachtrag am 25.3.2013 von Hartmut Wedekind:

Ein kurzer Bericht ist beigefügt über eine philosophische Podiumsdiskussion in Darmstadt. Der Bericht hat den Titel ,Richtung und Sinn als Abstraktion'. 

NB: Die Diskussion des Themas Abstraktion wird außer in den beigefügten Kommentaren auch in einem späteren Eintrag wieder aufgegriffen.

Montag, 11. März 2013

Unterstützen Programmiersprachen die Anwender optimal? (mit Kommentaren)

[Dieser Beitrag wurde am 11. 4. 2013 von dem Kollegen Hans-Jürgen Hoffmann aus Darmstadt im Detail kommentiert. Er vertrat während seiner aktiven Zeit als Hochschullehrer das Fachgebiet Programmiersprachen. Mit so viel Zustimmung hatte ich nicht gerechnet. Hoffmann hat seine Kommentare in meinen Text hineingeschrieben - ein Novum für diesen Blog. Ich habe sie dort gelassen und nur mit eckigen Klammern eingefasst. Normalerweise erscheinen sie in roter Farbe]

Mit dieser Frage stoße ich mal wieder mitten ins Herz der Informatik. Sie berührt das professionelle Selbstverständnis von Informatikerinnen und Informatikern. Die Frage interessiert natürlich Nicht-Informatiker ebenso. Dabei bezieht sich das ‚ebenso‘ nur auf die Intensität, nicht auf die Richtung des Interesses. Zu den Lesern dieses Blogs rechne ich fast so viele Informatiker wie Nicht-Informatiker. Dieser Beitrag verfolgt nicht den Zweck, letztere abzuhängen. Also bitte etwas Geduld, auf beiden Seiten!

Die meisten Aktivitäten von Informatikerinnen und Informatikern haben das Ziel, die Benutzung von Computern zu erleichtern. [Leider wird das oft missachtet!] Wie weit man dabei gehen kann und gehen soll, darf durchaus diskutiert werden. Eine extreme Position wurde von Edsger Dijkstra, einem Altvater der Informatik, ausgedrückt, als er sagte: ‚Software Engineering ist der Versuch, Leuten, die nicht Programmieren können, das Programmieren zu ermöglichen.‘ (EWD1036) Mit anderen Worten: Nur Menschen mit ungewöhnlicher Begabung sind als Programmierer geeignet. [Na ja, etwas abgehoben! Ich denke da z.B. an das Verwenden von EXCEL, was ja auch eine Form von Programmieren ist; selbst Sekretärinnen und Kaufleute können das und viele mehr. VISICALC war da der Durchbruch!] Das andere Extrem steckt in dem Buchtitel ‚Anwendungsentwicklung ohne Programmierer‘ von James Martin. [Tut mir leid, jede Anwendungsentwicklung enthält Programmieraufgaben.] Martin ist bei Informatik-Anwendern etwa so bekannt wie Dijkstra bei Informatikern. [Sie schreiben von Extrema; heutzutage sollte da an einen Mittelweg gedacht sein.] Dass Computer-Nutzung nicht an individuelles Programmieren gebunden ist, ist ein anderer wichtiger Aspekt, auf den hier nicht eingegangen werden kann.

Über den Umfang des Begriffs Programmiersprachen wurde auch immer wieder diskutiert. Viele Kollegen vertreten die Meinung, dass jede Kommunikation mit einem Rechner (wie zwischen Menschen) nur mittels Sprache erfolgt. Es ist dann alles nur eine Frage von Syntax, Semantik und Pragmatik. Die Bewegungen und Tasten einer Maus kann man als Sprache interpretieren, ebenso wie die Eintragungen in einem Spreadsheet. [Diesen  Kollegen schließe ich mich an.] Im Folgenden denken wir nur an spezielle Notationen, deren Semantik es erlaubt, ablauffähige Maschinenprogramme zu erzeugen. [O.k.] Der Begriff der Turing-Vollständigkeit geistert durch die Fachwelt. Je nachdem wie man zählt, wird geschätzt, dass  es zwischen 1000 und 2000 Programmiersprachen gibt. [Sie kennen sicher auch noch die Zusammenstellungen, die Jean Sammet in den 70ern jährlich in den SIGPLAN Notices veröffentlichte; kam sie damals nicht schon auf solche Zahlen?]  Etwa ein Dutzend davon haben [betrachtet aus heutiger Sicht,] eine Verbreitung erreicht, die für den Anwender von Belang ist. (Einige) Andere davon sind nur noch von historischer Bedeutung, d.h. [sie haben sich nicht bewährt, benötigte Rechnerplattformen sind nicht mehr verfügbar, sie waren gar nicht oder nur mangelhaft vermarktet,] ihre Benutzer sind nicht mehr beruflich aktiv oder bereits verstorben.

Als Anwender bezeichne ich im Folgenden primär Ingenieure. Kaufleute und andere Nicht-Informatiker. Denkt ein Ingenieur oder Kaufmann ans Programmieren, dann denkt er vor allem an technische oder kaufmännische Berechnungen, weniger an Systemprogramme. Das gilt für Bau- und Vermessungsingenieure, aber auch für Maschinenbauer und Elektro-Ingenieure. Aber auch für Buchhalter, Statistiker, Vertriebsmitarbeiter und Planer. Für den Fortschritt der Technik ist die Automatisierung technischer Berechnungen und technischer Prozesse von ausschlaggebender Bedeutung. Auch die immer größer werdenden Massen betrieblicher Daten sind nur noch durch Computer in vertretbarer Zeit zu bewältigen. Kein Problem ist daher wichtiger, als mit dieser Vielfalt von Daten und Anwendungen fertig zu werden.

Stattgefundene Entwicklung

Vor etwa 40 Jahren waren Programmiersprachen und deren Übersetzer mein Hauptarbeitsgebiet. Es war dies die Zeit der problem-orientierten Sprachen (engl. problem oriented language, Abk. POL). Nach Erfahrungen in der Anwendung von Commercial Translator, COBOL und Fortran war ich an der Definition von PL/I beteiligt. Das primäre Ziel dieser Bemühung war es, die Zersplitterung der Nutzergemeinde von Rechnern zu verhindern. Der Kampf tobte primär zwischen technischen und kaufmännischen Nutzern. Durch die Schaffung der Architektur des System/360 durch Gene Amdahl, Fred Brooks und Gerry Blaauw war es gelungen, die auseinander strebenden Hardware-Familien wieder zu vereinen. Die Software-Gemeinde der IBM erhielt den Auftrag, das gleiche Ziel für die höheren Programmiersprachen anzustreben und in entsprechende Produkte umzusetzen. Das Team um George Radin, Jim Fox, Paul Rogoway, Bernice Weitzenhofer und andere stellten sich der Aufgabe. Das Ergebnis war die Sprache PL/I. Waren die beiden genannten Ziele bereits unverträglich, so kam während ihrer Definition noch eine dritte Zielsetzung hinzu. Die neue Sprache sollte auch die Anforderungen einer System-Implementierungssprache (engl. system implementation language, Abk. SIL) erfüllen. Auch dieses Ziel wurde durch die Addition von Datentypen wie Bit-Ketten [ich verwende da lieber den Begriff „Reihe“: „Reihe“ ist auch eine mögliche Übersetzung für „string“ und m.E. sinngemäßer – mittlere „Reihenglieder“ haben immer genau zwei Nachbarn, eine Vorstellung bei diesen Datentypen; das trifft zwar meist auch für mittlere „Kettenglieder“ zu, es gibt aber auch die Möglichkeit, dass noch ein drittes oder weiteres Glied daran eingehängt ist (und das wäre nicht sinngemäß)] und Zeiger gelöst. Die sich ergebende Sprache war erst recht überladen.

Das Schicksal von PL/I interessiert heute nur noch Historiker. Es war eine Illusion zu glauben, kommerzielle und technische Anwender würden sich mit einer gemeinsamen Sprache abfinden. Im Ergebnis wurde PL/I zur populärsten Zweitsprache. Wollten COBOL-Nutzer etwas mehr Formeln [wie bei Algol] haben, oder Fortran-Nutzer bessere Datei- und I/O-Formate [die es bei Algol nicht gab, wenn ich diese Programmiersprache sozusagen als Referenzsprache wähle] dann griffen sie zu PL/I. [in beschränktem Umfang bot PL/I die Möglichkeit,  an die jeweilige Programmieraufgabe angepasste Datentypen in einem Programm zu definieren, die dann besonders Pascal als Referenzsprache aufnahm]  Durch Minirechner und PCs wurden alle (drei) [fünf] Sprachen in den Hintergrund gedrängt – im wörtlichen Sinne. Algol war und blieb ein Steckenpferd europäischer Hochschulen. [Pascal fand mehr Verbreitung, besonders auch bei Hobby-Programmierern und zu Unterrichtszwecken, ist aber bedauerlicherweise auch schon (fast) vergessen, too small to survive.]  Da die neuen, zunächst leistungsschwächeren Rechner sich nicht den Komfort einer guten kommerziellen und einer guten technischen Sprache leisten konnten, machten neben BASIC die eigentlichen SILs das Rennen. Dank Unix wurde es vor allem die Sprache C. Über C++ ging die Entwicklung zu Java. Der Rest ist Geschichte. Kaufleute und Ingenieure hatten das Nachsehen. Das ist – sehr verkürzt  ̶  meine persönliche Sicht der Dinge. [obwohl ich auch Eiffel-Fan war und bin, würde ich es stattdessen vorziehen, Smalltalk aufzunehmen – Wegfall des Programmier-Übersetz-Binde-Ausführ-Zyklus beim (Weiter-)Programmieren, interaktiv, selbst-reflektiv, ein Vorgehen/eine Möglichkeit, die sich leider in den heute verbreiteten Sprachen kaum realisiert findet. Aus Eiffel sollte selbstverständlich das Verständnis by contract mit Vor- und Nachbedingungen und Objektbedingungen – die Bezeichnung „Klassenbedingung“ finde ich nicht so glücklich – weitere Verbreitung erhalten, auch und besonders überprüfbar zur Übersetzungszeit, leider eine ziemliche Vision meinerseits!] 



In der ersten der beigefügten Skizzen stellt jede Schicht etwa ein Jahrzehnt dar. Die unterste Schicht entspricht der Zeit um 1960. Alle Neuentwicklungen drängten nach rechts. [Da würde ich Assembler nach links setzen, ebenso auf der zweiten Schicht Algol – sonst sehr anschaulich! Diesem Vorschlag folgend müsste allerdings die Bildüberschrift neu bedacht werden.] Die linke Seite verödete. Es ist mein Eindruck, dass die Autoren von frühen Sprachen sehr stark auf ihre Kunden hörten. Sie taten es, weil sie noch glaubten, Anwendern entgegenkommen zu müssen. Sie bemühten sich, deren Wünsche zu erfüllen. Spätere Sprachen wie Pascal, C und Eiffel wurden von Systementwicklern für Systementwickler entworfen. Die Anwender in der Wirtschaft mussten nehmen, was sie bekamen. Als erstes fiel die Dezimalarithmetik weg. Sie war der Kern von COBOL und ein dicker Brocken in PL/I. Das Konzept der Sätze (engl. records), ein anderer zentraler Baustein von COBOL, wurde in Pascal neuentdeckt. Das Konzept der Formate (engl. pictures) versank im Orkus.  Die Rettungsanker der Techniker und Kaufleute wurden Pakete wie Mathematica und SAP R/3. Da sich immer mehr Anwender an sie klammerten, ist dies beiden Seiten, d.h. ihren Entwicklern und Nutzern, nicht schlecht bekommen.

Generell ist die explizite Beschreibung von Formaten (ebenso von Text-Layouts) weitgehend ersetzt worden durch eine oft interaktiv gewonnene implizite Festlegung anhand von Beispielen. In der Textverarbeitung spricht man vom WYSIWYG-Prinzip. In dem Maße, wie die Ausgabe eher auf einen Bildschirm als auf einen Drucker gelenkt wird, werden die exakten Datenformate nicht im Programm selbst, sondern durch einen grafischen Editor separat spezifiziert und weggespeichert. Es würde zu weit führen, auf die Vielzahl möglicher Lösungen einzugehen. In der Tendenz wird das eigentliche Programmieren immer mehr reduziert auf die Festlegung der reinen Verarbeitungslogik. Davon losgelöst erfolgt eine starke Strukturierung und Selbstbeschreibung der Daten. Besonders geglückt ist dies bei Text-, Bild- und Tondaten (Beispiel MIME-Protokolle).

[In obiger Skizze treten auch zwei als „objektorientiert“ bezeichnete Sprachen auf – C++ und Java –, ab der vierten Schicht, also etwa ab 1990 – obwohl es da auch Vorläufer in tieferen Schichten gab/gibt, würde ich da der begrifflichen Klarheit wegen als Referenzsprache auch Smalltalk aufnehmen wollen – eine Entwicklung, zu der m.E. noch etwas gesagt werden sollte].

Nicht stattgefundene Entwicklung

Obwohl im Prinzip große Fortschritte erzielt wurden, möchte ich im Folgenden andeuten, was Ingenieuren und Kaufleuten bisher entgangen ist. Es besteht nach meiner Ansicht immer noch ungenutztes Potential vor allem bei technischen Anwendungen. Ich beziehe mich im Folgenden im Wesentlichen auf einen Vorschlag, der in [1] (S. 348-368) dokumentiert wurde. Ich würde dieses Konzept heute als problem-orientierte oder konkrete Typen bezeichnen. Der Vorschlag [ich unterstütze dieses sehr] geht auf den früheren Kollegen Ed Lowry [2] zurück und stammt aus dem Ende der 1960er Jahre. Es gab um diese Zeit bereits Intervall-Arithmetik [Neben-bemerkung, Hinweis auf die Dissertation von Dr. Kunstmann [3], von mir um die Jahrtausendwende betreut, die dieses Konzept (Intervall-Arithmetik) bei einem in Smalltalk unter Ausnützen auch von Interaktion und Selbst-Reflexion programmierten Kalkulationsprogramm realisierte, einschl. dem Mitführen physikalischer bzw. kommerzieller(!) Maßeinheiten (!!). Herr Gunzenhäuser war da freundlicherweise Korreferent], aber auch Sprachen [im Stil von APL], die Vektoren und Matrizen als das behandeln, was sie für Ingenieure sind, nämlich Datentypen, die man geschlossen manipulieren kann, d.h. ohne ihre interne Struktur und ihre Speicherung zu kennen.

Der Kern des Vorschlags bestand darin, Programmen mehr als nur die elementaren Trägertypen (integer, float, char) mitzuteilen. In der Technik sowohl wie im Kaufmännischen gibt es nur wenige Fälle so genannter dimensionsloser Zahlen. Fast immer haben Zahlen eine Dimension (hier im ingenieurmäßigen Sinne). Sie stellen dann nicht nur abstrakte Werte dar, sondern Größen. Im Kaufmännischen sind es Währungsbeträge (€, US$, £, ¥) [und Zeiträume (pro Jahr oder pro Person, Geschäftsvorfall, … z.B.)], im Technischen sind es Längen, Gewichte, Zeiten, Spannungen, Widerstände oder Leistungen. Diesen Dimensionen einer Größe sind Maßeinheiten zugeordnet. Alle Zahlen erhalten einen Sinn erst durch die Einheit, in der sie ausgedrückt sind. Die Zahl 42  ̶  den Anhängern von Douglas Adams bestens bekannt  ̶  kann Millimeter, Meter oder Kilometer sein, oder aber Stunden oder Tonnen. Selbst dann sagt sie noch nicht allzu viel. Es fehlt die Semantik.

Viele Verbesserungen, die in der Programmierung möglich sind, haben damit zu tun, wie Wertebereiche von Variablen spezifiziert werden, und wieweit eine daraus sich ergebende maschinelle Prüfung möglich ist. Oder umgekehrt, viele Probleme, die beim Testen von Programmen oder später auftreten, sind dadurch verursacht, dass Wertebereiche zugelassen waren, die man nicht überblickte. [etwas Vergessenes aus Pascal!]

Ich erwarte eigentlich heute von jeder Programmiersprache, dass sie Datentypen verwendet, die aus der Welt der Nutzer stammen. Angenommen, es gäbe den Typ Uhrzeit. Er müsste zusammengesetzt sein aus den Einheiten Stunde (h), Minute (min) und Sekunde (sec). Dabei würden alle drei extern durch ganze Zahlen dargestellt, die wie üblich beschränkt sind. Andere Werte würden nicht zugelassen.

type Uhrzeit: h.min.sec; h: 0..23; min, sec: 0..59

Ich gehe davon aus, das Rechner-intern die benutzten Einheiten eines Typs immer umgerechnet würden auf die jeweils niedrigste Einheit, z. B. eine Minute in 60 Sekunden,  sowie eine Stunde (1 h) in 3600 Sekunden. Erst beim Ausgeben würde automatisch auf das externe Format zurückverwandelt. Bei der Währungseinheit Pfund Sterling würden alle Beträge intern immer in Pence dargestellt.

Ein Typ Kalender_Datum könnte extern als aus drei Teilen bestehend dargestellt werden.

type Kalender_Datum: Jahr.Monat.Tag; Jahr: 1945..2013; Monat: 1..12; Tag: 1..31;

[ganz ausgefeilt sogar die Tagesgrenzen abhängig von dem Monatswert, Schaltjahre nicht vergessen]. Bei diesem Typ würden alle Termine intern in der Form des so genannten Julianischen Tags dargestellt. Durch objektorientierte Sprachen wie [Smalltalk,] C++ und Java lässt sich ein ähnliches Konzept heute implementieren.

Der am weitesten gehende Teil des Vorschlags ließ sich von folgender Überlegung leiten. Schreibt ein Kaufmann eine Zahl, denkt er fast immer an eine Währung. Schreibt ein Techniker eine Zahl, denkt er an eine technische Maßeinheit. Alle Formeln, die ein Ingenieur benutzt, sind im Grunde Größengleichungen. Er muss sicherstellen, dass die Dimension stimmt. Die Operanden von Additionen und Subtraktion, oder die linken und rechten Seiten einer Zuweisung müssen sowohl bezüglich Einheit wie Dimension übereinstimmen, d.h. sie müssen typengleich sein. Durch Multiplikation oder Division entsteht ein neuer Typ, gebildet als Typausdruck der einzelnen Faktoren oder Divisoren. Außerdem können alle Größen zahlenmäßig beschränkt sein. Oft sind sie nur positiv, also größer oder gleich Null.


Unter Verwendung der in der oben stehenden Tabelle erwähnten Einheiten könnte eine Variablen-Erklärung wie folgt vorstellbar sein.

type kW: 1000*W, zeit: h.min.sec, euro: 0..500
var Leistung: kW;  Verbrauch: kW*zeit; Preis: euro/(kW*zeit): Betrag: euro

Hier ist leicht ersichtlich, welche Wertebereiche jeweils erlaubt sind und welche Verknüpfungen der Werte Sinn machen. [der Idee von Pascal folgend, in solchen Erklärungen auch programmweite Konstanten zu verwenden, könnten z.B. an der oberen Grenze von euro sich auch über Inflationserscheinungen hinweg über Jahrzehnte gesicherte Programme entwickeln lassen – in einigen so genannten Scriptsprachen kann man das mit „SET“-Erklärungen ja auch bewerkstelligen] Es werden Myriaden von ungültigen Programmen bereits vor der Kompilation ausgeschlossen. Derartige Fehler durch statische Analyse zu finden, ist wesentlich kostengünstiger als sie durch Testen aufzudecken. [Diesen Überlegungen schließe ich mich voll an – wir sind beide eben von Haus aus Ingenieure!]

Bewertung und Diskussion

Mir ging es bei dem Vorschlag zunächst darum, Informationen, die der Anwender ohnehin haben muss, auch zur Problemspezifikation zu verwenden und nicht im Kommentarteil zu belassen. Nur was dem Rechner anvertraut wird, kann auch genutzt werden. Ein Rechner kann Dinge übernehmen, die bekanntermaßen für den menschlichen Programmierer schwierig sind. Dazu gehört alles, was mit  Bereichsüberschreitungen und Mannigfaltigkeit von Datenelementen zu tun hat. Deshalb sind Vektoren und Matrizen so nützlich.  

Ich wollte außerdem in der Lage sein, eine Klasse von Fehlern so früh wie möglich zu erkennen und zu beseitigen. Dadurch dass Information hinzugefügt wird [z.B. das „by contract“-Konzept], kann eine viel gründlichere Analyse von Programmen vorgenommen werden, als dies normalerweise der Fall ist. Der Wert des Quellcodes als Dokumentation steigt. Was nicht Teil des Quellcodes ist, muss mit großem Aufwand synchron gehalten werden, soll es überhaupt nützlich sein. Es kann auch in vielen Fällen das Schreiben der Anwendung vereinfachen. Das ist aber sekundär. Die  Komplexität von zugelassenen Ausdrücken kann radikal beschränkt werden. Nur als Nebenbemerkung: Für eine von mir entwickelte Theorie des Programmtestens ist dies ein wichtiger Baustein.

Die Begründung, mit der dieser Vorschlag seinerzeit abgelehnt wurde, will ich den heutigen Lesern nicht vorenthalten. Den Satz werde ich nie vergessen. ‚Dafür haben wir Mathematiker doch abstrakte Zahlen nicht erfunden, damit Ingenieure sie wieder abschaffen.‘ [vergessen Sie bitte nicht, das Zitat genauer einem Autor zuzuschreiben! War das Dijkstra, Hoare, Bauer? Es würde mich interessieren [4]] Wer sich wunderte, dass ich oft vor einer Überbetonung der Mathematik warnte, hier mag die Ursache liegen.

Die obigen Vorschläge wurden nie [teilweise in der Dissertation von Kunstmann [3] – siehe oben] implementiert und bei Nutzern getestet. Sie erfordern sicherlich eine beträchtliche Menge an Arbeit. Die Entwicklung nahm eine andere Richtung. Wir sind pfadabhängig, d.h. es gibt kein Zurück. Die Anforderungen, die sich zuerst durch Client-Server-Strukturen und später durch das alles bestimmende Internet ergaben, ließen die Unterschiede zwischen den einzelnen Nutzergruppen verblassen. Neue Probleme verdrängten die ehemaligen Differenzen. Eine Weiterentwicklung der Programmiersprachen, die stärker auf die unterschiedlichen Nutzergruppen eingegangen wäre,  ̶  also im Sinne von POLs  ̶  wäre ein alternativer Pfad gewesen. Hin und wieder gab es Fachtagungen, die sich dem Fernziel der anwendungs- oder problemorientierten Sprachen widmeten. Das war es aber auch schon. Oft wird der Ausdruck auch nur missbraucht, etwa um damit Datenbank-Abfrage-Sprachen oder Listprogramme zu bezeichnen.

Ich kann nicht ausschließen, dass ich Einiges übersehen habe, was dieses Bild etwas anders erscheinen lässt. Dann wäre ich den Lesern dankbar, die mich darauf hinweisen würden. Jeder hat das Recht, die Geschichte, die er erlebt hat, mit eigenen Augen zu sehen. Es wäre jammerschade, wenn es nur eine einzige Sicht gäbe.

[Prima, danke, weiterverbreiten! Und bitte, bitte, mich als den Ober-Ober-Lehrer entschuldigen, HJH]

Zusätzliche Referenzen
  1. Endres, A.: Analyse und Verifikation von Programmen, München: Oldenbourg 1977; 405 Seiten; ISBN 3-486-21361-X
  2. Lowry, E.S.: Proposed language extensions to aid coding and analysis of large programs. IBM Poughkeepsie, Tech. Report, TR 00.1934 (1969)
  3. Kunstmann, T. :  Rechnergestützte Simulation und Planung auf der Grundlage von Tabellenkalkulation.  ISBN-10: 3830006314;  ISBN-13: 978-3830006312
  4. Es gibt keine Literaturreferenz. Es war ein Firmenkollege, vermutlich Nat Rochester, dessen ich in diesem Blog gedachte, oder George Radin.

Nachtrag am 17.3.2013 und Kommentar von Hartmut Wedekind:

Das Thema Dimensionen hat Hartmut Wedekind  zu einem Kommentar veranlasst. Wie er darin zum Ausdruck bringt, sollte man auch heute (also 50 Jahre nach dem ursprünglichen Vorschlag) Größen nur als ‘Benutzerdefinierte Datentypen‘ in die Programmierung einführen dürfen. Obwohl Wirtschaftsingenieur scheint er auch vom mathematischen Purismus infiziert zu sein. Meine Hoffnung liegt jetzt ganz bei denjenigen Lesern, die in der Mathematik das große Repertoire hilfreicher Methoden und Werkzeuge schätzen, nicht jedoch die Zwänge einschränkender Denkschulen.

Es bedarf keiner tiefen Einsicht, um zu erkennen, dass im Falle einer Parfümmarke, die nach der Kölner Hausnummer 4711 benannt ist, die vier Ziffern nicht mehr als Zahl, sondern nur noch als Bezeichner benutzt werden. Dasselbe gilt auch für Teilenummern.