IN ZWEI WELTEN LEBEN …

Journal: Philosophie Jetzt – Menschenbild, ISSN 2365-5062, 23.Juli 2019
URL: cognitiveagent.org
Email: info@cognitiveagent.org
Autor: Gerd Doeben-Henisch
Email: gerd@doeben-henisch.de

KONTEXT

Nach einer längeren Schreibpause, hier ein kurzes Blitzlicht …

SCHWEIGEN IST VIELDEUTIG

Es ist ja ein beliebter Topos, über das Schweigen zu sinnieren. Korrespondiert es mit einem ‚Nichts‘ oder ist es nur ein Artefakt vielschichtiger, sich wechselseitig in Bann haltender Aktivitäten, die sich ’nach Außen quasi ‚aufheben’…

Dies ist ein Bild. Für mein Schweigen trifft weder das eine noch das andere zu. Tatsächlich ist bei mir die letzte Zeit extrem dicht angefüllt mit Aktivitäten, Denken, Schreiben, ja auch mit Programmieren, eine moderne Form des Schreibens. Letzteres leider in unserer Kultur von schöngeistigen Menschen wenig geachtet, tatsächlich aber der Stoff, aus dem das Meiste ist, was wir heute für unser Leben benutzen.

DENKEN – VIELFÄLTIG – IM DENKEN DENKEN

Die vielfältigen Formen des Denkens zu katalogisieren und zu bewerten, dann eventuell noch hierarchisch zu gewichten, ist sicher reizvoll. Bis zu einem gewissen Grade und in gewissen Situationen mag dies sogar notwendig sein (Gesetzestexte, Rezepten, Bauanleitungen, Sportberichte, Finanzberichte ….), aber man verliert die Wahrheit aus dem Blick wenn man übersieht, dass alle diese verschiedenen Spezialformen Ausdrucksformen einer einzigen Sache sind, nämlich der Bemühung des menschlichen Geistes — realisiert in den vielen einzelnen Menschen — sich im Hier und Jetzt zurecht zu finden; zu verstehen, wie denn das alles zusammenhängt. Warum das alles so ist, wie es ist. Gibt es irgendwie ein Ziel für die Zukunft? Mehrere? Welches ist am günstigsten? Für wen? Aus welchem Grund?

Für mich war das Schreiben in diesem Block seit ca. 10 Jahren mein Versuch, mich selbst in ein Gespräch zu verwickeln, das mich zwang, Eindrücken, Fragen nachzugehen, die ich ohne dies Schreiben eher achtlos beiseite gelassen hätte. Natürlich, neben viel Spaß, Lust an der Sache, Neugierde, Entdeckerfreuden usw. war es auch weite Strecken mühsam, quälend, mit der ständigen Frage: Muss das so sein? Bringt das was? Im Rückblick, nach ca. 9000 Seiten Text, würde ich sagen, es hat — zumindest für mich — sehr viel gebracht. Ich habe begonnen, Dinge zu verstehen, von denen ich vorher nicht wusste, dass es sie gibt, Zusammenhänge, die mir verborgen waren, überraschende neue Ausblicke, Glücksgefühle, noch mehr Neugierde, viel Hoffnung, ein wachsendes Vertrauen in dieses unfassbare Wunder genannt Leben. Ich bin jetzt soweit, dass ich zumindest ahnen kann, dass das Leben viel größer, tiefer, komplexer, reicher, gewaltiger ist, als alles, was uns die bekannten alten Traditionen — vor allem die alten Religionen, aber auch Einzelbereiche der Wissenschaften — bisher erzählt haben oder heute noch erzählen.

Insofern habe ich aus dem bisherigen Schreib- und Reflexionsprozess viel Kraft gezogen, viel Hoffnung, viel neues Vertrauen, Unternehmenslust, mit dabei zu sein, wenn es geht, die Unfassbarkeit unseres Lebens weiter zu gestalten.

MITGESTALTEN …

Je mehr man diesen Wunsch hegt, nicht nur passiv aufzunehmen, nicht nur zu verstehen, um so schwieriger wird dann die Frage, wo steigt man ein? Was kann man als einzelner mit seinen jeweiligen Möglichkeiten konkret tun?

Leute, die mit markigen Sprüchen durch die Welt laufen, die vielfarbige Slogans verteilen, die einfache schwarz-weiß Bilder austeilen, gibt es genug. Alles ist sehr einfach…

Aber, das Wunder des Lebens ist — nicht wirklich einfach. Wir selbst sind zwar zunächst als ‚Hineingeworfene‘ auf den ersten Blick einfach, weil wir etwas sehr Komplexes sind, das Komplexeste, was es im ganzen Universum gibt, aber wir haben keinen Finger dafür krumm gemacht, wir finden das alles einfach so vor, wir können sofort loslegen, ohne große umständliche Prozesse zu durchlaufen (OK, es gibt mittlerweile in den meisten Kulturen komplexe selbst definierte Lernprozesse in Kindergärten, Schulen, Betrieben, Hochschulen usw.), aber wir müssen nicht verstehen, wie wir funktionieren, um zu funktionieren. Unser Körper, das Äquivalent von ca. 450 Galaxien im Format der Milchstraße, funktioniert für uns, ohne dass wir verstehen müssen (und auch tatsächlich nicht verstehen können, bislang) wie er funktioniert. Wir sind ein Wunderwerk des Universums und können ‚funktionieren‘, obwohl wir uns praktisch nicht verstehen.

Da beginnt meine zweite Story: auf Ganze gesehen weiß ich so gut wie nichts, nah besehen weiß ich aber mittlerweile zu viel, als dass ich einfach so tun könnte, nichts zu wissen 🙂

EINZELTEILE ZUSAMMEN SUCHEN

Im Rahmen meiner unterschiedlichen Lehr- und Forschungstätigkeiten, zwischendrin auch ’normale‘ berufliche Arbeiten, habe ich schrittweise viele wissenschaftliche Bereiche kennen lernen dürfen und dabei entdeckt, dass wir aktuell ein ‚Zusammenhangs-Problem‘ haben, will sagen, wir haben immer mehr einzelne Disziplinen,die je für sich hoch spezialisiert sind, aber die Zusammenhänge mit anderen Bereichen, ein Gesamtverständnis von Wissenschaft, gar doch noch mit dem ganzen Engineering, dies geht uns zusehends ab. Dies bedeutet u.a. dass ein neuer Beitrag oft gar nicht mehr richtig gewürdigt werden kann, da die Umrisse des Ganzen, für das etwas entdeckt oder entwickelt wurde, kaum noch greifbar sind. Dies ist das Fake-News-Problem der Wissenschaften.

Ob geplant oder spontan oder zufällig, ich kann es nicht genau sagen, jedenfalls habe ich vor einigen Jahren damit begonnen, zu versuchen, die Disziplinen, in denen ich tätig sein konnte, langsam, schrittweise, häppchenweise, zu systematisieren, zu formalisieren, und sie auf die mögliche Wechselwirkungen mit den anderen Bereichen hin abzuklopfen.

Zu Beginn sah dies alles sehr bruchstückhaft, eher harmlos aus.

Doch im Laufe der Jahre entwickelten sich Umrisse, entstanden immer deutlicher Querbezüge, bis dann so langsam klar wurde, ja, es gibt hier mögliche begriffliche Rahmenkonzepte, die sehr prominente und doch bislang getrennte Disziplinen auf eine Weise zusammen führen können, die so bislang nicht sichtbar waren.

MENSCH – MASCHINE – UND MEHR …

Mein Fixpunkt war das Thema Mensch-Maschine Interaktion (MMI) (Englisch: Human-Machine Interaction, HMI), von mir dann weiter entwickelt zum allgemeinen Actor-Actor Interaction (AAI) Paradigma. Mehr zufällig bedingt, genau genommen durch einen wunderbaren Freund, einem Südafrikaner, ein begnadeter Systems Engineer, habe ich auch sehr früh begonnen, das Thema Mensch-Maschine Interaktion immer auch im Kontext des allgemeineren Systems Engineerings zu denken (im englischsprachigen Raum ist das Paradigma des Systems Engineering sehr geläufig, im deutschsprachigen Bereiche gibt es viele Sonderkonzepte). Irgendwann haben wir angefangen, das Systems Engineering zu formalisieren, und im Gefolge davon habe ich dies ausgedehnt auf das Mensch-Maschine Paradigma als Teil des Systems Engineerings. Dies führte zu aufregenden Verallgemeinerungen, Verfeinerungen und letztlich auch Optimierungen. Es war dann nur eine Frage der Zeit, bis das ganze Thema Künstliche Intelligenz (KI) integriert werden würde. KI steht bislang theoretisch ein wenig verloren im Raum der vielen Disziplinen, kaum verortet im Gesamt der Wissenschaften, des Engineering, der allgemeine Kognitions-, Lern- und Intelligenztheorien der biologischen Disziplinen. Im Rahmen des AAI Paradigmas ist KI eine Subdisziplin, die eine spezielle Teilmenge von Akteuren in ihrem Verhalten beschreiben, modellieren und simulieren kann, aber eben nicht isoliert, sondern eingeordnet in den Gesamtrahmen von Engineering und Wissenschaft. Dies eröffnet viele aufregende Perspektiven und Anwendungsmöglichkeiten.

Und so wird es auch niemanden verwunden, dass mein Engagement für ein integriertes begriffliches System für Systems Engineering, MMI und KI zugleich auch ein starkes Engagement für die philosophische Dimension wurde.

Ein Leser dieses Blocks wird nicht verwundert sein, wenn ich feststelle, dass es gerade die intensive Beschäftigung mit dem Engineering und seiner Meta-Probleme waren, die mich zur Philosophie zurück geführt hatten. Nach meiner völligen Frustration mit der klassischen Philosophie während des ersten Anlaufs einer Promotion in Philosophie an der LMU München (ca. 1980 – 1983) — ein Roman für sich — fand ich viele wertvolle Erkenntnisse im intensiven Studium der Wissenschaftsphilosophie und einiger konkreter Wissenschaften. Das Engineering (mit Schwerpunkt Informatik) war dann noch bereichernder. Aber gerade hier, im Systems Engineering, bei dem Thema Mensch-Maschine, und ausgerechnet mitten in den Lerntheorien der KI, bin ich auf so viele grundlegende philosophische Fragen gestoßen, dass ich von da ab — fast notwendigerweise — wieder angefangen habe philosophisch zu denken. Eines der Hauptmotive für diesen Block.

Natürlich, das merkt man wohl auch schon beim Lesen, führt die Breite und Fülle dieser Aspekte dazu, dass man nicht schnell, und nicht immer konzise arbeiten kann. Man muss viele Fragen mehrfach bedenken, oft von verschiedenen Seiten aus, muss immer wieder von vorne anfangen, und wenn man dann meint, jetzt habe man man den Bogen doch gut hinbekommen, entdeckt man von einer anderen Seite so viele anderen Aspekte, Löcher, Unzulänglichkeiten, dass man gerade nochmals von vorne anfangen kann.

Wie schwierig es auch sein mag, die Umrisse eines Ganzen deuten sich doch mittlerweile immer stärker an, so stark, dass ich das Gefühl habe, dass dieser andere Block — uffmm.org–, mein Blog für das Engineering, ab jetzt mehr — oder gar die ganze — Aufmerksamkeit verlangt.

Denn, eine Folge von Zusammenhangs-Sichten ist, dass man — fast unaufhaltsam — immer weitere Zusammenhänge entdeckt. So ist natürlich eng verknüpft mit dem Mensch-Maschine Paradigma der gesamte Komplex der biologischen und psychologischen Verhaltenswissenschaften, dazu gehörig auch das, was man Kognitionswissenschaft nennt, und damit ganz viele weitere spezielle Disziplinen, die irgendwie den Menschen und sein Verhalten thematisieren (Semiotik, Linguistik, Soziologie, …).

Während das Lesen und Studieren einzelner Werke und Artikel aus diesen Bereichen ohne übergreifenden Zusammenhang oft so beliebig, und damit frustrierend, wirkt, gewinnen diese Werke bei einem expliziten begrifflichen Zusammenhang eine ganz andere Farbigkeit, leuchten auf, werden interessant. So ist mir dies z.B. in den letzten Monaten mit Büchern von Edelman, Gallistel und Gärdenfors gegangen (um einige Beispiele zu nennen).

Während es also einerseits darum geht, immer mehr prominente Beispiele aus den genannten Disziplinen in den neuen begrifflichen Rahmen einzuordnen, ist mir auch klar geworden, dass dies alles — so wunderbar das für sich genommen schon ist (obgleich noch im Prozess) — heute nicht mehr ausreichend ist, ohne eine hinreichende Softwareunterstützung, ohne Software-Modellierung und vielerlei Simulationsversionen. Schon ein rein empirisches verhaltenswissenschaftliches Buch wie das grundlegende Werk von Gallistel zur Organisation des biologischen Lernens bleibt ohne zugehörige Softewaremodelle irgendwie ein Torso, entsprechend auch die Werke von Gärdenfors zu Begriffs-Räumen (Conceptual Spaces). Ein positives Beispiel für Theorie und Computersimulation liefert Edelman in vielen Büchern, Artikeln und Programmen. Und ich weiß aus eigener Vorlesungserfahrung, dass die Vorlesungen zum dynamischen Lernen erste mit der zugehörigen Softwaremodellierung jene Farbe und Tiefe bekommen haben, die es heute braucht.

Für mich ergibt sich daraus, dass ich parallel zur Text-Version der Theorie — natürlich mit hinreichenden Formalisierungen — eine vollständige Softwareabdeckung brauche. Ohne diese wird das alles nur Stückwerk bleiben.

Damit entsteht ein ziemliches Aufgabenpaket: Systems Engineering mit Actor-Actor Paradigma, dazu KI integriert, bei AAI Kognitionswissenschaften integriert, und zu allem die notwendige Software.

Allerdings eine wichtige Dimension fehlt bei dieser Aufzählung noch: die allgemeine Philosophie und die Wissenschaftsphilosophie. Die allgemeine Philosophie und die Wissenschaftsphilosophie können zwar die Einzelwissenschaften nicht ersetzen, aber die Einzelwissenschaften ohne eine explizite allgemeine Philosophie und Wissenschaftsphilosophie gleichen einem Haufen gackernder Hühner, deren Einzelbeiträge schnell in Kakophonie umschlagen kann, wenn sie nicht integriert werden.

Also, im Prinzip ist sehr klar, wie es gehen soll, es konkret zu tun ist scheinbar unmöglich. Aber genau das ist es, worum es geht: das Leben als solches in diesem Universum ist die maximale Unmöglichkeit, aber dennoch ist es da, dennoch entwickelt es sich. Dieses Mysterium einer ungeheuren Kraft, das Unmögliche möglich zu machen, das ist das, was jeden Menschen, insbesondere jeden Wissenschaftler, antreiben sollte, ansonsten sind wir tatsächlich — möglicherweise — schlechter als alle denkbaren Roboter der Zukunft.

AUF DIE BAUSTELLE

Wie schon angedeutet, hat meine Theoriebaustelle einen Namen: uffmm.org . ‚uffmm‘ ist die Abkürzung eines ganzen Satzes. Ich verrate jetzt nicht, wie dieser Satz heißt. Schön wäre es, wenn er einmal wahr werden würde.

Wer will, kann die Ereignisse auf dem uffmm-Blog verfolgen, allerdings ist dort alles auf Englisch. Es ist nicht meine Sprache, ich fühle mich damit sprachlich amputiert, aber es ist die zur Zeit beste Arbeitssprache für den internationalen Raum.

Ich habe auch keine Ahnung, wie weit ich kommen werde.

Parallel betreibe ich noch ein Anwendungsprojekt mit Überschrift ‚Kommunalplanung als eGaming‚. Damit zielen wir auf alle ca. 11.000 Kommunen in Deutschland, mit einem neuen Ansatz für mehr Demokratie in einer digitalisierten Welt. Dieser Ansatz ist ein direkter Ausfluss der zuvor angedeuteten Theoriearbeit (plus Software).

Der Philosophie-Jetzt Block war der entscheidende Inkubator für diese Weiterentwicklung. Ob und wie sich dieser Blog weiter entwickelt, wird man sehen. Er war ganz und gar ungeplant, und so wird auch die weitere Zukunft sich ereignen 🙂

PHILOSOPHIE – ÜBER SICH NACHDENKEN – PROGRAMMIEREN – DIE KALTE MASCHINE – DER GEIST IM STROMKREIS

Letzte Änderung: 29.Mai 2014, 19:20h (Musikstück hinzugefügt)

SOUNDEREIGNIS

Zur Einstimmung der folgenden Reflexionen über das Programmieren aus philosophischer Sicht hier eine Sound-Komposition vollständig erstellt mit mathematischen Algorithmen: Sinfonia made completely by MAX Demos. Das Stück besteht aus 6 Klangspuren, wobei jede Spur einen Klang repräsentiert, der durch Softwareinstrumente erzeugt worden ist. Für alle die, die nur ‚Mainstream-Musik‘ kennen (Klassik gehört auch zum ‚Mainstream :-)) ist vom Hören abzuraten. Dies ist ein Sound für jene, die sich vom Mainstream gelöst haben und einfach Spass haben, unbekannte Klangräume zu durchwandern. Konkret habe ich mit Demoinstrumenten aus den Tutorials der Software MAX 6.1.7 sowie ableton live 9.1 und Max4Live herumgespielt.

ZWEI JUNGE MÄNNER TRETEN AUF

1. Am 22.Mai 2014 abends, nach einem sehr anstrengenden Tag, war ich Zeuge eines besonderen Schauspiels. Zwei junge Männer, beide langjährige Programmierer im Kontext innovativer multimedialer Anwendungen, Erfinder einer dafür eigens geschaffenen Programmiersprache – nennen wir sie Lx – dachten in zwei aufeinanderfolgenden Vorträgen laut nach, über das, was sie tun, wenn sie programmieren.

2. Dies ist ungewöhnlich, da diejenigen, die programmieren, es normalerweise einfach tun; sie schreiben ‚Kode‘, wie es so schön heißt. Verschachteln if’s und ‚while’s‘ und zahllose Schlüsselwörter der vielen ‚Bibliotheken‘ der fertigen Softwaremodulen, die heutzutage Programmiersprachen begleiten.

3. In der ‚reinen Lehre‘ ist s zwar anders, da gibt es Entwurfsmodelle, abstrakte Spezifikationen, seitenlange Anforderungen, die einem Programmierer sagen sollen, was er ‚eigentlich‘ zu tun hat; doch aus der Sicht eines Programmierers verschwimmen diese ganzen Texte und Diagramme sehr schnell zu einem Nezwerk von Kodierungsanweisungen, zu Seiten voller kryptischer Befehlsausdrücken, zu einem Programmtext seiner Sprache Lx. Was immer abstrakt vorher gedacht worden ist, er, der Programmierer verwandelt sich in einen ‚Kodierer‘.

4. Nicht so an diesem Abend. Die beiden Programmierer versuchten über ihr Kodieren nachzudenken.

ZUR GESCHICHTE DER KODIERUNG

5. Im ersten Vortrag ging es mehr um die historische Dimension, wie es von ersten rechnenden Maschinen (mit schönen Videoausschnitten über Konrad Zuse und seinen pionierhaften Experimenten mit seinen ersten Rechnern) mit direkter bitweiser Kodierung zu immer abstrakteren Programmiersprachen (Bits, Hexcode, mnemonischer Assemblercode, einfache Programmiersprachen wie Fortran und C, höhere objektorientierte Sprachen, und dann visuelle Kodierung). Da endete der historische Aufriss, da die Sprache Lx der beiden Programmierer solch eine visuelle Sprache war.

6. An dieser Stelle ruckelte es schon ein bisschen. Erstens gibt es ja heute schon viele verschiedene visuelle Programmiersprachen, und zum anderen war der Überblick unvollständig. Die Programmiersprachen selbst sind nur ein Teil der Geschichte; parallel mit den Programmiersprachen hat sich unter dem Oberthema ‚Softwareengineering‘ ein Denkmuster entwickelte, das die Programmiersprache nur noch als ein – wenngleich ein wichtiges – Moment sieht im Kontext von – stark vereinfachend – Problemstellung P, Anforderungsanalyse A, logisches Entwurfsmodell M und implementiertes System S. Kodierung ist Teil des implementierten Systems S bzw. steht in gewisser Beziehung zum logischen Entwurfsmodell. Der ‚Denkraum‘ des Softwareeinsatzes hat sich also erheblich ausgeweitet, und eine Geschichte der Programmierung, die diesen Denkkontext des Programmierens nicht berücksichtigt, wirkt mindestens unvollständig.

DIAGRAMMATISCHE REFLEXE ZTUM EIGENEN KODIEREN

7. Der zweite Vortrag wurde in gewisser Weise ‚persönliches‘ bis ’sehr persönlich‘. Hier sprach der Programmierende – nennen wir ihn B – in der Tat über seine Gedanken, wenn er programmiert bzw. über seine Gedankenwelt, vorher, während und nachher, und er sprach als jemand, der eine Programmiersprache entwickelt hat, sie benutzt, sie ‚warten‘ muss und sie weiter entwickelt.

8. Er benutze dazu Folien die angefüllt waren mit Handzeichnungen, Wortskizzen, Wort und Bildskizzen – fantastisch anzuschauen, eher Kunstwerken gleich, anregend, faszinierend. Seine begleitende Rede war auch keine normale Rede, keine geschliffenen Sätze, kein zusammenhängender Text; nein, es war eine Mischung aus Stammeln, Brummeln, meist mit dem Rücken zu den Zuhörer, eine Art Zwiegespräch mit den kunstvollen Linien in dem projizierten Bild; meist kryptisch, die Zuhörer/ Zuschauer meist in Lauerstellung in Erwartung, was denn jetzt kommen würde.

9. Es klingt komisch, aber ich habe es genossen, das war Denken unplugged, das war Kreativität des sich selbst reflektierenden Kodierens ‚live‘. Es dürfte nicht allzu viele ‚Programmierer‘ geben, die dies so tun würden. Als ich den Vortragenden anschließend darauf hin ansprach, wie oft er das so schon gemacht habe, sagte er auch, dass er dies so zum ersten Mal gemacht habe. Also eine Uraufführung; wunderbar.

PHILOSOPHISCHE REFLEXION

10. Schaltet man jetzt die philosophische Reflexion ein, dann ist als erstes zu bemerken, dass es offensichtlich nicht ganz selbstverständlich, keinesfalls einfach ist, etwas, was man tut, – hier das Programmieren, das Kodieren in einer Sprache Lx – in einer anderen Sprache Lxx auszudrücken. So beeindruckend und faszinierend die bildhaften und textuellen Fragmente waren, die B in seinen Folien präsentierte (für mich wahre ‚Kunstwerke‘), so wenig ließen diese vielen Fragmente einen größeren Zusammenhang klar erkennen. Dieser Eindruck verstärkte sich auch in dem anschließenden Gespräch mit den Zuhörern. Während die meisten ‚Anwender‘ waren, die die Sprache Lx (bzw. der Vorläuferversion) selbst zum Kodieren benutzten, und der Vortragende B aber gedanklich im Netzwerk seiner Konzepte ?herumirrte?, gab es auch Fragen zum ‚Denkraum‘, innerhalb dessen man Programmiersprachen entwickelt. Fragen und Antworten fanden nicht wo wirklich zueinander.

11. Während im ersten Vortrag noch ein wenig die Idee anklang, dass das Aufkommen von visuellen Sprachen eine ‚Verbesserung‘ für den programmierenden Menschen darstellt, blieb dieser reformerische, am Menschen orientierte, Ansatz immer mehr im Dunkeln. Im Zweikampf mit seinen eigenen Gedanken wurde nicht klar, ob und wie denn eine visuelle Programmiersprache Lx (zu der es, wie gesagt, viele Parallelen gibt) dem ‚menschlichen Denken‘ besonders entgegen kommt.

12. Während die Missionare des objektorientierten Programmierens zumindest versucht haben, Formen des alltäglichen Denkens mit einer ojektorientierten Sprache Lo in Verbindung zu bringen (was beim späteren sogenannten ‚modellbasierten‘ Programmieren schon nicht mehr so gelang), wurden solche Gedanken an diesem Abend nicht vorgetragen. Der Mensch in seinem Denken – hier der programmierende Mensch – blieb weitgehend außen vor. Schade. In diesem den Menschen und vorhandenen Programmieralternativen ausklammernden Denken blieben die Gedanken des suchenden Programmierers weitgehend ‚alleine mit sich selbst‘.

SOFTWAREENGINEERING IST NICHT GANZ NEU

13. Bemerkenswert an diesem Schauspiel ist die Tatsache, dass Software engineering (nicht ganz so gut: Softwaretechnik) nun ja keine wirklich ganz neue Disziplin mehr ist. An allen Universitäten/ Hochschulen, in denen Informatik gelehrt wird, gibt es seit mindestens 20 Jahren auch Softwareengineering. Und dennoch ist diese Art eines ‚zusammenhängenden Denkens‘ in den Köpfen der ‚aktiven Programmierenden‘ offensichtlich nicht präsent (als Vergleich: die Ideen eines Galilei haben ca. 100 Jahre gebraucht, bis sie zum Allgemeingut geworden sind).

14. Dennoch kamen man auch bei jenen, die Softwareengineering im größeren Zusammenhang denken, wissenschaftstheoretische bzw. philosophische Ansätze kaum bis gar nicht vorkommen, obgleich ein solches Denken hier eine Menge zu tun hätte.

15. Halten wir kurz fest: der Aspekt des menschlichen Denkens – nennen wir es hier das ‚kognitive Interface‘, die ‚Schnittstelle zum Denken‘; andere sprechen auch von ‚mentalen Modellen‘ – kam bei den beiden Vortragenden des Abends so gut wie nicht vor.

16. Der Einsatz einer Programmiersprache hat aber noch eine weitere Dimension, die nicht minder bedeutsam ist. Egal welche Programmiersprache Lx man benutzt, ein Programm in solch einer Sprache Lx – nennen wir es P(Lx) – muss irgendwann von einem realen Computer C ‚ausgeführt‘ werden. Dies bedeutet, was immer sich ein menschlicher Programmierer im Rahmen seines kognitiven Interfaces ‚gedacht‘ haben mag, als er P(Lx) erstellt hat, das, was ‚tatsächlich passiert‘, das entscheidet sich bei der realen Ausführung auf einem Computer C. Dies bedeutet, dass die Menge dieser Ausführungen von P(Lx) auf dem Computer C – nennen wir sie C(P(Lx)) – die ‚finale Bedeutung‘ von Lx darstellt. Man spricht auch von der ‚Semantik‘ (Bedeutung) der Sprache Lx mit Bezug auf C. Beispiel: mit den Ausdrücken von Lx will Programmierer B zwei ‚parallele Prozesse‘ a und b darstellen, gefolgt von Prozess c. Damit dieser Gedanke Sinn macht, muss sichergestellt sein, dass bei der Ausführung von a,b und dann c diese logische Struktur auch real umgesetzt wird, erst recht, wenn möglicherweise das Ergebnis von c z.B. dann wieder dem Prozess b als ein Teil seiner Eingangswerte zur Verfügung gestellt werden soll. Solche ‚Korrespondenzen‘ zwischen ‚intendierter‘ Bedeutung und ‚realisierter‘ Bedeutung herzustellen und zu ‚gewährleisten‘ ist generell nicht einfach und in genügend vielen Fällen unmöglich. Über diese ’semantischen Aspekte‘ der Programmiersprache Lx wurde gar nicht gesprochen. Auf Nachfrage kam eine Aussage, die so klang, also ob man darüber ’noch nicht nachgedacht habe‘.

17. Mir kommt es so vor, als ob das Thema ‚Semantik einer Programmiersprache‘ für viele Programmierenden das ist, was Tiefenpsychologen das ‚individuelle Unbewusste‘ nennen. Irgendwo wissen sie zwar, dass ihr Kode letztlich von einer Maschine abgearbeitet wird mit den daraus resultierenden Einschränkungen, aber tatsächlich berauschen sie sich lieber an ihren aktuellen Ideen und Fantasien und tun so, als ob das alles ja genau so auch umgesetzt wird. Wird es nicht. Hier gibt es viele zu klärende Fragen, also philosophisches Potential.

WITTGENSTEIN LÄSST GRÜSSEN

18. Vielen Programmierenden – den meisten? – ist nicht bewusst, dass der Denkweg von Ludwig Wittgenstein von seinem ‚Tractatus Logico Philosophicus‘ hin zu seinen ‚Philosophischen Untersuchungen‘ ein wunderbares Muster abgibt, innerhalb dessen man auch die Thematik der Bedeutung von Programmiersprachen reflektieren kann. Natürlich müsste man die Diktionen von Wittgenstein dem heutigen Sprach- und Denkgebrauch des Softwareengineerings etwas anpassen, aber die Grundideen (und die sich darin verbergenden kritischen Potentiale) sind weiterhin anwendbar.

19. Eine zentrale Idee Wittgensteins ist die Aufdeckung der Tatsache, dass die Ausdrücke einer Sprache L – und das gilt dann auch für Lx – ihre ‚Bedeutung‘ nur im Kontext sogenannter ‚Sprachspiele‘ haben. Im Fall der visuellen Programmiersprache Lx wäre ein solcher Kontext gegeben durch (i) die Programmierer, (ii) die Ausdrücke von Lx, (iii) die ausführenden Computer C (meistens mindestens mit Hardware und Betriebssystem) sowie (iv) die ‚Aktionen‘, die der programmierte Computer – z.B. als Roboter oder als Smartphone – beobachtbar ‚ausführt‘, sehr oft in ‚Interaktion mit einem (v) Benutzer‘, der ’seine‘ ‚Vorstellungen‘ (:= mentale Modelle) des Geschehens hat.

20. Das Softwareengineering versucht – im idealen Fall – die potentiellen Sprachspiele ‚vorweg‘ zu analysieren, zu modellieren, und entsprechend zu implementieren. Die Grenzen liegen bei der ‚Vorwegnahme‘ des potentiellen Benutzers.

Eine Übersicht über alle bisherigen Blogeinträge nach Titeln findet sich HIER.