EARTH 2117 – ERDE 2117 – Erste Gedanken – Simupedia für alle?

KONTEXT

  1. Wie man als Leser des Blogs bemerken kann, fokussiert sich der Blog zur Zeit hauptsächlich auf drei Themenfelder: (i) Die Frage nach der technischen Superintelligenz (TSI); (ii) die Frage nach dem, was der Mensch ist bzw. werden kann, mit der speziellen Teilfrage nach der mystischen Erfahrung (gibt es die? Was sagt dies über den Menschen und die Welt?); sowie (iii) die Frage nach dem möglichen Zustand der Erde im Jahr 2117. Die Zahl 2117 ergab sich u.a. aus den aktuellen Prognosen, zu welchem Zeitpunkt Experten das Auftreten einer technischen Superintelligenz für hoch wahrscheinlich halten. Zu diesen drei Themenfeldern kommen dann noch die möglichen Wechselwirkungen zwischen (i), (ii) und (iii). Andere Themen sind grundsätzlich nicht ausgeschlossen, sind aber bis auf weiteres Nebenthemen.

PROGNOSEN GENERELL

  1. Die Frage nach dem möglichen Zustand der Erde setzt voraus, dass wir den Zustand der Erde als veränderlich ansehen, dass es ein Jetzt gibt, und dass es im jeweiligen Jetzt die Möglichkeit gibt, dass sich Eigenschaften der Erde im Jetzt so verändern, dass es zu einem nachfolgenden Jetzt andere Eigenschaften gibt als beim vorausgehenden Jetzt.

DER MENSCH UND DIE ZEIT

  1. Auf Seiten des Menschen ist es die Erinnerungsfähigkeit, die den Menschen in die Lage versetzt, zwischen einem aktuellen Jetzt und einem vorausgehenden Jetzt zu unterscheiden. Auf Seiten des Menschen sind es weitere kognitive Fähigkeiten, die den Menschen in die Lage versetzen, am Wahrgenommenen und Erinnerten kognitive Eigenschaften zu erfassen (durch Abstrahieren, Klassifizieren, Vergleichen usw.) mit denen sich kognitiv Veränderungen identifizieren lassen. Mittels solcher identifizierten kognitiven Konzepten der Veränderung kann der Mensch von angenommenen (kognitiven) Zuständen auf mögliche (kognitive) Zustände mittels der angenommenen Veränderungskonzepte schließen. Der Mensch ist also grundsätzlich in der Lage, aufgrund von Erfahrungen aus der Vergangenheit im Vergleich zur Gegenwart mögliche Veränderungen zu erschließen, die dann wiederum genutzt werden können, mögliche Zukünfte zu denken.
  2. Natürlich hängt die Qualität solche Hochrechnungen entscheidend davon ab, wie wirklichkeitsnah die Erfahrungen aus der Vergangenheit sind, die Art der Erinnerungen, die möglichen Denkoperationen des Selektierens, Abstrahierens, Vergleichens usw. Wie gut mögliche Veränderungen erfasst wurden, einschließlich der möglichen Wechselwirkungen zwischen unterschiedlichen Faktoren.

TECHNISCHE HILFSMITTEL: COMPUTER

  1. Wie der Gang der Wissenschaften und der Technologie uns zeigen kann, können solche möglichen Hochrechnungen deutlich verbessert werden, wenn der Mensch für diese (kognitiven) Denkleistungen als Hilfsmittel formalisierte Sprachen benutzt und Computer, die mittels Algorithmen bestimmte Denkoperationen des Menschen modellhaft nachvollziehen können. Statt also per Hand auf dem Papier umfangreiche Rechnungen viele tausend Male selbst vorzunehmen (wozu in der Realität dann sehr schnell einfach die Zeit und Arbeitskraft fehlt), schreibt man einen Algorithmus (= Programm, Software), der diese Rechnungen für das Arbeiten eines Computers übersetzt und die Maschine dann die Rechnungen automatisch (= maschinell) machen lässt.

BEGRIFF DER ZEIT

  1. Ein nicht unwesentlicher Faktor in diesen Überlegungen zu möglichen Zukünften ist der Begriff der Zeit.
  2. Der Begriff der Zeit ist viel schillernd und je nach Kontext kann er etwas ganz Verschiedenes bedeuten.
  3. Im Kontext des menschlichen Denkens haben wir die grundsätzliche Unterscheidung zwischen dem aktuellen Jetzt und dem vorausgehenden Jetzt in Form von verfügbaren Erinnerungen. Dazu kommen dann mögliche Jetzte aufgrund der Möglichkeit, im (kognitiven) Denken mittels dem (kognitiven) Konzept von Veränderung, aus der Vergangenheit und der Gegenwart denkbare (= mögliche) neue Zustände zu berechnen (zu denken, vorzustellen, …). Im Denken sind diese möglichen Zustände rein gedacht (virtuell), aber, sofern sie genügend nahe an der empirischen Wirklichkeit sind, könnten diese möglichen Zustände real werden, d.h. Zu einem neuen aktuellen Jetzt.

UHREN-MASCHINEN

  1. Um das Reden über diese unterschiedliche Formen von Jetzten zu vereinfachen, wurde sehr früh das Hilfsmittel der Uhr eingeführt: die Uhr ist eine Maschine, die periodisch Uhren-Ereignisse erzeugt, denen man Zahlzeichen zuordnen kann, also z.B. 1, 2, 3, … Es hat sich dann eingebürgert, ein Zeitsystem zu vereinbaren, bei dem man Jahre unterscheidet, darin 12 Monate, darin Wochen, darin 7 Wochentage, darin 24 Stunden pro Tag, darin 60 Minuten pro Stunde, darin 60 Sekunden pro Minute, und noch feinere Unterteilungen.
  2. Nimmt man an, dass eine Uhren-Maschine periodisch Sekunden erzeugt, dann würde jede Sekunde ein Ereignis angezeigt, dem dann nach 60 Sekunden eine Minute entsprechend würde, 60 Minuten dann eine Stunde, usw.
  3. Sofern man dann noch das praktische Problem lösen kann, wie die Uhren-Maschinen überall auf der Erde die gleiche Zeit anzeigen, und man einen gemeinsamen Referenzpunkt für den Beginn der Zeitrechnung hat, dann könnten alle Menschen nach der gleichen Zeitgebung leben.
  4. Unter Voraussetzung solcher einer Technologie der Zeiterzeugung könnte man dann abstrakt immer von definierten Zeitpunkten in diesem vereinbarten Zeitsystem sprechen.

(TECHNISCHE) SIMULATION

  1. Verfügt man über Computer und Zeit-Maschinen, dann kann man den Computer dazu nutzen, im Raum von definierten Zeitpunkten Hochrechnungen vorzunehmen. Man definiert Ausgangssituationen zu bestimmten Zeitpunkten (die Startzeit), man definiert angenommene mögliche Veränderungen in der Zeit, die man dann in Form eines Algorithmus aufschreibt, und dann lässt man den Computer für einen gewünschten Zeitraum ausrechnen, welche Veränderungen sich ergeben.
  2. Will man z.B. errechnen, wie sich die Bevölkerungszahl in einer bestimmten Population im Laufe von 10 Jahren berechnen, und man weiß aufgrund der Vergangenheit, wie hoch die durchschnittlichen Geburten- und Sterberaten für ein Jahr waren, dann kann man die Veränderungen von Jahr 1 zu Jahr 2 berechnen, dann wieder von Jahr 2 zu Jahr 3, usw. bis man das Zieljahr erreicht hat.
  3. Diese Rechnungen sind natürlich nur solange genau, wie sich die Geburten- und Sterberaten in diesem angenommenen Zeitraum nicht verändern. Wie wir aus der Geschichte wissen können, gibt es zahllose Faktoren, die auftreten können (Hunger, Krankheit, Kriege, …), die eine Veränderung mit sich bringen würden.
  4. Ferner sind Populationen immer seltener isoliert. Der Austausch zwischen Populationen nimmt heute immer mehr zu. Eine ganz normale Gemeinde im Kreis Offenbach (Land Hessen, Deutschland) kann z.B. eine Migrationsrate von 15% pro Jahr haben (Menschen die wegziehen oder herziehen), bei einer Geburtenrate von 0,7% und einer Sterberate von 0,8%. Die Größe einer Population hängt dann weniger vom Geborenwerden und Sterben ab, sondern von Standortfaktoren wie Verfügbarkeit von Arbeit, Höhe der Mietpreise, Verkehrsanbindung, Qualität der Schulen, ärztliche Versorgung usw.

DIE ERDE

  1. Will man nun die Erde als ganze betrachten, und hat man sowohl ein vereinbartes Zeitsystem zur Verfügung basierend auf einer gemeinsamen globalen Uhren-Technologie, wie auch Computer, die geeignete Algorithmen ausführen können, dann braucht man ’nur noch‘ (i) hinreichend gute Beschreibungen des Zustands der Erde jetzt, (Daten IST) (ii) von möglichst vielen Zuständen in der Vergangenheit (DATEN VORHER), und (iii) von möglichst allen wichtigen wirkenden Veränderungen zwischen diesen Zuständen (VREGELN). Unter der Annahme, dass alle diese Daten und Veränderungsregeln hinreichend realistisch sind, kann man dann Hochrechnungen für angenommene Zeiträume machen. In unserem Fall von 2017 bis 2117.
  2. Da schon das kleine Beispiel einer winzigen Gemeinde in Deutschland leicht erkennen lässt, wie fragil viele erkannten Veränderungsregeln sind, kann man vermuten, dass dies auf ein so komplexes System wie die ganze Erde sicher auch zutreffen wird.
  3. Betrachten wir ein paar (stark vereinfachte, idealisierte) Beispiele.
  4. Ganz allgemein gehen wir aus von einer globalen Veränderungsregel V_erde für die Erde, die den Zustand der Erde im Jahr 2017 (ERDE_2017) hochrechnen soll auf den Zustand der Erde im Jahr 2117 (ERDE_2117), als Abbildung geschrieben: V_erde : ERDE_2017 —> ERDE_2117.
  5. Der Zustand der Erde im Jahr 2017 (ERDE_2017) setzt sich zusammen aus einer ganzen Menge von Eigenschaften, die den Zustand charakterisieren. Abstrakt könnten wir sagen, die Erde besteht zu jedem Zeitpunkt aus einer Menge charakteristischer Eigenschaften Ei (ERDE_Zeit = <E1, E2, …, En>), und je nachdem, welche Veränderungen zwischen zwei Zeitpunkten stattgefunden haben, verändern sich in dieser Zeitspanne bestimmte Eigenschaften Ei.
  6. Beispiele für solche charakteristischen Eigenschaften Ei könnten sein das Klima (E_Klima), das wiederum selbst in unterscheidbare Eigenschaften zerfällt wie z.B. die durchschnittliche Sonneneinstrahlung, Beschaffenheit der Atmosphäre, Niederschlagsmenge, Wassertemperatur der Ozeane, Verdunstungsgrad des Wassers, usw. Zusammenhängend damit kann von Bedeutung sein die Bodenbeschaffenheit, verfügbare Anbauflächen, Pflanzenwachstum, mögliche Ernten, usw. Dazu wichtig die Verteilung der biologischen Populationen, deren Nahrungsbedarf, die Wechselwirkung zwischen Populationen und Pflanzenwachstum, usw. Hier fällt einem sofort auch die Frage der Lagerung von Nahrungsmitteln auf, deren Verarbeitung und Transport, deren Verteilung und deren Marktpreise.
  7. Schon diese sehr kleine Liste von Eigenschaften und angedeuteten Wechselwirkungen lassen erahnen, wie unterschiedlich mögliche Verläufe der Veränderungen in der Zukunft sein können. Von Heute aus gesehen gibt es also nie nur eine Zukunft, sondern sehr, sehr viele mögliche Zukünfte. Welche der vielen möglichen Zukünfte tatsächlich eintreten wird, hängt von vielen Faktoren ab, nicht zuletzt auch vom Verhalten der Menschen selbst, also von uns, von jedem von uns. (An diesem Punkt lügt die deutsche Sprache! Sie spricht nur von einer Zukunft im Singular (in der Einzahl), in Wahrheit sind es sehr viele und wir können mit bewirken, welche der vielen Zukünfte eintreten wird).

WARUM ÜBER ZUKUNFT SPEKULIEREN?

  1. Angesichts so vieler Unwägbarkeiten hört man oft von Menschen (speziell auch von Politikern!), dass Versuche der Hochrechnungen (= Simulation) auf mögliche Zukünfte sinnlos seien; eine unnötige Verschwendung von Zeit und damit Ressourcen.
  2. Auf den ersten Blick mag dies tatsächlich so erscheinen. Aber nur auf den ersten Blick.
  3. Der Wert von solchen Modellrechnungen über mögliche Zukünfte liegt weniger im Detail der Endergebnisse, sondern im Erkenntniswert, der dadurch entsteht, dass man überhaupt versucht, wirkende Faktoren und deren Wechselwirkungen mit Blick auf mögliche Veränderungen zu erfassen.
  4. Wie oft hört man Klagen von Menschen und Politikern über mögliche gesellschaftliche Missstände (keine Maßnahmen gegen Autoabgase, falsche Finanzsysteme, falsche Verkehrspolitik, falsche Steuerpolitik, falsche Entwicklungspolitik, fragwürdige Arzneimittelmärkte, …). Vom Klagen alleine ändert sich aber nichts. Durch bloßes Klagen entsteht nicht automatisch ein besseres Verständnis der Zusammenhänge, der Wechselwirkungen. Durch bloßes Klagen gelangt man nicht zu verbesserten Modellvorstellungen, wie es denn überhaupt anders aussehen könnte.

SIMUPEDIA FÜR ALLE

  1. Was die Not zumindest ein wenig lindern könnte, das wären systematische (wissenschaftliche) Recherchen über alle Disziplinen hinweg, die in formalen Modellen aufbereitet werden und dann mittels Algorithmen getestet werden: Was wäre, wenn wir die Eigenschaften E1, …, En einfach mal ändern und hier und dort neue Wirkmechanismen (durch Bildung, durch Gesetze, …) ermöglichen würden? Das Ganze natürlich transparent, öffentlich nachvollziehbar, interaktiv für alle. Nicht nur ein ‚Wikipedia‘ der Texte, sondern zusätzlich  eine Art ‚Simupedia‘ der Simulationen für alle.

Einen Überblick über alle Blogeinträge von Autor cagent nach Titeln findet sich HIER.

Einen Überblick über alle Themenbereiche des Blogs findet sich HIER.

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.