Language shapes the way we think,
and determines what we can think about. — B. L. Whorf
“The time has come,” the Walrus said,
“to talk of many things.” — L. Carroll
zitiert nach Stroustrup, B.: Die C++-Programmiersprache. 4., aktualisierte und erweiterte Aufl., München, 2000, S. xix, 3
Ich nahm das Buch kürzlich in die Hand, weil es für mich lange Zeit das Gegenteil vom Handbuch der Java-Programmierung war. Das erste und einzige Buch, das ich aus Empörung an die Wand gepfeffert habe. Mein Fehler: Ich habe mir nicht genug Zeit genommen, war zu ungeduldig.
Software-Entwicklung und Philosophie
Bei den Chemikern stinkt es, bei den Physikern kracht es, Biologen zerschippeln Frösche, Soziokraten hantieren mit Statistiken, Maschinenbauer gehen auf Parties. Die Liste dieser Klischees läßt sich leicht fortführen.
Ich habe – in Gesprächen mache ich hier eine kleine Pause – Philosophie studiert. Meine Mutter weiss bis heute nicht, was ich während dieser Zeit getrieben habe und wie und warum ich nun meinen Lebensunterhalt mit Software-Entwicklung bestreiten kann. Ich will versuchen, das zu erklären.
Viele meinen, Philosohpie befasse sich nur mit der Frage nach dem Sinn des Lebens. Ganz ehrlich: Das ist nur eins dieser Klischees. Ein “echtes” Themen in der Philosophie ist die Frage nach der Begründbarkeit von Moral und Gesetz – wer politisch interessiert ist, dem wird die Notwendigkeit der Antwort einleuchten. Ein anderes “echtes” Thema nennt sich “kausale Referenztheorie”, erdacht von Hilary Putnam. Der amerikanische Philosoph bemüht sich in diesem Zusammenhang um die Klärung, was denn die Bedeutung der Bedeutung eines Wortes sei – das wird bei den meisten Menschen auf Unverständnis stoßen. Sei’s ‘drum. Klar sollte sein, dass es eine Fülle von Themen jenseits der gängigen Vorurteile gibt.
Woher wissen wir von dieser Themenfülle? Ganz einfach: die Themen füllen Bibliotheken. Da ist es offensichtlich, dass Lesen eine der Hauptbeschäftigungen der Philosophologen – auf deutsch: Philosophie-Wissenschaftler – ist. Lesen allein genügt aber nicht, man muss es auch verstehen. Verstehen ist meistens nicht ganz einfach, also macht man sich Notizen, um hinterher mit anderen Philosophologen darüber reden zu können. Das Verfahren mündet dann in einem Aufsatz oder einem Buch. Das Werk stellt man in die Bibliothek und hat ‘was zum Lesen. Ziemlich gerissen. Aber das nur nebenbei.
Als Philosophologe merkt man bald, dass die meisten Philosophen nicht nur gerissen, sondern auch rotzfrech sind. Zum einen sehen ihre “Antworten” oft aus wie Taschenspielertricks. Zum anderen haben sie keinen Respekt – nicht vor der Obrigkeit, nicht vor ihren Vorgängern. Sie ecken an und quengeln gerne. Das hört sich negativ an, ist es aber nicht. Ganz im Gegenteil: Sie denken eigenständig und pragmatisch. Das färbt ab. Heute sind das gefragte Soft-Skills.
Die philosophisch lohnenswerten Themen sind nicht ganz so offensichtlich wie die von Naturwissenschaft und Technik. Ich will ein Beispiel geben und versuchen, Dich damit so zu verstören, wie ich damals verstört war, als man mich auf dieses hier stieß: Träume erscheinen einem oft ganz und gar wirklich, so lange man träumt – das hat sicher jeder schon erlebt. Unsere Augen täuschen uns – im Flimmern der Sonne auf dem Asphalt sehen wir Dinge, die nicht da sind. Einmal ist das Wasser aus der Leitung eiskalt, einmal ist dasselbe Wasser angenehm warm – das hängt davon ab, wie warm unsere Hände sind. Die Ohren – ich kenne jemanden, der in der weiten Stille Norwegens Feengesänge hörte. Kurz: Unsere Sinne sind keine Garanten für sicheres Erkennen. Gibt es überhaupt irgendetwas, dessen ich mir unumstößlich gewiss sein kann? Etwas, worauf ich all meine Erkenntnisse und mein Wissen bauen kann – ein solides Fundament? Mit dieser Frage schickte uns der Philosophie-Lehrer ins Wochenende.
Einer der ganz frühen Philosophen ist Platon. Auf die Dauerbrenner-Frage “Wie kann ich etwas ganz sicher wissen?” antwortet er mit seiner “Ideenlehre”. Deren Details kann man anderswo lesen. Der interessante Punkt für den Software-Entwickler ist: Ideenlehre und Objektorientiert Programmierung sind strukturell gleich. Platon nennt es “Idee”, ich sage dazu “Klasse”. Platon sagt “Ding” oder “Schatten”, ich sage “Objekt”. Platon meint, dass jedes Ding die Verwiklichung einer Idee sei. Ich beschreibe eine Klasse und später erzeuge ich daraus Objekte – beliebig viele und alle von einander unterscheidbar. Wenn ich ganz sicher wissen will, wie mein Programm “tickt”, dann liegt die Antwort in den zugrundeliegenden Klassen. Die Parallele ist offensichtlich.
Beispiele für andere Gemeinsamkeiten: Wer das Traktat des frühen Wittgenstein beackert hat, dem wird es ganz natürlich erscheinen, dass der Erfinder der Programmiersprache C++ davon schwärmt, Strukturen in Hierarchien abzubilden. Wittgenstein – Stroustrup. Philosoph – Programmierer.
Naom Chomsky ist Geisteswissenschaftler und Informatiker. Wer sich mit Chomsky’s Klassifizierung von Sprachen befasst hat, dem ist klar, was Compiler leisten können und was nicht. Mit diesem grundlegenden Verständnis ist es ein leichtes, XML zu transformieren, und das ist eine Technik, die man immer wieder gut gebrauchen kann.
Ein Philosoph erklärt Dir nicht die Welt im grossen und ganzen – das ist wieder nur ein Klischee. Ein Philosoph bemerkt allgemeingültige Strukturen für einen sehr kleinen Bereich der Wirklichkeit. Und das ist die Aufgabe eines Software-Entwicklers: Finde eine verallgemeinerbare Möglichkeit, einen kleinen Bereich der Arbeitswelt zu strukturieren. Ein gutes Programm meistert genau eine Aufgabe, nämlich die, für die es geschaffen wurde. Kann sein, dass Du das Programm nicht gebrauchen kannst, weil Deine Arbeitswelt eine andere ist. Ein guter Philosoph beantwortet genau eine Frage, nämlich diejenige, die ihm unter den Nägeln brennt. Kann sein, dass Du damit nichts anfangen kannst, weil Deine Frage eine andere ist. Die Parallele ist offensichtlich.
Viele meinen, Programmieren sei nur das Eintippen von Anweisungen und haben das Bild eines ungepflegten, verschrobenen Nerds vor Augen, dessen Finger über die Tastatur fliegen. Klischee. Besser stellt man sich das ungefähr so vor: Ich rede mit den zukünftigen Benutzern und lese viel zu dem jeweiligen Thema. Ich bringe das Wissen und die Ideen zu Papier, strukturiere sie. Wieder und wieder reden, lesen, neu strukturieren, Details hinzufügen. Irgendwann ist es soweit, dass ich keine neuen Fragen mehr habe und User mich im Gespräch nicht mehr mit neuen Details überraschen können. Das Eintippen ist eine Kleinigkeit – die Vorarbeit ist viel schwieriger und umfangreicher.
Und den allergrößten Teil der Arbeitszeit verbringe ich nicht damit, etwas neues zu erschaffen. Zu mehr als 80% behebe ich Fehler und baue kleine Erweiterungen an – man nennt das Wartungsprogrammierung.
Kurzum …
Ein Studium, bei dem reden, zuhören und argumentieren einen wesentlichen Teil ausmachen, ist eine gute Basis für den sozialen Prozeß, den wir “Software-Entwicklung” nennen. Ganz zu schweigen vom Schreiben – das nennt man “Dokumentation”.
Ein Studium, das zu einem Drittel daraus besteht, sich in die Gedanken anderer einzufinden, bereitet gut darauf vor, fremden Programmtext zu lesen, zu verstehen und so zu verändern, dass die Funktionalität erhalten bleibt. So bestreite ich meinen Lebensunterhalt.
Epilog
Wer gegen Philosophie und Philosophiewissenschaft den Vorwurf erhebt, das sei alles nur nutzloses Geschwätz, den verdächtige ich, auch Vinologie, Bierologie und Haute Cuisine für überflüssig zu halten. Hauptsache besoffen und satt?!? Was für eine triste Welt. Wie grau muss die Gedankenwelt derer sein, die Philosophie “und das ganze Zeugs” ablehnen. So möchte ich nicht leben. Denn eins ist unumstößlich sicher: Ich denke, also bin programmiere ich.