08.07.2016

Kant zur objektorientierten Programmierung

Das soll natürlich ein wenig provozierend sein, aber tatsächlich nur ein ganz klein wenig. Dass Kant sich nicht zur objektorientierten Programmierung geäußert hat, nicht direkt, dürfte klar sein. Trotzdem lassen sich bestimmte Gedanken Kants auf die Philosophie des modernen Programmierens übertragen.

Das Objekt im objektorientierten Programmieren

Die Kunst des objektorientierten Programmierens besteht darin, ein Objekt (meistens aber ziemlich viele) zu erschaffen, das in irgend einer Art und Weise der Realität entspricht. Ein Objekt ist zunächst eine Art Schablone, man nennt dies auch Klasse, aus der dann ein konkretes Objekt (auch Instanz genannt) erzeugt wird.
Nehmen wir zum Beispiel eine Klasse an, die ganz allgemein Bücher „repräsentieren“ soll. In dieser Klasse legt man bestimmte Datensätze fest, die wie eine Schablone wirken: interessant wäre zum Beispiel der Autor, der Titel, der Preis, die Seitenzahl, der Verlag. In der Klasse werden diese Datensätze festgelegt, ohne dass sie aufgefüllt werden. Erschafft man eine Instanz von einer solchen Klasse, dann wird zum Beispiel als Autor Immanuel Kant angegeben, Titel wäre Kritik der praktischen Vernunft, der Preis beliefe sich auf zehn Euro, die Seitenzahl auf 302, und der Verlag wäre der Suhrkamp-Verlag in Frankfurt am Main.

Abstraktion entlang des Gebrauchs

Allerdings schleicht sich in eine solche Klasse und ein solches Objekt bereits die Abstraktion massiv ein. Wollte man ein Buch wie die Kritik der praktischen Vernunft so real wie möglich beschreiben, dann wäre es notwendig, auch den gesamten Text (der ja das eigentlich interessante an diesem Buch ist) in der Instanz zu speichern. Die Instanz, und damit auch die Klasse, bräuchte also ein weiteres, wahrscheinlich ziemlich komplexes Datenobjekt, welches den Text abspeichern würde.
Das reduzierte Objekt, welches ich zunächst vorgeschlagen habe, ist eindeutig nicht an dem Objekt selbst gewonnen worden, sondern an dem Interesse eines möglichen Konsumenten.
Damit entpuppt sich die Rede davon, dass das programmierte Objekt ein reales Objekt abbilde, als eine sehr schlampige Darstellung. Tatsächlich bildet das Objekt vor allem den Gebrauch ab; es ist also keineswegs die Abbildung eines Gegenstandes, sondern einer begrenzten Anzahl von Handlungen. Damit bildet es auch nicht ein Stück meist physikalisch gedachter Welt ab, sondern ein Stück subjektiven Bedürfnisses. Anders ließe sich auch gar nicht erklären, dass sämtliche Fantasy-Spiele, die es auf dem Markt gibt, objektorientiert programmiert sind. Hier wird, über den Gebrauch, eine Welt erschaffen und eben nicht abgebildet.

Kants Objekte

Immanuel Kant hat sich die Objekte als Sinnesdaten gedacht, die durch das Wirken der Vernunft in eine idealisierte Form gebracht werden. Der Weg, den jegliche sinnliche Mannigfaltigkeit zum idealisierten Objekt geht, ist der der Abstraktion. Wie auch immer sich Kant das dann genau gedacht hat, so bleibt doch festzustellen, dass das Objekt nicht gemäß der Prinzipien der Realität, sondern denen der Vernunft konstruiert wird, also nicht entlang von naturwissenschaftlichen Gesetzen, sondern von subjektiven, spontanen Formen.
So muss auch die objektorientierte Programmierung den Benutzern gehorchen. Dies ist, auf der einen Seite, natürlich derjenige, der das Programm später gebraucht. Zuallererst aber werden diese Objekte von dem Programmierer selbst benötigt, und so sind sie auch zuallererst Konstrukte des Programmierers. Die Kundenfreundlichkeit eines Programms besteht dann ja auch aus dem Zusammenwirken zahlreicher Objekte, bzw. deren Instanzen.

Hilfs-Ich

In der Psychoanalyse beschreibt man mit dem Begriff des Hilfs-Ichs ein Objekt, welches zwischen den Triebregungen des Subjekts und den „objektiven“ Anforderungen der Umgebung vermittelt, wenn die Anpassung schwierig oder gestört ist. Dies scheint mir auch eine ganz gute Darstellung der Leistungen zu sein, die Objekte bieten. Jedes Programm ist ein Werkzeug, welches dem Benutzer bestimmte Arbeiten vereinfachen soll. Anders beschrieben passt es die Bedürfnisse des Benutzers an eine sonst zu komplexe Realität an. Damit übernimmt das Programm die Funktionen eines Hilfs-Ichs und könnte demnach auch mit solchen Begriffen beschrieben werden.
Damit wäre es möglich, die gesamte Philosophie der objektorientierten Programmierung auf eine andere Basis zu stellen.

Keine Kommentare :