GoSuda

Politik und Computer

By snowmerak views ...

Was ist Philosophie

Was verstehen Sie unter Philosophie? Laut der Wörterbuchdefinition handelt es sich um die Tätigkeit, über das Leben in der Welt und grundlegende Fragen nachzudenken und Antworten zu suchen. Man könnte auch eine handlungsbezogene Definition ansetzen: Philosophie ist nicht das Lösen von Aufgaben mit vorgegebener Antwort, sondern die Erweiterung des Denkens durch dieselbe Frage oder durch eine Kette aufeinanderfolgender Fragen, und das Teilen dieser Antworten.

Während meines Bachelorstudiums habe ich früher einmal eine Veranstaltung zur politischen Philosophie belegt. Damals erinnere ich mich, dass der Professor in der Vorstellungsrunde zu Beginn des Kurses etwas Ähnliches sagte wie: Politische Philosophie und Informatik sind Disziplinen, die an den entgegengesetzten Enden verschiedener Philosophien stehen. Genau diese Wörter und dieser Satz waren es nicht, aber ich glaube, sinngemäß war es so gemeint.

Informatik

Ich denke, die Informatik ist eine grundlegende Erforschung zur Lösung logischer Probleme. Deshalb können Menschen, die über ein Problem nachdenken, zu verschiedenen Antworten kommen. Das typischste Beispiel ist das Sortieren. Auch bei der Erforschung von Methoden, um dieselben aufgelisteten Daten in eine Reihenfolge zu bringen, gibt es viele Verfahren, etwa Bubble Sort, Insertion Sort, Selection Sort, Merge Sort, Quick Sort, Heap Sort, Tim Sort und weitere. Indem man diese aufteilt und miteinander vergleicht, können bessere Algorithmen entstehen.

Lokal betrachtet kann man außerdem sagen, dass sie erschafft und beweist. Schon beim obigen Sortieren wird fortlaufend überlegt, wie sortiert werden soll, und das Ergebnis wird bewiesen. Für Entwicklerinnen und Entwickler lässt sich dies am besten anhand eines näherliegenden Beispiels betrachten: Wenn eine Projektplanung vorliegt, wird sie implementiert, und die Funktionsfähigkeit wird nachgewiesen.

Politische Philosophie

Ich denke, dass politische Philosophie eine grundlegende Erforschung zur Lösung gesellschaftlicher Probleme ist. Zu jeder Zeit werden bereits bestehende, jeweils unterschiedliche Probleme wiederholt hinterfragt, Antworten erarbeitet und in der Gegenwart wie in der Zukunft geteilt. Sie befasst sich vor allem mit abstrakten Werten wie Gerechtigkeit, Freiheit, Gleichheit und Macht, die je nach Zeit und Kultur unterschiedlich interpretiert werden. Sie kennt keine klar festgelegten Grenzen zwischen Gut und Böse, richtig und falsch, und genau diese Offenheit ist ein charakteristisches Merkmal.

Lokal betrachtet, ähnlich wie in der Informatik, kann man sagen, dass sie hinterfragt und reflektiert. Sie stellt zu aufgetretenen Problemen fortwährend Fragen: Warum ist es so geworden, welche besseren Richtungen gibt es, und sie reflektiert darüber und findet Antworten. Auch hier entstehen, proportional zur Zahl der denkenden Menschen, viele unterschiedliche Antworten.

Warum wir auch Politik und Informatik verstehen sollten

Die Beziehung wechselseitiger Verweisung

Die beiden Welten scheinen unterschiedliche Bereiche zu erforschen, teilen aber tatsächlich viele Gemeinsamkeiten und besitzen zahlreiche Punkte, an denen sie wechselseitig Ursache und Wirkung füreinander sind.

Ich möchte ein Beispiel geben.

  1. Wenn persönliche Gesundheitsdaten sicher in der Cloud gespeichert werden, könnten sie bei Bedarf von jedem Krankenhaus schnell abgerufen werden ⇒ Dies wird durch Programmierung umgesetzt, die sicher und gut zugänglich die Funktionen der einzelnen Bereiche nutzt.
  2. Wem gehören diese Daten dann? Mir? Der registrierten Verantwortlichen Stelle? Oder dem Betreiber? Dem Entwicklungsunternehmen? Dem Staat? Und wie weit dürfen diese Akteure dann in meine Daten sehen? Bis zu welchem Grad und auf welche Weise kann mir zugesichert werden, dass meine persönlichen Informationen geschützt sind? ⇒ Es wird ein politischer Diskurs über die Standpunkte und Interessenunterschiede verschiedener Gemeinschaften und einzelner Personen entstehen.
  3. Danach werden sich politische Debatten und programmatische Gestaltung und Umsetzung immer wieder abwechseln und in einer Kette wiederholen.

So werden zur Lösung bestehender gesellschaftlicher Probleme Informatik eingesetzt, und die dabei entstehenden Probleme werden erkannt und gelöst, wobei Fragen aufgeworfen werden und die politische Philosophie dazu dient, das nächste Problem zu lösen. In der heutigen Informationsgesellschaft ist dies eine selbstverständliche Erscheinung.

Ähneln sich Politik und Informatik

Was nicht so aussieht

Außerdem haben sich beide Welten in ähnlicher Form entwickelt. Ihr Fundament unterscheidet sich jedoch, ähnlich wie das Verhältnis von Gesellschaftsphilosophie und Naturphilosophie, durch den Unterschied zwischen vagem und präzisem Ausdruck. Die politische Philosophie stützt sich auf veränderliche und unscharfe Definitionen in natürlicher Sprache, während die Informatik auf unveränderlichen und eindeutigen Aussagen beruht, die eher durch formale Ausdrücke als durch natürliche Sprache gebildet werden.

Auch die Richtung wird subtil unterschiedlich formuliert. Die Informatik geht davon aus, dass es eine optimale Lösung geben kann. Die politische Philosophie hingegen spricht von unscharfen Begriffen wie überzeugenderen, besser begründeten oder ethischeren Argumenten. Dennoch scheint mir die Richtung beider nahezu identisch zu sein. Letztlich geht es in beiden Fällen um die Anstrebung eines besseren Nächsten. Auch die Informatik hat viele Bereiche, doch exemplarisch lässt sich dies bei der Medienkompression beobachten, den sogenannten Codecs, bei denen man sich um eine bessere Kompressionsrate, bessere Kompressionsleistung und geringere Lizenzkosten bemüht.

Was ähnlich erscheint

Exemplarisch scheinen Programmiersprachen und Herrschaftsideologien in ähnlicher Weise auf Menschen angewendet zu werden. Jede Sprache und jede Ideologie lassen sich nicht eindeutig einander zuordnen, doch zum Spaß möchte ich sie aufzählen.

  • C (Der Entwickler weiß, was er tut): Ich möchte es mit dem Republikanismus vergleichen. Historisch ähnelt es der Republik, die die Grundlage des westlichen politischen Systems bildete, und es erinnert auch an den Kommunitarismus, der das Bewusstsein der einzelnen Bürger und das Bemühen jedes Einzelnen um ein besseres Ideal betont. Außerdem empfinde ich die Ähnlichkeit darin, dass Rechten Pflichten folgen.
  • Java (Einmal geschrieben, überall ausführbar): Ich weiß es nicht. Es gibt ein starkes Gesetz, und man lebt, indem man es befolgt, ein vereinheitlichtes Leben, doch dieses ist stabil, und innerhalb dessen ist man frei. Und wenn man in Spring eintritt, warten verschiedene Wohlfahrtsleistungen auf Sie. Soll ich es mit dem Liberalismus gleichsetzen?
  • C# (Harmonie von Entwicklerproduktivität und den Prinzipien des Software Engineering): Unter dem Schutz eines starken Staates ist alles gut entworfen, und innerhalb des Geplanten lassen sich Produktivität und Leistung bis zum Äußersten steigern. Die Planwirtschaft passt gut. Dass es kein Kommunismus ist, liegt daran, dass die Produktionsmittel freigegeben sind und die Produzenten nicht beschränkt werden.
  • Go (Komplexität verwerfen, Pragmatismus und Effizienz übernehmen): Es gibt nichts Vergleichbares. Da alles großzügig verteilt wird, bitte den Wohlfahrtsstaat einführen.
  • Rust (Sicherheit ohne Leistungsverlust): Eigentum und Lebensdauer in Rust werden von einem strengen Compiler als Herrscher verwaltet. Dies scheint mir Sozialismus zu sein, weil zur Verhinderung der Ungleichheit und Risiken, die aus der freien wirtschaftlichen Tätigkeit einzelner entstehen, die Gemeinschaft die Produktionsmittel verwaltet und plant, um ein stabiles Leben zu gewährleisten, und dabei die Freiheit des Einzelnen teilweise einschränkt, um die Sicherheit und Gleichheit des gesamten Systems zu verfolgen.
  • JavaScript (Flexibilität und Nachsicht, und überall vorhanden): Ich möchte es mit dem Kapitalismus vergleichen. Bei dieser Sprache besitzen die einzelnen Individuen die Produktionsmittel, und sogar die Anlagen sind bei den Einzelnen reichlich vorhanden. Dadurch entstehen vielfältige Industrieprodukte, und durch freien Wettbewerb kann jeder Gewinn anstreben. Doch ein Markt ohne Regulierung geriet bald ins Chaos.
  • TypeScript (Ein erweitertes JavaScript): Selbstverständlich ist es der regulierte Kapitalismus. Der Glaube an den Kapitalismus wird erschüttert, und um die Instabilität des Marktes zu überwinden, greift der Staat in gewissem Maße ein. Die bisherige vollständige Freiheit ist zwar vergleichsweise zurückgegangen, doch weiterhin kann jeder frei auf den Markt treten und konkurrieren.

Und nicht wenige Entwickler streiten sich, fast wie in einem ideologischen Krieg in der Realität, häufig mit Sprachen. Die Sprache selbst ist für Entwickler eine vertraute Ideologie und zugleich ein anzustrebendes Ideal.

Staat und Architektur

  • Monolithische Architektur und zentralisierter Staat: Alles ist in einer einzigen großen Codebasis und einem einzigen Binärpaket enthalten. Dies hat eine Struktur, die einem Einheitsstaat mit starker Zentralregierung oder einer absoluten Monarchie ähnelt. Alle Funktionen des Staates werden von einem einzigen Machtsystem kontrolliert.
    • Der Vorteil liegt darin, dass sich ein Staat am leichtesten bilden lässt und Entscheidungen schnell fallen. Dies folgt demselben Gedanken wie der Vorteil, dass die gesamte Software schnell fertig wird. Da alle Ressourcen und Informationen an einem Ort konzentriert sind, ist die Verwaltung eindeutig.
    • Allerdings wird es mit wachsendem Staat schwieriger, auf Veränderungen zu reagieren, und selbst wenn man ein kleines Gesetz oder eine kleine Einrichtung ändern will, muss das Ganze geprüft und angewendet werden. Auch besteht die Gefahr, dass ein Problem in einem Bereich den gesamten Staat lahmlegt. Auch die Monolitharchitektur reagiert aufgrund der großen Codebasis und der verflochtenen Codes schwer auf Veränderungen; selbst wenn man nur eine Zeile Code ändern will, muss der Wirkungsbereich bestimmt werden, und ein Problem in einem Modul wirkt leicht auf das gesamte System.
  • Microservice-Architektur und Bundesstaat: Die einzelnen Funktionen des Systems werden als unabhängige Dienste getrennt. Dies weist Ähnlichkeiten zu einem Bundesstaat auf, dessen Teile aus mehreren unabhängigen Ländern bestehen. Außerdem besitzt jeder Dienst und jedes Land eine eigenständige Infrastruktur. Die Einflussnahme der Zentralregierung ist eher locker, und ebenso ähnlich ist, dass nie absehbar ist, wann Unabhängigkeit oder Beitritt stattfinden.
    • Grundsätzlich können unabhängige Länder und Dienste eigenständig Gesetze ändern bzw. Code schreiben. Dadurch muss man nicht den gleichen Takt aufeinander abstimmen. Außerdem ist es schwer, dass ein Problem an einer Stelle den gesamten Bund lahmlegt. Zudem kann man je nach Region oder Bereich passende Institutionen (Technologien) auswählen.
    • Schwierig ist jedoch, sich untereinander zu einigen oder Kommunikationskanäle zu schaffen. Es fällt schwer, eine einheitliche Politik zu verfolgen, was zu Verwirrung führen kann.
  • EDA (Event-Driven Architecture) und Zivilgesellschaft: Anstatt dass eine Zentralregierung oder Stellvertreter direkt Befehle erteilen, werden gesellschaftliche Probleme von einzelnen Menschen eigenständig und aus eigener Initiative aufgegriffen und gelöst. Dies ähnelt dem Merkmal von EDA, dass bei Eintreten eines Ereignisses einer der Abonnenten es eigenständig aufgreift und verarbeitet.
    • Jeder kann leicht teilnehmen. Auch bei EDA kann ein neuer Dienst leicht zu einem neuen Abonnenten werden und am Prozess teilnehmen.
    • Allerdings besteht der Nachteil, dass man den Gesamtablauf nicht erfassen kann. Es ist schwer nachzuvollziehen, wer wie reagiert hat, und man kann nicht wissen, welche Kettenreaktion ein einzelnes Ereignis auslöst.
  • Schichtenarchitektur und Feudalismus: Der Feudalismus ist eine Struktur, in der jeder in seiner Schicht die ihm zugewiesene Rolle und Verantwortung erfüllt und so Pflichten gegenüber der übergeordneten Schicht erbringt. Diese werden in Form einer Art Vertragsverhältnis geschlossen und bilden eine streng vertikale Herrschaftsordnung, weshalb sich Ähnlichkeiten mit der Schichtenarchitektur finden lassen.

So sind noch weitere Vergleiche möglich, doch der Kern dieses Textes liegt nicht in der Struktur selbst, sondern in dem Prozess, durch den diese Strukturen entstehen.

Sind die Problemlösungen in Entwicklung und Politik gleich?

Wenn Softwarearchitektur und Staatsordnung einander ähneln, verlaufen auch die Prozesse, durch die beide entstehen, erstaunlich parallel. Der Prozess der Softwareentwicklung unterscheidet sich im Grunde nicht von politischem Handeln, das im digitalen Raum eine neue Ordnung aufbaut und weiterentwickelt.

  1. Öffentliche Diskussion gesellschaftlicher Probleme und Anforderungsanalyse**:** Alles beginnt mit der Frage: „Was ist das Problem?“ So wie das Leid und die Unannehmlichkeiten der Bürgergesellschaft öffentlich werden und zu politischen Themen werden, werden die Unannehmlichkeiten und Forderungen der Nutzer analysiert und werden zum ersten Meilenstein der Entwicklung in Form einer „Anforderungsspezifikation“.
  2. Verfassungsentwurf und Architekturdesign**:** Welchen Staat wollen wir schaffen? Welches System wollen wir bauen? So wie Politiker auf Grundlage von Ideologie und Philosophie das Gerüst von Verfassung und Gesetzen errichten, zeichnet der Architekt auf Grundlage technischer Überzeugungen den Bauplan der Architektur, die das Fundament des Systems bilden wird. Die Entscheidungen in dieser Phase bestimmen das Schicksal des Systems.
  3. Politikumsetzung und Softwareimplementierung**:** Sobald der Entwurf fertiggestellt ist, schreiben Entwickler den tatsächlichen Code, und Verwaltungsbeamte setzen die Politik gemäß den Gesetzen um. Es ist der Prozess, in dem aus einem abstrakten Plan ein konkretes Gebilde wird, das in der realen Welt funktioniert.
  4. Bewertung durch Wahlen und Softwaretests**:** Politik wird durch Wahlen und öffentliche Meinung auf ihre Legitimität geprüft. Software wird durch Tests des QA-Teams und Rückmeldungen der Nutzer auf ihren Wert geprüft. Beide müssen letztlich die Zustimmung des Souveräns (der Bürger, der Nutzer) erhalten, um bestehen zu können.
  5. Institutionelle Reform und Systemwartung**:** Einmal geschaffene Gesetze und Systeme sind nicht ewig. So wie veraltete Gesetze entsprechend dem Wandel der Zeit novelliert und Institutionen reformiert werden, hört Software, wenn das ‚Refactoring‘ zur Verbesserung ineffizienter Teile in Anpassung an die sich verändernde Umgebung aufhört, auf, lebendig zu sein und wird zu totem Code.

So zeigt der gesamte Ablauf von der Problemdefinition über Entwurf, Umsetzung und Prüfung bis hin zur fortwährenden Verbesserung, dass beide Welten denselben Rhythmus der Problemlösung teilen.

Die Tage der neuen Gesetzgeber

Die Informationsgesellschaft hat die Distanz zwischen den Enden dieser beiden Philosophien bedeutungslos gemacht. Code ist nicht länger bloß eine logische Schaltung, sondern ist zu „Code is Law“ geworden, einem Recht, das menschliche Beziehungen bestimmt, Macht verteilt und gesellschaftliche Werte verwirklicht. Wenn die Architektur, die wir entwerfen, der Herrschaftsstruktur eines Staates ähnelt und der Entwicklungsprozess, dem wir folgen, einem politischen Abstimmungsprozess gleicht, wer sind dann wir Entwickler eigentlich? Und was sollen Politiker tun? Deshalb müssen Entwickler nun nicht nur die Logik des Codes, sondern auch die Gesellschaft reflektieren, die dieser Code hervorbringen wird, und Politiker müssen nicht nur die Logik der Stimmen, sondern auch die Logik der Technik verstehen, die die Welt bewegt. Denn mit der enormen Macht, die wir in unserer jeweiligen Welt ausüben, geht eine entsprechende ethische Verantwortung einher.