- About
- Music
- Blog
- Text
- Foto
Albums
- Lissabon 17/3
- Kreta 16/9
- Südafrika 15/9
- Istanbul 15/4
- Teneriffa 15/1
- Kroatien 14/9
- New Orleans 14/4
- Madeira 14/1
- Kreta (Κρήτη) 13/5
- Madeira 13/1
- Dresden, Prag,
Wien, München, 12/9
- London 12/5
- Barcelona 11/8
- Lübeck 10/7
- Berlin 10/1
- Harzring 08/8
- Qedlinburg 07/10
- Südtour 07/8
(Weser, Ahr,
Pfalz, Freiburg)
- Osttour 07/4
(Leipzig, Dresden)
- Leuna, 06/3
- Lüneburg, 06/5
- Lübeck, 06/5
- Bodensee 05/8 (1)
- Bodensee 05/8 (2)
- Hamburg
- = Winter
- = Hafen
- = HafenCity
- = Küchenfenster
- = Weihnachten Mö
- Antiquitäten
Von Kellern und Schleifen
[Der folgende Text ist in den Tagen zwischen Weihnachten und Neujahr 1997/98 entstanden - zu einer Zeit, als der Crash des Neuen Marktes noch nicht einmal am Horizont zu sehen war, Google gerade erste Schritte unternahm und Microsoft unangefochtener Feind Nr.1 für jeden seriösen Hacker darstellte.
Dies war das Jahrzehnt der monolitischen Applikationen, in dem das Web eine gewisse Nebenrolle spielte, ohne daß absehbar wäre, was passieren wird, wenn es eines Tages die Hauptrolle übernimmt (daß dies irgendwann geschehen würde, war zumindest dem informierten Hacker völlig klar - einer Gruppe also, zu der ich nie so recht gehörte).
Die Thesen, die der Text entwickelt, sind Vergangenheit, und vom Lauf der Zeit als untauglich für das Verständnis unserer heutigen Welt entwertet. Trotzdem lasse ich das hier so stehen, als Beispiel, wie rasch vermeidliches Wissen Geschichte wird.
Mittlerweile gibt von meiner Seite einige aktuellere Notizen zur Definition von Computerprogramm und Programmiersprache.]
Notizen zur rekursiven Natur der computergestützten Gesellschaft
Der erste Computer den ich kaufte konnte bumm-bumm-basch wie in der Disco, auch wie im Jazzclub ting-tiggeding auf dem Ride, das aber viel schlechter weil er nur präzise Triolen hatte, keinen "Swing-Faktor" zwischen grade und triolisch: ein süßer, vorsintflutlicher Drumcomputer: wenn ich ihn mir heute vorstelle wundere ich mich daß er beige war und nicht dinosauriergrün.
Aber meine Erinnerung führt mich auf eine falsche Fährte: mein erster Computer
war ein Instrument mit Tasten ähnlich denen auf einem Klavier, nur daß diese
Tasten nicht Saiten und das Holz des Korpus und die Luft in ihm zum Schwingen
brachten, sondern Berechnungen anstießen: 'eins eins null eins eins' usw, Sounds entstanden in weiter Entfernung von der Suche des Klavierspielers nach einem Ideal von Klang: sie waren konstruierbar. Synthetisierbare Klänge: ein Synthesizer.
Richtig interessant - deshalb erinnere ich ihn als "Nummer Eins" - wurde der
Drumcomputer im Datenverbund mit dem Synthi: ein Kabel über das er Einsen und
Nullen schickte, und die Sounds gehorchten seinen Sequenzen - Läufen
beispielsweise die schneller und präziser waren als alles was Menschen
hinbekommen, aber auch andersherum: bloß einen Akkord, erst vier Takte später
der nächste, ein Keyboard spielender Mensch wäre eingeschlafen oder hätte ein
Solo gewollt. Nicht so diese Sklaven.
Eine Ästhetik wurde möglich, deren Aura einem Kontrast entstand: synthetische
Hintergründe,
konstruierbar in Klang und Zeit;
objektivierte Musik, die auf Improvisationen
traf: eine eigenartige Spannung entsteht da, es gibt Aufnahmen davon
(Abercrombie, nicht: Kraftwerk o.ä.).
Man bekommt eine Vorstellung, von welcher Warte ich das Thema betrachte. Sie
ist anders gebaut als etwa die eines Informatikers.
Die Namen der Zahlen
Was ein
Stack ist? Englisch für 'Keller', gewissermaßen
der Ort an dem der Computer alte Sachen abstellt, Zeug das gerade im Weg
'rumsteht aber noch gebraucht wird.
Wenn ich (beispielsweise - blöde Frage, aber der Kontext in dem man sie stellt
existiert) wissen will wie viele Buchstaben dieser Halbsatz hat, schreibe ich
das in "C" wie folgt:
int laenge;
laenge = strlen ("wenn ich wissen will
wie viele Buchstaben dieser Halbsatz hat");
Damit schicke ich mein Programm an einen anderen Ort, nämlich zu 'strlen'
('string length'), zählen gehen. Weil es danach aber wieder zurück muß zu mir -
um das Ergebnis 61 in 'laenge' abzulegen - schreibt es auf den Stack wo es
gerade ist, springt, rechnet, geht in den Keller holt von dort meine Adresse
und springt zu mir zurück. Schön umständlich, aber Computer sind schnell und
können sich sowas leisten.
Der Stack ist also ein reichlich merkwürdiger Keller, gefüllt nicht mit Dingen
sondern mit Orten: er ist wie eine eindimensionale Landkarte mit nichts
verzeichnet als dem Weg zurück.
Das ist nicht alles: Viele Zwischenergebnisse von Rechnungen schreibt man sich
in der wirklichen Welt auf einen Schmierzettel, nur das endgültige Resultat ist
wichtig und kommt säuberlich auf ein weißes Blatt Papier. Nicht anders im
Computer, der Stack spielt hier die Rolle des Schmierpapiers, 'scratch memory',
kurz mal was dort hingepinselt, weiter gerechnet, schon vergessen.
Habe ich gerade 'wirkliche Welt' gesagt? die eine von der anderen säuberlich
abgegrenzt? das ist, um es milde zu sagen, ungenau. Ich komme darauf zurück.
Weiter oben steht: "das Ergebnis in 'laenge' ablegen" - das klingt wie ein
Bild, ist es aber nicht. Ein wenig Computertechnik: ein
Bit ist entweder 'ein' oder 'aus', notierbar als
'1' oder '0', andere Zeichen braucht man hier nicht Ein
Byte umfaßt acht Bits: '11111111' alle Bits an,
'00000000' alle aus. Ein Buchstabe, so wie er durch die ASCII (die
amerikanische DIN) normiert wurde, läßt sich in einem Byte darstellen, ein 'E'
z.B. als '01000101' (binär) oder '45' (hexdezimal: das sind sechzehn mögliche
Werte in einer Nummer, 0 bis 9, weiter mit a = 10 bis f = 15). Ein
Computer-Wort sind zwei Bytes hintereinander, in die dann eine Zahl paßt in der
Spanne zwischen hexadezimal 8fff bis 7fff, -32768 bis 32767: eine merkwürdige
Vorstellung davon was ein Wort ist. Jetzt kommt es: 'laenge' (im Beispiel
weiter oben) ist der Name für solch ein Wort: die Variable mit dem Namen
'laenge' ist nicht dieses Wort selber sondern bezeichnet den Ort wo es steht,
so wie sich das für einen Namen auch gehört: eine Adresse im Speicher des
Computers, auf dem Stack beispielsweise: dort wo das Programm das Ergebnis des
Zählens von Buchstaben - 61 - ablegt. Mein Name ist 'Michael' und bezeichnet
den Ort an dem mein Kopf gerade raucht: vor einem Computer.
Auch ein
Befehl ist nur eine Zahl, die irgendwo im
Speicher steht, z.B. bei hexadezimal 'ffc15cce', da steht "in" meinem Mac
gerade ein 'rts', 'return to subroutine': der Befehl 'zurück an die Adresse die
auf dem Stack steht', oder, dasselbe anders ausgedrückt: hexadezimal '4e75':
dies beschreibt den Unterschied zwischen dem Quellcode (return to subroutine)
und dem Binärcode (4e75) des ablaufenden Programms: kein Unterschied in der
Sache, Text und Zahl meinen dasselbe, werden ununterscheidbar in ihrer
Differenz.
Ein Befehl läßt sich durch einen anderen ersetzen: wenn ich seine Stelle im
Speicher kenne, dann kann ich dorthin eine Zahl schreiben, auch die die einen
Befehl beschreibt, und zwar aus dem Programm heraus während es läuft, als
Ergebnis einer Berechnung: ein Gegenstück zu 'strlen', welches keine Buchstaben
zählt sondern einen neuen Befehl ermittelt:
selbstmodifizierende Programme, es gibt sie
wirklich, Computerviren benutzen diese Technik, verändern laufend ihre eigene
Gestalt entziehen sich auf diese Weise denen die sie erkennen wollen um sie zu
vernichten.
Ein seltsames System deutet sich an: Begriffe und Zusammenhänge die Sinn
ergeben wenn man sie spricht, die sich aber immer auf Zahlen und Formeln
reduzieren lassen: immer, ohne Ausnahme: die dann zu einer Sprache werden,
unverständlich auch für den Menschen der sie spricht.
Der Stack beispielsweise ist ein Raum, in dem Wege und nur für den Moment
wichtige Zahlen versammelt sind. Gleichzeitig aber ist er auch nur die Adresse
dieses Raums, die Zahl die den Ort bezeichnet wo er steht. Die Wege die er
aufbewahrt sind selber nur Zahlen, die Liste aller Adressen der Sprünge zurück.
Auch dieser Text, so wie er gerade in meinem Computer entsteht: er besteht
nicht aus Worten sondern Zahlen, binär kodiert im Speicher meines Macs, und das
Betriebssystem, die Textverarbeitung, mit der ich ihn schreibe sind Zahlen die
sich als Text lesen lassen: Anweisungen, Befehle, Schleifen: all das was sich
zu dem Programm zusammensetzt mit dem ich Buchstaben erst auf den Bildschirm,
dann auf Papier bringe. Das System ist
selbstbezüglich: Sprache und Zahl fällt
ineinander. Der Widerspruch aus dem heraus Naturwissenschaft zu Philosophie
werden kann: das eine wird dem andern gleichgesetzt. Dialektik zerfällt.
An ihre Stelle tritt: Rekursion.
Rekursion
Was
rekursive Schleifen sind?
label
Auf der Wiese ist ein Igel.
Wenn auf der Wiese ein Igel ist gehe zwei Zeilen zurück, lies weiter bei
'label'.
Am Weiterlesen? Na klar, man ist ja kein Computer, aber Computer sind doof und
machen was man ihnen sagt. Für so eine Kiste wäre mein Text jetzt zu Ende und
ich hoffe daß 'Word' nicht gleich in sowas wie dort oben hineingerät, passiert
immer mal wieder, dann ist meine Arbeit weg (besser mal eben auf 'save' drücken, den
Text bis hierher auf Diskette sichern) - das Programm stürzt ab, beendet sich
von selber oder wird vom Betriebssystem gekillt, die Daten die nicht auf
Diskette sind verschwinden, werden uninitialisierter Speicher, wenn man Pech
hat ist der ganze Computer weg. Anmachen, wieder starten, der Keller wird
aufgeräumt und die Orte und Wege werden neu gezeichnet: das war ein
Stacküberlauf.
Was ein
Stacküberlauf ist? Wenn der Keller so voll ist,
daß einem die Sachen aus der Tür entgegen kommen, bloß daß der Computer dann
immer noch mehr Zeug hineinstopft, die Tür aus den Angeln fliegt, weiterstopft
in den Kellerflur, das Treppenhaus, solange bis sein Haus das Speicher heißt
unbewohnbar wird. Also: ich rufe eine Funktion: Rücksprung auf den Stack. Die
Funktion ruft sich selber: Rücksprung auf den Stack: Die Funktion ruft sich
selber... der Stack wächst und wächst, bis er den Speicher des Programms
gefressen hat, frißt weiter, den Speicher etwa in dem der Binärcode des
Programms steht oder der des Betriebssystems. - Er reiste in die Vergangenheit,
um seinen Großvater zu ermorden, tötete ihn und vergewaltigte seine Großmutter
zeugte seinen Vater. Kaum zurück in der Gegenwart erfuhr er, daß sein Bruder
die Zeitmaschine stehlen wird um die Oma zu rächen, reiste nochmals zurück und
erschlug seinen Bruder, der mit entsichertem Revolver vor ihm stand: man kennt
solche Geschichten. In Computern sind sie Funktionsbestand.
Was eine
Funktion ist? Eine Abfolge von Befehlen mit
definiertem Anfang und Ende: in den Anfang wird gesprungen, das Ende
führt zu einem Blick auf den Stack und dem Sprung zurück. Und ein Befehl?
Addiere, subtrahiere, springe: das sind die wichtigsten, die anderen sind schon
zusammengesetzt, multiplizieren etwa bei älteren Prozessoren.
Es verblüfft mich immer wieder, welche Macht solches Verknüpfen gewinnen kann
(eine alberne Verblüffung eigentlich, wenn ich mit dem Lernen von Sprache bei
einem Baby vergleiche): ich klicke zweimal auf den Knopf der Computermaus, ein
Zeiger auf dem Bildschirm deutet auf ein Bildchen, sechzehn Pixel hoch, eine
Ikone. Der Computer reagiert und die Platte beginnt sich zirpend zu drehen,
Wörter einer besonderen Bedeutung holt er sich von dort, lädt sie an einen
freien Platz in seinem Speicher gibt ihnen Sinn, indem er auf sie eine Zahl
addiert die jenen Platz beschreibt, setzt eine weitere Zahl auf den Beginn der
enträtselten Bedeutung, die Zahl wird hochgezählt bewegt sich liest Wörter,
nicht wie ein Buch, sondern einen Satz gleich hundert Mal, stößt auf ein Wort
das auf Seite einundfünfzig verweist, dort eines, das fast ans Ende führt,
springt zurück, kreist, zählt, springt. - Ich klicke auf das Abbild eines
Schalters, eine Metapher für den Startknopf auf einem Tonbandgerät: eine Uhr
beginnt zu ticken, jede Sekunde tausend Mal, jeder Tick stößt ein Lesen von
Wörtern an, unterbrochen durch einen Sprung hierhin und dorthin und ein paar
Bytes auf den Port, wusch, durch durch ein Kabel, elektrisches Blitzen trifft
das Silikon in einem Synthi, ein Klang entsteht dort, wird von Sätzen und Lesen
und Springen geformt, entweicht durch einen Wandler in das Kabel, an dem mein
Kopfhörer hängt: pa, das war der Schlag der Bassdrum, gleichzeitig hört sich
das an, aber ein paar Byte auf den Port und elektrisches Blitzen braucht Zeit,
Bruchteile einer Sekunde später der Klang einer Flöte.
Die weit größere Macht von vernetzten Computern muß ich nicht erwähnen, sie
versteht sich heute von selbst - und daß dies so ist bringt mich dazu diesen
Satz zu schreiben.
Programme schreiben
Wieso ich weiß, was ein Stack ist? Einer der Musik macht? - Weil ein
selbstbezügliches System sich selbst erhält, Willen zum Überleben entwickelt und in
die Evolution der Arten eingreift, zu einem Bestandteil von Natur wird.
Abstrus? mal sehen.
Mein erster Computer so wie die meisten Leute ihn sich vorstellen wurde ein
Atari ST Zehnvierzig, populär damals, ganz leistungsfähig für den Preis. Das
Notenprogramm kaufte ich im Musikgeschäft und übersah zunächst die gemeinsam
mit dem Rechner gelieferten Disketten. Aber ich bin neugierig, irgendwann legte
ich sie doch ins Laufwerk: Basic? Wasn das? Eine Programmiersprache? Was ist
das: eine Programmiersprache? - Ein Freund beantwortete mir diese Fragen
und die die folgten; ich fing an in Basic zu programmieren, kaufte wenig später
ein professionelles Entwicklungssystem lernte die Sprache "C", vergaß meinen
Baß und schrieb ein Drumcomputerprogramm - und das ist jetzt kein konstruierter
Witz um Selbstbezüglichkeit zu demonstrieren, ich habe solch
ein Programm geschrieben, irgendwo liegt noch eine Diskette mit dem Quellcode
herum, ich bin geneigt, ihn als Beweisstück diesem Text anzuhängen.
Kodieren: das ist den Text zu schreiben der zur Zahl kompiliert wird (jene
Programme die Text in Binärcode übersetzen heißen tatsächlich 'Compiler', der
Gipfel von Selbstbezüglichkeit, weil ein Compiler den Text der ihn kodiert
übersetzen kann): das ist ja inhaltsleer eigentlich, der Weg ist das Ziel,
nicht das fertige Ergebnis das Programm das man schreibt: auf dem Weg liegen
Rätsel, die man löst indem man fremde Bibliotheken zu nutzen lernt, sich
Werkzeuge selber baut, wo die Bibliotheken Lücken haben, die auszuführenden
Schritte erst in die richtige, dann in die effiziente Ordnung bringt. Eine
Faszination des 'Herstellens' entsteht da, bei mir, sie hat mich bis heute.
Ich habe Jahre damit zugebracht, ein Notationsprogramm zu schreiben schreibe
daran noch immer.
"Und? was machen die schwarzen Punkte?" grinste mein Chef, als er zurück kam. - "Gut geht's denen, drehen weiter ihre Seltsamen Schleifen", erwiederte ich, doch etwas
säuerlich, weil er so gut erholt klang und ich kämpfen mußte wie blöde: wieso
gibt es nirgends ein Buch in dem man nachlesen kann wo eine lange Note
graphisch zerteilt werden muß? beim Taktstrich, das ist klar, da wird eine Note
in eine zweite übergebunden. Darüber hinaus gibt es noch andere Stellen, aber
wo? eigentlich völlig offenkundig, ein geübter Leser wie ich kann auf ein
Notenblatt gucken und das mit einem Blick entscheiden. Ein Computer jedoch
braucht genau formulierte Regeln, und diese Regeln schienen mir in der Höhle
der platonischen Ideen verborgen, ein Ding an sich, nicht in seine Bestandteile
zu zergliedern. - Bei dieser Geschichte kam dazu als enthielte nicht so schon
genug Gemeinheiten daß die Regeln in einen rekursiven Prozeß eingebettet werden
mußten: eine lange Note zerteilt sich in zwei neue, die möglicherweise selber
wieder aufgeteilt werden müssen. Ich haßte Rekursion! nicht weil ich nicht
wußte wie man sie auflöst - darüber gibt es Bücher: drei Sprungbefehle, dann
ist sie weg - sondern wegen des Problems der Abbruchbedingung, und das hat man
auch bei einer aufgelösten Rekursion: wann ist der Prozeß zu Ende? Klar: wenn
alle Noten geschnitten sind. Manchmal wollte mein Programm aber nicht aufhören,
schnitt und schnitt alle Noten auf die Länge null, und sowas gibt es nicht in
der realen Welt war dem Computer egal und machte auch dann noch weiter, erfand
Noten mit negativen Längen: Töne die aufhören bevor sie beginnen.
Man versteht annäherungsweise, warum dieses Projekt kein Ende nimmt.
Mein alter Freund macht übrigens Musik in seiner Freizeit: seit Jahren versucht er die
rekursiven Strukturen der Chaosmathematik in Töne und Klänge aufzulösen; er
gibt nicht auf, man kann ihm hundertmal sagen daß da nur Unmusik herauskommen
wird, aber nein, er besteht darauf, macht weiter. Er meint, man könne Musik in
ihre Atome zertrümmern, um daraus völlig neue Moleküle zu synthetisieren - ich
kann ihm in dieser Überzeugung nicht folgen glaube lieber an die
Parametrisierbarkeit der Notenschrift.
…und wage die These: das System das einen Rechner konstituiert, erst recht
eines das vernetzte Rechner bilden: es ist zu Gesellschaft geworden, zu Natur,
es führt seinen Kampf ums Überleben, es führt ihn in unseren Köpfen: dort, wo
es lebt.
Ich betone ausdrücklich, daß ich dies
nicht bloß für eine Metapher halte.
Die computergestützte Gesellschaft: drei Beispiele.
Wenn ich mit heute einen frühen Song der Beatles anhöre wundere ich mich bloß
noch, daß dieses Rumgeeiere, diese unglaublich instabile 'Time', die
Ungenauigkeit des Rhythmischen mir entgangen ist als ich die Songs vor vielleicht
zwanzig Jahren zum ersten Mal hörte. Freunden von mir geht das ähnlich, diese
Erfahrung ist nicht bloß subjektiv: woher kommt sie, was bringt sie zustande?
Die Antwort liegt nahe, wenn man sich die Musik anhört, die die Popindustrie
seit Anfang der achtziger Jahre hervorbrachten, Discomusik und Techno als
Höhepunkt.
Achtziger Jahre? Ich kann es genauer datieren: 1983, da wurde die Definition
der Schnittstelle zwischen Musikinstrumenten und Computern formuliert, und mit
ihr kamen die ersten Synthesizer und Drummachines die dieser Spezifikation folgten:
'MIDI' ('Music Instruments Digital Interface'). Dort liegt auch die
Geburtsstunde der Massenproduktion von computergenerierten millisekundengenauen
Beats, die uns noch immer unverwässert begleiten, Spuren hinterlassen in der
Form einer veränderten Gewohnheit des Hörens: wir sind unduldsam geworden gegen
rhythmische Schlamperei in einem geradezu bescheuerten Maße, wir wurden dazu
von Computern konditioniert, erzogen. An dieser Stelle kann man die Rechner in
der Rolle des handelnden Subjekts mit Händen greifen.
Seltsam: ich habe von Beginn an die Noten im Computer ungenau gemacht, sie
geschoben bißchen zu früh auf die 'Eins', ein wenig zu spät eine 'Drei',
zumindest dann wenn ich den Effekt des Objektivierten mildern wollte. Das hat
in der Popbrache keiner getan, keiner zumindest der einen gewissen Einfluß
hatte. Führt zum Schluß, daß diese Objektivität, jene Kälte der Maschinen -
diese 'ja ja nein nein', aus dem kein 'vielleicht' herhaushörbar ist -
hingenommen vielleicht sogar gewollt wird. Oder wollen dies die Rechner erwarten unseren Gehorsam?
Empfindet man die modernen Grooves als kalt, errechnet? Nicht die Mehrheit,
wenn ich mir anhöre wozu man im Tanz sich wiegt.
Es gibt andere Programmiersprachen neben 'C'; mit den in der
Tabellenkalkulation 'Exel' eingebauten Formeln und Befehlen etwa kann man
strukturiert programmieren. Allerdings bezeichnet man den typischen Anwender
von 'Exel' nicht als Programmierer, sondern als Assistenten des Managements,
und solche Leute haben in deutschen Firmen bekanntermaßen Schwierigkeiten mit
der englischen Sprache. In der deutschen Version von 'Exel' werden neben den
Texten in den Menus und Dialogen deshalb auch gleich die Namen der Formeln
übersetzt: aus 'SUM' wurde 'SUMME', etc.
Der Witz ist, daß es solcherart Verspotteten zugetraut wird die Sprache der
Computer zu begreifen: wer für seinen Chef eine Tortengraphik vorlegen will -
etwa über die Umsätze der letzten fünf Jahre, unterteilt in die verschiedenen
Firmenbereiche - der muß recht tief in eine reich mit Formeln und Schleifen
gefüllte Trickkiste greifen, Funktionen schreiben, womöglich die eigens für
'Exel' erfundene Makrosprache lernen. Die die dieses Programm vermarkten müssen
etwas gedacht haben wie: Fremdsprachen sind ein schwieriges Gebiet, aber die
Sprache der Programmierens versteht jeder, sobald man ihre Begriffe lokalisiert:
ihre
Grammatik ist universell und für jeden
verstehbar. Und so ist es ja auch.
Nehmen wir an, ich denke nach über die
Kursbewegung einer bestimmten Aktie. Ich besitze einen Computer. Ich befrage
ihn nach seiner Meinung. Er wird mir nichts über fundamentale Unternehmensdaten
berichten könne, ob die Firma und wenn wieviel Gewinn einfährt usf, er hat aber
keine Probleme, mir den Kursverlauf der Aktie graphisch zu veranschaulichen,
ein paar Befehlte und er bildet Durchschnittslinien, den Durchschnitt der
vergangenen zweihundert Tage etwa, zeigt den aktuellen Kurs wie er diesen von
oben durchbricht, ruft mir damit zu: verkaufen!
Wie bitte? wer ruft da? was für
ein Zusammenhang besteht zwischen einer Zweihundert-Tage-Linie und der Linie
der aktuellen Kurse? Dieser: ein nicht gerade kleiner Kreis von Börsianern -
sie nennen sich selber 'Chartisten' - hat sich darauf geeinigt, genau dann zu
verkaufen wenn der Kurs einer Aktie seinen Durchschnitt von oben
unterschreitet: der Kurs fällt weiter, eine Tatsache, die einem der Computer
mit seiner Darstellung vom Kursverlauf vorhergesagt hatte. - Man nennt so etwas
landläufig 'self fullfilling prophecy'. (Man muß sich klar machen: im deutschen
Parketthandel werden an schwachen Tagen sieben Milliarden Mark Umsatz gemacht;
weltweit sind es - an einem Tag! - vier Billiarden Dollar, da kann der
Jahreshaushalt einer führenden Wirtschaftsmacht wie Deutschland nicht
mithalten!) Ich sehe in diesem Begriff eine schiefe Metapher für etwas Anderes:
die Macht der rekursiven Natur von Computern.
Computer sind totes Werkzeug?
Unreflektiertes Gerede, wenn man mich fragt. Ich kann meine Behauptung, daß sie
in den Köpfen der Menschen ihren Lebensraum finden sogar erweitern: auch andre
Bereiche unserer Körper dienen ihnen manchmal als Werkzeug, wenn wir tanzen
beispielsweise, in ihrem Rhythmus Autos fertigen oder unsere Augen den
Unterschied zwischen einem Foto und einem gepixelten Ausdruck verlernen.
Rekursion als Denkfigur
Was ein
Algorithmus ist? Die Beschreibung der Abfolge in
der Befehle geschehen müssen um zu einem bestimmten Resultat zu kommen: ein
Verfahren zur optimierten Suche in einer Datenbank etwa, oder das Aufstellen
jener Regeln, die ein Programm den Namen für einen Akkord sagen läßt. Ein
Programm ist abhängig von exakten Regeln, und dies ist der einzeige Grund,
warum man mit einem Computer keinen Sex haben kann. Nicht daß es nicht genügend
Leute gäbe die das dennoch versuchen.
Wie macht man das, auf einem Bildschirm der nur schwarzweiß kann ein Graumuster
zu erzeugen? eine Folge von Bit an. Bit aus, jede Zeile beginnt anders:
01010101
10101010
Die Illusion ist perfekt, es sein denn, man guckt mit der Lupe.
Auf einem Farbbildschirm geht das im Prinzip genauso, grau entsteht durch
gleiche Anteile rot, grün, und blau. Das Verfahren ist dasselbe, bloß daß man
vergeblich mit der Lupe sucht.
"Was schreibst du denn gerade?"
"Ein Essay."
"Ein Essay? Aber du schreibst ja gerade unsere Unterhaltung, wörtliche Rede.
Ist das dann nicht eher eine Erzählung?"
"Na - ein erzählendes Essay vielleicht?"
"Weiß nicht, komisch. - Aber wenn ich schon mal das Wort habe, würde ich deinen
Lesern gerne..."
"Verschwinde".
"Sei nicht so gemein! Ich wollte nur sagen, Du solltest Douglas R. Hofstadter
erwähnen..."
"Genau das werde ich nicht tun! Verschwinde endlich."
"...Björk!"
Mit wem rede 'ich' da? einer Frau? und wie sieht sie aus - ist sie schön? und
was läßt mich vom Thema abschweifen und in einer Rede zu verlieren die ich mit
meinem Computer führe?
Eine sehr altmodische Form von Rekursion, so kommt mir das jedenfalls vor; aber
wo sonst findet man sie in der Literatur? Zeitreisegeschichten, klar. In
Märchen? Fällt mir keins ein. Narzisus, der sich in sein Spiegelbild verliebt?
Zur Rekursion würde das wenn der Spiegel diese Liebe erwiedert.
Ich habe den Verdacht, daß auch in der Literatur Szenen wie die oben skizzierte
ohne Computer nicht gedacht werden können, ich betone
Verdacht habe zuwenig gelesen. Aber Rekursion
taucht doch zumindest in der Mathematik recht früh auf, z.B. um das Jahr 1200
in den Zahlenreihen Fibonaccis?
'Spirale' oder 'Schraube', jene Bilder die man gern im Zusammenhang mit Hegels
Dialektik verwendet: sie sehen aus wie Rekursion auf den ersten Blick, haben
damit auch eine gewisse Ähnlichkeit. Zwei Dinge stehen in dialektischer
Spannung zueinander, werden 'aufgehoben' in einem Ding 'höherer Ordnung': dies
hört sich fast an wie mathematische Rekursion - man füttert eine Formel mit
einem Ergebnis, das sie selber hervorgebracht hat. Bloß daß hier am Ende nur
wieder eine Zahl steht, von höherer Ordnung keine Spur. Dialektik ist nicht
selbstbezüglich sondern spürt der Spannung in den Objekten nach die sie
befragt. So kann aus Bewußtsein absolutes Wissen werden (in der
Philosophie Hegels). Rekursion ist so gesehen kein Prozeß sondern steht für
sich selbst: der Spiegel, in dem sich ein Spiegel spiegelt ein Spiegel
spiegelt, bis ins Unendliche: das ist ausschließlich der Spiegel selber,
gefangen in einer Falle, die seine eigene Gestalt ist: er bleibt unabänderlich
er selber.
"Ich versteh' schon ganz genau, was du da sagst: du willst mir unterstellen..."
"Du hast mir nicht zugehört!"
Wenn ich eine Behauptung formuliere, steht es meinem Gegenüber frei, dieser
eine andere gegenüber zu stellen kann aber ebenso die Ebene wechseln und über
die
Art in der ich etwas sagte böse sein, sich
freuen, angegriffen fühlen ausgelacht usf. Zur Endlosrekursion kann das in
jenem Moment werden, in dem man diese Ebenen vermischt, der eine auf dieser der
andere auf einer anderen redet ohne daß dies bewußt wird. Menschen
sind nicht so einfallslos wie Computer und stürzen dämlich ab: sie stürzen sich
aufeinander.
Skizze einer Theorie
Kann ein Computer ein Bild malen? ein Lied komponieren? ein Gedicht schreiben?
Oder - wenn er dies nicht kann - wenigstens den Sinn hinter diesen drei Fragen
begreifen, sie beantworten, mit einem 'könnte'? Oder womöglich sogar zum
Schluß kommen, daß ein Progamm nicht die richtige Adresse ist, um einen
Konjunktiv zu dekodieren?
In die Auflösung dieser Fragen wurde reichlich Geld investiert und dem
Nachdenken über sie verdanken Forscher wie Douglas Hofstadter ihren Ruhm (und ich
seinen deutschen Übersetzern den Begriff der 'Seltsamen Schleifen'). Wie auch
immer: das interessiert nicht mehr. Die Forschung über 'künstliche Intelligenz'
ist am Ende, gescheitert, das Schachprogramm das auch einen Großmeister
plattmacht mit meinem Notenprogramm vergleichbar: mühsam einstudiertes Wissen,
keine Schlußfolgerung überrascht oder wirkt nur entfernt intelligent. Es gibt
Belege genug, um mein Desinteresse zu begründen.
Weit wichtiger scheinen mir die offenen Punkte: beispielsweise die Frage nach
dem Vordringen der Funktionsweise von Computern in unsere Köpfe, unsere Körper.
Um sie einzukreisen: Naturwissenschaften ermöglichen die Technik, aus der
unserer Wohlstand hervorgeht (mal dahingestellt, wie es um einen Wohlstand
bestellt ist, der ungerecht verteilt ist, keine Rücksicht auf die Endlichkeit
natürlicher Resourcen nimmt, etc.). Da wird es schwer, ihr Verfahren beim Abbau
von Erkenntnis in Frage zu stellen: man nörgelte dann sozusagen am
Brötchengeber herum.
Computer scheinen ebenso unangreifbar: sie spucken Daten aus, die allen
möglichen Spielarten wissenschaftlicher Forschung Grundlage sind, bereiten sie
so auf, daß ein Mensch sie überhaupt erst überblicken kann. Für die
Wetterprognose sind Computer ebenso unverzichtbar wie für das chemische
Versuchslabor aus dem neuentwickelter Klebstoff für das Binden von Büchern
kommt, um nur zwei beliebige Beispiele herauszugreifen. Wer sich zum
Hightechfeind erklärt, macht sich letzlich lächerlich, weil er mit den
Resultaten von Hightech lebt, leben muß (in letzter Instanz mit dem Flieger,
der ihn auf die einsame Insel bringt).
Die Ergebnisse unablässigen Rechnens umstehen alle Bereiche der Gesellschaft,
die Maschinen die sie hervorbrachten finden sich in fast jedem Labor und Büro,
immer häufiger auch in unseren Wohnzimmern. Aber auch die rekursive Struktur
von Computerprogrammen dringt in Gesellschaft ein, durchdringt in zunehmendem
Maße unser Denken. - Ich versuche hier mal einen Salto: hat denn die Existenz
von Rechnern und Programmen nicht auch Auswirkungen auf die Fragen, die wir
stellen um sie mit ihrer Hilfe zu beantworten?
Werkzeuge der Erkenntnis wie z.B. ein Fernrohr werfen Schatten auf die
Erkenntnis die man mit ihrer Hilfe gewinnt. Es ist naiv anzunehmen sie seien
objektiv, verlängerten gewissermaßen nur eine ansonsten genuin menschliche
Wahrnehmung: die Bilder vom Mars oder die die das Hubbleteleskop zur Erde
funkte etwa: sie suggerieren einen wirklichkeitsgetreuen Blick auf das
Universum. Ein Foto zieht jedoch von der Wirklichkeit den subjektiven Blick ab:
ein grandioses Bergpanorama etwa wirkt auf einem Foto seltsam flach, läßt das
Erlebnis des Schauens unerklärt, funktioniert allenfals als Stütze des
Erinnerns. Die Enttäuschung beim Betrachten von Urlaubsfotos verhält sich
seitenverkehrt zur Täuschung der wir aufsitzen, wenn wir aus Bildern vom
Weltraum auf dessen Beschaffenheit schließen.
Ein Werkzeug das wir benutzen um zu sehen schlägt auf unser Sehen zurück.
Computer als solch ein Werkzeug sind da nicht anders. - Ich kann das zuspitzen:
ein Werkzeug gewinnt Macht über den der es benutzt, Computerpower ist ein
Bestandteil des Herzens unserer Gesellschaft.
Was mir Angst macht ist nicht, daß die Logik der Computer uns beherrschen
könnte. Ich fürchte mich vor der Herrschaft der
Funktion, die solche Logik ermöglicht: dem
Verfahren der Rekursion. Es gibt Anzeichen dafür, daß die Seltsamen Schleifen
unser Leben beeinflussen: meines beispielsweise, ich habe Beispiele erzählt.
Aber auch das Leben dessen, der dieses Essay liest und sie spätestens jetzt in
seinem Kopf mit sich herumträgt. Oder das desjenigen der mit Chartanalye einen
Haufen Geld verloren oder gewonnen hat. Oder das des Unternehmers, dem Gewinn-
oder Verslustgraphiken die Bewunderung oder den Haß der Umwelt zuzogen, weil er
sie zum Anlaß nahm Arbeiter zu entlassen oder einzustellen.
Menschenmaschinen
In "Per Anhalter durch die Galaxis" gibt es den berühmten Witz, in dem der
Computer nach jahrhundertelangem Rechen die Frage nach dem 'Sinn des Unsiversums
und Allem' mit einer Zahl beantwortet. Schrecklich lustig finde ich das nicht
mehr. Ich habe kürzlich eine Geschichte über eine Liebe geschrieben, deren
Scheitern - plausibel im Zusammenhang - durch eine Zahl erklärt wird: sie gibt
ihr ihren Titel und lautet 'Achtundzwanzig', das ist die Fehlernummer für einen
Stacküberlauf auf einem Mac.
Wenn man sich noch einmal kurz die 'selbstmodifizierenden Programme' in den
Kopf ruft, kann man vielleicht nachvollziehen, wieso ich über genetische
Manipulationen nur verhalten grinsen kann, so primitiv und unvollstädig kommt
mir das vor. Ein Lamm klonen! wie langweilig! wir hier vor unseren Tastaturen
können eine Person aus Text heraus erschaffen - dem Text des Codes den wir
schreiben.
Die erste Frau in den Netzen existiert bereits; sie heißt Lara Croft. Wenn wir
es nur wollten bekäm Lara eine Macht über sich selber die keine Grenzen kennt,
wirklich wortwörtlich: keine Grenzen: weil sie die Macht haben könnte sich in
etwas zu verwandeln das wir nie vorhergesehen haben: denn wir könnten
beschließen etwas wie Schicksal überhaupt erst in Gang zu setzen - wobei wir
die Macht über die konkreten Formen von Schicksal den Maschinen überlassn
würden. Lara Croft hätte dann die Freiheit sich z.B. in einen Mann zu
verwandeln, ja selbst diese: ihren Körper abzulegen, völlig einzutauchen in den
Strom aus Daten, unsichtbar zu werden für alle die nach ihr suchen.
Lara lebt gar nicht? Wieso das denn! Wenn man doch sogar dem Helden einiger
Computerspiele leibhaftig begegnen kann, Super Mario wohnt in Hollywood, auch
wenn er sich im Alltag lieber Bob Hoskins nennt, einen Film unter seinem wahren
Namen hat er immerhin gedreht.
Polmik bloß? Weiß nicht: Lara Croft und Super Mario sind Figuren aus den
Märchen unserer Zeit, und wer von uns etwas Älteren wollte ernsthaft bestreiten,
daß es irgendwo den Wald gibt, in dem Schneewittchen lebt?
Die vorstehenden Absätze werfen selbstverständlich dennoch Nebel, bauen mit an
einem Mythos den es zu entzaubern gilt. Aber dieser Nebel ist dummerweise nicht
so dicht wie man hoffen könnte: Alan Turing hat bereits in den dreißiger Jahren
einen Test vorgeschlagen, der es erlauben soll festzustellen ob eine Maschine
intelligent ist oder nicht: ein Mensch führe ein Gespräch mit zwei Partnern,
einer menschlich wie er, der andere eine Maschine. Selbstverständlich darf er
keinen von beiden sehen oder hören, die Kommunikation findet in Schriftform
statt. Wenn der Interviewer nicht mehr unterscheiden kann wer Mensch ist und
wer Machine, ist laut Turing der Sprung in die künstliche Intelligenz geschafft:
"Hie ist Achim, ist noch wer da?"
"Hallo Achim, hier ist Lara."
"Hallo. Heißt du wirklich Lara?"
"Nein. Bist du ein Mann?"
"Rate mal!"
...usw, so oder ähnlich lesen sich heute Chats im Internet, ich lese sie als
Turingtest und komme zum Ergebnis: alles Maschinen.
Unsere Sprache nimmt computerhafte Züge an: da wo wir uns auf der Datenautobahn
bewegen sowieso - dort müssen wir uns zwangsläufig in der Form unserer Rede
anpassen, die Kürzel verwenden beispielsweise ohne deren Kenntnis man die
Suchmaschinen im Internet nicht bedienen kann (und ohne Hilfe beim Suchen
findet man dort gar nichts). Aber auch überall dort, wo auf der Grundlage von
Computerarbeit argumentiert wird passen wir unsere Rede an: in den Konferenzen
des Mangements, wenn Umsätze anhand von Tortengraüphiken diskutiert werden, bei
wissenschaftlichen Vorträgen, wenn Folien mit statistischen Daten projiziert und erläutert werden, in der Schule, wenn im Soziologieunterricht
Chaosmathematik zum Thema wird, etc. Es kann gar nicht anders sein, daß das
Verfahren auf das Denken und damit auf den Ausdruck von Denken, nämlich Sprache
durchschlägt. Behaupte ich mal einfach. Sage es nochmal anders: weil Computer
sich nur sehr ungern anpassen gehen die Menschen einen Schritt auf sie zu. Man
ist ja gezwungen miteinander klarzukommen.
Wenn unsere Lebensäußerungen rekursiver Natur sich anpassen, kann man mit einiger
Berrechtigung den Spieß umdrehen: rekursive Natur erhält selber Aspekte des
Lebendigen. Aber es kommt ja noch viel dicker: Programme haben menschliche
Schwächen. Sie tendieren zur Faulheit, rauchen zu viel oder kauen Fingernägel.
Verkohlte Wanzen
Was ein
Bug ist? Englisch für 'Wanze', meint in diesem
Zusammenhang einen Fehler in einem Programm: zu einer Zeit, als Computer noch
ganze Säle füllten und ihre elektrischen Schalter wahrnehmbaren Platz
beanspruchten, suchten die Wissenschaftler nach einem Fehler, fanden
schließlich in einer verkohlten Wanze zwischen den Schaltern eines Relais
dessen Ursache. Daher kommt die Metapher.
Programme sind voll von verkohlten Wanzen, Fehlern.
Jedes.
Es gibt keine Ausnahme.
Dies ist das erste Gesetz der Informatik, und es mögen beliebig viele Experten
aus Mangement oder Marketing oder Sales diesen Fakt bestreiten, ihn verleugnen,
seine Existenz in Meetings mit den Investoren abstreiten, die Kunden zu
überzeugen versuchen daß die Welt schön ist:
es gibt kein Programmm ohne Bugs. Dies ist eine
unumstößlich bewiesene Tatsache.
Flugangst? Nein? Aber gleich.
Ein Airbus ist vollgestopft mit Rechnern, der Pilot hat wohl noch genau eine
Funktion, er dreht Däumchen. Natürlich weiß man, daß die Programme die den
Flieger regieren vollgepackt sind mit Fehlern, deshalb gibt es für jede
Funktion gleich drei, drei unterschiedliche Programme die von verschiedenen
Teams entwickelt wurden und jeweils einen anderen Algorithmus benutzen um
dasselbe Problem zu lösen: wenn eines von ihnen ein von den anderen
abweichendes Ergebnis liefert, darf der Captain eine Notlandung einleiten. -
Eine Übertreibung? Nein, leider.
Hier mal ein Bug aus meiner Praxis: ein Algorithmus zur Erkennung von Akkorden kann
sehr einfach sein, eine Liste aus Tönen die einen Akkord zusammensetzen
verknüpft mit einem Namen: man geht die Liste durch bis man in ihr die gerade
erklingenden Töne findet, dann hat man auch den Namen. Was passiert, wenn man
über die Liste hinaus liest? - ich höre verzweifeltes Stöhnen auf den billigen Plätzen:
aber ja, auch das geht: man kann in einer Liste die zwei Einträge hat den
dritten lesen. Da steht dann natürlich nichts Sinnvolles drin, irgendein Kraut
halt, ein komischer Name in diesem Beispiel. Kann aber auch schiefgehen, wenn
nämlich richtig Müll dort steht: gar kein Name, den das Programm aber trotzdem
versucht auf den Bildschirm zu bringen und dabei abschmiert: man muß nur Pech
haben.
Der Einwand, Sofware würde doch aber getestet, bereits in der Entwicklungsphase
müßten sich solche Fehler bemerkbar machen: schon richtig, manchmal (meistens?)
ist das auch so. In diesem Fall wurde aber 1) mit Akkorden getestet, die in der
- nahezu vollständigen - Liste tatsächlich vorkamen, ihr Ende also nie erreicht
wurde - (2) in einer Rechnerkonfigiuration getestet, in der - zufällig - "kein
Name" hinter dem Ende der Liste stand. - Das Programm stürzte dann bei einem
Benutzer ab (und zwar ständig, schickte laufend die Arbeit von Stunden zum
Teufel), der freitonale Musik mit ihm erarbeitete; und der zudem anders
konfigurierten Speicherin seinem Rechner hatte. Dieser Bug war
acht Jahre in dem Programm, bevor er gefunden
wurde!
Wie er zustande kam?
while (i++ <= sizeof (liste))
{…}
Wie er beseitigt wurde?
while (i++ < sizeof (liste))
{…}
- dies allerdings im Kontext von abertausend Zeilen Code.
…und ohne das näher zu erklären, man kann es aber erahnen: ein bescheuerter
Tippfehler. Hat man den Programmierer entlassen? man überlege was passierte
würde jede Sekretärin fliegen weil ihr ein Tippfehler unterläuft: Menschen
machen Fehler, und deshalb kauen Programme Fingernägel. Oder fliegen Raketen in
die Luft oder fallen Flugzeuge vom Himmel (aber die vermeintliche Unfehlbarkeit
von Computern ist ein ganz anderes Thema, nicht minder interessant).
Oder man sitzt dem Irrtum auf, Computer lieferten Wirklichkeit. Das freilich
ist ein Bug der im System steckt.
Januar 1998