GoSuda

Politik und Computer

By snowmerak
views ...

Was ist Philosophie

Was halten Sie von Philosophie? Die lexikalische Bedeutung besagt, es sei die Tätigkeit, über das Leben in der Welt und grundlegende Fragen nachzudenken und Antworten zu suchen. Man könnte auch eine tätigkeitsbezogene Definition anwenden, wonach es sich nicht um das Lösen von Aufgaben mit festgelegten Antworten handelt, sondern um die Erweiterung des Denkens durch die Wiederholung derselben Fragen oder eine Kette von Folgefragen und das Teilen der Antworten.

In der Vergangenheit belegte ich während meines Bachelorstudiums ein Fach, das sich mit politischer Philosophie beschäftigte. Ich erinnere mich, dass der Professor während meiner Vorstellung sagte, dass Politische Philosophie und Computer Science Disziplinen sind, die auf den Gipfeln unterschiedlicher Philosophien stehen, oder etwas Ähnliches. Es waren nicht exakt diese Worte und dieser Satz, aber die Bedeutung war in etwa diese.

Computer Science

Ich betrachte Computer Science als die grundlegende Untersuchung zur Lösung logischer Probleme. Daher können bei der Betrachtung eines Problems durch verschiedene denkende Personen unterschiedliche Antworten entstehen. Das repräsentativste Beispiel ist die Sortierung. Auch bei der Untersuchung von Methoden zur Sortierung derselben aufgelisteten Daten in eine Reihenfolge existieren verschiedene Ansätze wie Bubble, Insertion, Selection, Merge, Quick, Heap, Tim und andere. Und durch deren Unterscheidung können bessere Algorithmen entstehen.

Auf lokaler Ebene könnte man es auch als Erstellen und Beweisen bezeichnen. Bereits die oben genannte Sortierung wird kontinuierlich erstellt und das Ergebnis, wie sortiert werden soll, bewiesen. Für Entwickler ist es besser, dies als ein näherliegendes Beispiel zu betrachten, bei dem nach der Projektplanung die Implementierung erfolgt und das reibungslose Funktionieren bewiesen wird.

Politische Philosophie

Ich betrachte Politische Philosophie als die grundlegende Untersuchung zur Lösung sozialer Probleme. Sie stellt wiederholt Fragen zu bereits existierenden Problemen, die in jeder Epoche anders sind, generiert Antworten und teilt diese in der Gegenwart und Zukunft. Sie beschäftigt sich hauptsächlich mit abstrakten Werten wie Gerechtigkeit, Freiheit, Gleichheit und Macht, die je nach Epoche und Kultur unterschiedlich interpretiert werden, und zeichnet sich dadurch aus, dass klare Gut-Böse-Unterscheidungen, richtige und falsche Antworten nicht festgelegt sind und nicht festgelegt werden.

Auch auf lokaler Ebene, ähnlich wie bei Computer Science, könnte man es als Hinterfragen und Reflektieren betrachten. Es wird unaufhörlich zu dem aufgetretenen Problem befragt, warum es so gekommen ist, welche besseren Wege es gibt, es wird reflektiert und eine Antwort gefunden. Auch hier treten zahlreiche Antworten auf, proportional zur Anzahl der denkenden Personen.

Warum wir sowohl Politik als auch Computer Science verstehen müssen

Die Beziehung der gegenseitigen Berufung

Obwohl die beiden Welten scheinbar unterschiedliche Bereiche untersuchen, teilen sie tatsächlich erhebliche Gemeinsamkeiten und weisen eine beträchtliche Anzahl von Punkten auf, an denen sie Ursache und Wirkung füreinander sind.

Lassen Sie mich ein Beispiel anführen.

  1. Wenn die Gesundheitsdaten einer Person sicher in der Cloud gespeichert werden, können Krankenhäuser bei Bedarf schnell darauf zugreifen. ⇒ Dies wird durch Programmierung sicher und zugänglich unter Nutzung der Funktionen der jeweiligen Bereiche implementiert.
  2. Wessen Daten sind das dann? Meine? Die des registrierenden Sachbearbeiters? Oder des Hauptverantwortlichen? Des Entwicklers? Des Staates? Bis wohin dürfen sie meine Daten einsehen? Wie kann ich sicherstellen, dass meine persönlichen Informationen geschützt werden? ⇒ Es wird politische Diskurse über die Standpunkte und Interessenunterschiede zwischen verschiedenen Gemeinschaften und einzelnen Personen geben.
  3. Danach werden sich der politische Diskurs und die programmatische Gestaltung und Implementierung in einer Kette wiederholen.

Auf diese Weise wird Computer Science zur Lösung bestehender gesellschaftlicher Probleme eingesetzt, und dann wird die Politische Philosophie verwendet, um die daraus entstandenen Probleme zu erkennen, Fragen zu ihrer Lösung zu stellen und das nächste Problem anzugehen. Dies ist in der Informationsgesellschaft von heute ein natürliches Phänomen.

Sind Politik und Computer Science ähnlich?

Punkte, die nicht so erscheinen

Auch die beiden Welten haben sich in ähnlicher Form entwickelt. Ihr Fundament weist jedoch, ähnlich wie die Beziehung zwischen Sozialphilosophie und Naturphilosophie, einen Unterschied zwischen vager und klarer Ausdrucksweise auf. Während die Politische Philosophie auf variablen und vagen Definitionen in natürlicher Sprache basiert, stützt sich die Computer Science auf unveränderliche und klare Aussagen, die eher aus mathematischen Formeln als aus natürlicher Sprache bestehen.

Auch die Richtung wird subtil anders ausgedrückt. Die Computer Science geht davon aus, dass eine optimale Lösung existieren kann. Die Politische Philosophie spricht von vagen Konzepten wie überzeugenderen Argumenten, besser begründeten Argumenten, ethischeren Argumenten. Aus meiner Sicht ist die Richtung beider jedoch nahezu identisch. Letztendlich scheinen sie das Ziel zu verfolgen, ein besseres Nächstes zu erreichen. Obwohl die Computer Science verschiedene Bereiche umfasst, wird beispielsweise bei der Medienkompression, genannt Codec, daran gearbeitet, bessere Kompressionsraten, Komprimierungsleistung und Lizenzkosten zu erzielen.

Punkte, die ähnlich erscheinen

Programmiersprachen und Regierungsideologien scheinen repräsentativ in ähnlicher Weise auf den Menschen angewendet zu werden. Obwohl die jeweiligen Sprachen und Ideologien nicht direkt korrespondieren, möchte ich sie spaßeshalber auflisten.

  • C-Sprache (Der Entwickler weiß, was er tut): Ich möchte sie mit dem Republikanismus vergleichen. Sie ähnelt der historischen Grundlage westlicher politischer Systeme, der Republik, und dem Kommunitarismus, der das Bewusstsein jedes einzelnen Bürgers und die individuellen Anstrengungen zur Verwirklichung eines besseren Ideals hervorhebt. Zudem empfand ich die Ähnlichkeit darin, dass Rechte mit Verantwortung einhergehen.
  • Java (Einmal schreiben, überall ausführen): Ich weiß es nicht. Es gibt strenge Gesetze, man lebt ein standardisiertes Leben, während man sie befolgt, aber es ist stabil, und innerhalb dieses Rahmens ist man frei. Und wenn man in Spring eintritt, warten verschiedene Sozialleistungen auf einen. Soll ich es Liberalismus nennen?
  • C# (Harmonie zwischen Entwicklerproduktivität und Software Engineering Prinzipien): Unter dem Schutz einer starken Regierung ist alles gut konzipiert, und innerhalb des Geplanten kann die Produktivität und Leistung maximiert werden. Planwirtschaft passt. Der Unterschied zum Kommunismus ist, dass die Produktionsmittel freigegeben sind und die Produzenten nicht eingeschränkt werden.
  • Go (Komplexität ablegen, Pragmatismus und Effizienz annehmen): Es gibt nichts Vergleichbares. Da alles verteilt wird, nennen Sie es Wohlfahrtsstaat.
  • Rust (Sicherheit ohne Leistungseinbußen): Die Eigentümerschaft (Ownership) und Lebensdauer (Lifetime) von Rust werden von einem strengen Compiler als Herrscher verwaltet. Dies ähnelt dem Sozialismus, da er die Ungleichheit und Risiken, die durch die freie wirtschaftliche Tätigkeit des Einzelnen entstehen, verhindern will, indem die Gemeinschaft die Produktionsmittel verwaltet und plant, um ein stabiles Leben zu gewährleisten. Dies schränkt die individuelle Freiheit teilweise ein, um die Sicherheit und Gleichheit des gesamten Systems zu verfolgen.
  • JavaScript (Flexibilität, Toleranz und Allgegenwart): Ich möchte es mit dem Kapitalismus vergleichen. Bei dieser Sprache besitzt jeder Einzelne die Produktionsmittel, und sogar die Ausrüstung ist reichlich vorhanden. Dadurch entstehen diverse Konsumgüter, und durch freien Wettbewerb kann jeder Gewinn anstreben. Aber ein ungeregelter Markt geriet bald ins Chaos.
  • TypeScript (Erweitertes JavaScript): Das ist natürlich der modifizierte Kapitalismus. Der Glaube an den Kapitalismus wird erschüttert, und die Regierung greift in gewissem Maße ein, um die Instabilität des Marktes zu überwinden. Die ursprüngliche vollständige Freiheit ist relativ zurückgegangen, aber jeder konkurriert weiterhin frei auf dem Markt.

Und nicht wenige Entwickler streiten sich, ähnlich wie in einem Ideologiekrieg in der Realität, oft über Sprachen. Die Sprache selbst ist quasi die Ideologie, mit der der Entwickler vertraut ist, und das Ideal, das angestrebt werden soll.

Staat und Architektur

  • Monolithische Architektur und zentralisierter Staat: Alles ist in einer riesigen Codebasis und einem Binary enthalten. Dies ähnelt der Struktur eines Einheitsstaates mit einer starken Zentralregierung oder einer absoluten Monarchie. Alle Funktionen des Staates werden von einer einzigen Machtstruktur kontrolliert.
    • Der Vorteil ist, dass es am einfachsten ist, die Form eines Staates anzunehmen, und Entscheidungen schnell getroffen werden können. Dies steht im Einklang mit dem Vorteil, dass die gesamte Software schnell fertiggestellt wird. Da alle Ressourcen und Informationen an einem Ort gebündelt sind, ist die Verwaltung übersichtlich.
    • Allerdings wird es schwieriger, auf Veränderungen zu reagieren, je größer der Staat wird. Selbst um ein kleines Gesetz oder eine Regel zu ändern, muss das Ganze überprüft und angewendet werden. Es besteht auch das Risiko, dass ein Problem in einem Bereich den gesamten Staat lähmt. Auch die Monolithische Architektur hat Schwierigkeiten, auf Änderungen zu reagieren, aufgrund der großen Codebasis und des verwobenen Codes, und ein Problem, das in einem Modul auftritt, kann leicht das gesamte System beeinflussen.
  • MSA (Microservices Architecture) und föderaler Staat: Die Funktionen des Systems sind in unabhängige Services unterteilt. Dies weist Ähnlichkeiten mit einem föderalen Staat auf, in dem die Teile des Staates aus mehreren unabhängigen Ländern bestehen. Auch jeder Service und jeder Staat hat eine unabhängige Infrastruktur. Die Einmischung der Zentralregierung ist locker, und die Ungewissheit, wann eine Unabhängigkeit oder ein Beitritt erfolgt, ist ebenfalls ähnlich.
    • Grundsätzlich können die unabhängigen Länder und Services unabhängig Gesetze ändern/Code schreiben. Dadurch müssen sie sich nicht gegenseitig anpassen. Auch wenn an einem Ort ein Problem auftritt, ist es schwierig, dass die gesamte Föderation gelähmt wird. Und es können geeignete Institutionen (Technologien) entsprechend der Region oder dem Bereich gewählt werden.
    • Es ist jedoch schwierig, sich gegenseitig abzustimmen oder Kommunikationskanäle zu schaffen. Es kann schwierig sein, eine konsistente Politik zu verfolgen, was zu Verwirrung führen kann.
  • EDA (Event-Driven Architecture) und Zivilgesellschaft: Anstatt dass die Zentralregierung oder ein Stellvertreter direkte Befehle erteilen, nehmen Einzelpersonen die aufgetretenen sozialen Probleme proaktiv und autonom in Angriff und lösen sie. Dies ähnelt dem Merkmal von EDA, bei dem, wenn ein Event auftritt, jemand von den Abonnenten autonom die Aufgabe übernimmt und bearbeitet.
    • Jeder kann leicht teilnehmen. Auch bei EDA kann ein neuer Service leicht ein neuer Abonnent werden und am Prozess teilnehmen.
    • Es gibt jedoch den Nachteil, dass der gesamte Ablauf nicht erfasst werden kann. Es ist schwierig nachzuverfolgen, wer was wie verarbeitet hat, und es ist unklar, welche Kettenreaktionen ein einzelnes Ereignis auslösen wird.
  • Layered Architecture und Feudalismus: Der Feudalismus ist eine Struktur, in der jede Schicht ihre zugewiesene Rolle und Verantwortung erfüllt und Pflichten gegenüber der übergeordneten Schicht wahrnimmt. Sie sind durch eine Art Vertragsbeziehung verbunden und bilden eine strenge vertikale Hierarchie, was Ähnlichkeiten mit der Layered Architecture aufweist.

Obwohl noch mehr Vergleiche möglich wären, liegt der Kern dieses Artikels weniger in der Struktur selbst als vielmehr im Prozess ihrer Entstehung.

Ist die Problemlösung in Entwicklung und Politik vielleicht gleich?

Wenn Software-Architektur und Staatsform Ähnlichkeiten aufweisen, verläuft auch der Prozess ihrer Entstehung erstaunlich parallel. Der Prozess der Softwareentwicklung unterscheidet sich im Grunde nicht von einem politischen Akt, bei dem eine neue Ordnung im digitalen Raum aufgebaut und weiterentwickelt wird.

  1. Öffentlichmachung sozialer Probleme und Anforderungsanalyse: Alles beginnt mit der Frage: "Was ist das Problem?" So wie die Leiden und Unannehmlichkeiten der Zivilgesellschaft öffentlich gemacht und zu politischen Agenden werden, werden die Unannehmlichkeiten und Anforderungen der Benutzer durch Analyse zum ersten Meilenstein der Entwicklung, dem 'Anforderungsspezifikationsdokument'.
  2. Verfassungsentwurf und Architektur-Design: Welchen Staat soll man schaffen? Welches System soll man schaffen? So wie Politiker auf der Grundlage von Ideologie und Philosophie das Gerüst von Verfassung und Gesetzen errichten, entwirft der Architekt auf der 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. Umsetzung von Politik und Software-Implementierung: Sobald der Entwurf fertig ist, schreiben die Entwickler den tatsächlichen Code, und die Verwaltungsbeamten setzen die Politik gemäß den Gesetzen um. Es ist der Prozess, in dem abstrakte Pläne zu konkreten Realitäten werden, die in der realen Welt funktionieren.
  4. Urteil durch Wahlen und Software-Tests: Die Politik wird durch Wahlen und die öffentliche Meinung auf ihre Legitimität hin beurteilt. Software wird durch Tests des QA-Teams und Feedback von Benutzern auf ihren Wert hin überprüft. Beide können nur überleben, wenn sie die Zustimmung des Souveräns (Bürger, Benutzer) erhalten.
  5. Reform der Institutionen und Systemwartung: Ein einmal geschaffenes Gesetz und System ist nicht ewig. So wie alte Gesetze geändert und Institutionen reformiert werden, um sich den Veränderungen der Zeit anzupassen, wird Software zu totem Code, sobald das 'Refactoring' zur Anpassung an sich ändernde Umgebungen und zur Verbesserung interner Ineffizienzen eingestellt wird.

Dieser gesamte Prozess, von der Problemdefinition über den Entwurf, die Implementierung, die Verifizierung bis hin zur kontinuierlichen Verbesserung, zeigt, dass die beiden Welten denselben Rhythmus der Problemlösung teilen.

Der Tag der neuen Gesetzgeber

Die Informationsgesellschaft hat die Distanz zwischen den Gipfeln dieser beiden Philosophien bedeutungslos gemacht. Code ist nicht länger nur eine einfache logische Schaltung, sondern ein 'Gesetz (Code is Law)', das die Beziehungen zwischen Menschen regelt, Macht verteilt und soziale Werte verwirklicht. Wenn die von uns entworfene Architektur der Regierungsstruktur eines Staates ähnelt und der von uns befolgte Entwicklungsprozess dem politischen Konsensprozess gleicht, wer sind wir Entwickler dann eigentlich? Und was sollten Politiker tun? Daher müssen Entwickler nun nicht nur die Logik des Codes, sondern auch die Gesellschaft, die dieser Code schafft, reflektieren, und Politiker müssen nicht nur die Logik der Stimmen, sondern auch die Logik der Technologie verstehen, die die Welt bewegt. Denn die immense Macht, die wir in unseren jeweiligen Welten ausüben, ist mit einer entsprechenden ethischen Verantwortung verbunden.