GoSuda

Politique et Ordinateurs

By snowmerak
views ...

Qu'est-ce que la philosophie ?

Qu'est-ce que la philosophie, selon vous ? La définition du dictionnaire est "l'activité de penser aux questions fondamentales de la vie et du monde et de chercher des réponses". On pourrait aussi en donner une définition comportementale : il ne s'agit pas de résoudre des problèmes avec des réponses prédéfinies, mais d'étendre la pensée par une série de questions identiques ou en cascade, et de partager ces réponses.

Dans le passé, alors que je suivais un programme de premier cycle, j'ai eu l'occasion de prendre un cours lié à la philosophie politique. Je me souviens qu'à l'époque, lors de ma présentation, le professeur avait dit quelque chose de similaire à : "La philosophie politique et l'informatique sont des disciplines au sommet de philosophies différentes." Ce n'était pas exactement ces mots et cette phrase, mais c'était à peu près cela.

Informatique

Je considère l'informatique comme une "recherche fondamentale pour résoudre des problèmes logiques". C'est pourquoi différentes réponses peuvent émerger selon la personne qui réfléchit à un problème donné. L'exemple le plus représentatif est le tri. Même dans l'exploration des méthodes pour trier des données listées dans l'ordre, il existe plusieurs approches telles que le tri à bulles, par insertion, par sélection, par fusion, rapide, par tas, et Timsort. Et en les distinguant, de meilleurs algorithmes peuvent être produits.

De plus, d'un point de vue local, on pourrait dire qu'il s'agit de "créer et de prouver". Le tri mentionné ci-dessus, par exemple, consiste à créer continuellement des méthodes de tri et à prouver leurs résultats. Pour les développeurs, un exemple plus pertinent serait la planification de projet : il s'agit de l'implémenter et de prouver qu'elle fonctionne correctement.

Philosophie politique

Je considère la philosophie politique comme une "recherche fondamentale pour résoudre des problèmes sociaux". À chaque époque, elle interroge de manière répétée les problèmes déjà existants, produit des réponses et les partage dans le présent et pour l'avenir. Elle traite principalement de valeurs abstraites telles que la justice, la liberté, l'égalité et le pouvoir, qui sont interprétées différemment selon l'époque et la culture. Elle se caractérise par l'absence de bien et de mal clairs, de réponses justes ou fausses prédéfinies.

De plus, tout comme l'informatique, d'un point de vue local, on peut la considérer comme "questionner et réfléchir". Elle interroge sans cesse les problèmes qui surviennent, réfléchit aux raisons de leur apparition et aux meilleures directions à prendre, et formule des réponses. Là encore, de nombreuses réponses apparaissent, proportionnellement au nombre de personnes qui y réfléchissent.

Pourquoi devrions-nous connaître la politique et l'informatique ?

Relation d'invocation mutuelle

Bien que les deux mondes semblent explorer des domaines différents, ils partagent en réalité de nombreuses similitudes et présentent un nombre considérable de points où l'un est la cause et l'autre la conséquence.

Prenons un exemple.

  1. Si les données de santé individuelles sont stockées en toute sécurité dans le cloud, les hôpitaux pourront y accéder rapidement en cas de besoin. ⇒ Cela est implémenté en utilisant les fonctionnalités de chaque domaine, de manière sécurisée et accessible, grâce à la programmation.
  2. Alors, à qui appartiennent ces données ? À moi ? Au responsable enregistré ? Ou à l'organisateur principal ? Au développeur ? À l'État ? Et jusqu'où peuvent-ils consulter mes données ? Dans quelle mesure ma vie privée est-elle garantie et protégée ? ⇒ Des discussions politiques auront lieu entre les différentes communautés et les individus, concernant leurs positions et leurs divergences d'intérêts.
  3. Par la suite, ce processus de discussion politique, de conception et d'implémentation programmatique se répétera en cascade.

Ainsi, l'informatique est utilisée pour résoudre les problèmes sociaux existants, puis la philosophie politique est employée pour identifier et résoudre les problèmes qui en découlent, en posant des questions et en résolvant les problèmes suivants. Dans la société de l'information actuelle, c'est un phénomène naturel.

La politique et l'informatique sont-elles similaires ?

Points de divergence apparents

De plus, les deux mondes ont évolué sous des formes similaires. Cependant, leur fondement présente une différence entre l'expression ambiguë et l'expression claire, tout comme la relation entre la philosophie sociale et la philosophie naturelle. Alors que la philosophie politique se base sur des définitions variables et ambiguës formulées en langage naturel, l'informatique se fonde sur des propositions immuables et claires formulées en termes mathématiques plutôt qu'en langage naturel.

De plus, les orientations sont exprimées de manière subtilement différente. L'informatique estime qu'une solution optimale peut exister. Quant à la philosophie politique, elle parle de concepts ambigus tels que des arguments plus convaincants, des arguments mieux fondés, ou des arguments plus éthiques. Cependant, à mon avis, leurs orientations sont presque similaires. En fin de compte, elles semblent viser un "prochain meilleur". Immédiatement, bien que l'informatique ait divers domaines, notamment pour les codecs, qui sont la compression multimédia, elle s'efforce de présenter un meilleur taux de compression, des performances de compression et des coûts de licence.

Points de convergence apparents

De manière représentative, les langages de programmation et les idéologies de gouvernement semblent s'appliquer de manière similaire à l'être humain. Bien qu'il ne soit pas possible de faire correspondre chaque langage et chaque idéologie, je vais les énumérer par curiosité.

  • Langage C (Le développeur sait ce qu'il fait) : Je voudrais le comparer au républicanisme. Historiquement, il est similaire à la république, qui a été le fondement des systèmes politiques occidentaux, et il ressemble également au communitarisme, qui met l'accent sur la conscience individuelle des citoyens et leurs efforts pour atteindre un idéal meilleur. De plus, le fait que les droits s'accompagnent de responsabilités m'a semblé similaire.
  • Java (Écrire une fois, exécuter partout) : Je ne sais pas. Il y a des lois fortes, et on vit une vie uniformisée en les respectant, mais c'est stable et on y est libre. Et quand on entre dans le Spring, diverses aides sociales vous attendent. Devrais-je dire le libéralisme ?
  • C# (Harmonie entre la productivité du développeur et les principes d'ingénierie logicielle) : Sous le patronage d'un gouvernement fort, tout est bien conçu, et au sein de ce qui est planifié, la productivité et les performances peuvent être poussées à l'extrême. L'économie planifiée convient. La raison pour laquelle ce n'est pas le communisme est que les moyens de production ont été libérés et que les producteurs ne sont pas limités.
  • Go (Abandonner la complexité, adopter la praticité et l'efficacité) : Il n'y a rien de similaire. Puisqu'il donne tout, dites que c'est un État-providence.
  • Rust (Sécurité sans compromis sur les performances) : La propriété et la durée de vie de Rust sont gérées par un gouvernant strict, le compilateur. Cela s'apparente au socialisme, car pour prévenir les inégalités et les risques engendrés par l'activité économique libre des individus, la communauté gère et planifie les moyens de production pour assurer une vie stable, ce qui limite en partie la liberté individuelle afin de rechercher la sécurité et l'égalité de l'ensemble du système.
  • JavaScript (Flexibilité et tolérance, et omniprésence) : J'aimerais le comparer au capitalisme. Dans ce langage, les individus possèdent les moyens de production, et même les équipements en abondance. Grâce à cela, une grande variété de biens manufacturés sont produits, et chacun peut rechercher le profit par une concurrence libre. Cependant, un marché sans réglementation est vite tombé dans le chaos.
  • TypeScript (JavaScript étendu) : C'est évidemment le capitalisme modifié. La confiance dans le capitalisme est brisée, et pour surmonter l'instabilité du marché, le gouvernement intervient dans une certaine mesure. La liberté totale d'antan a relativement régressé, mais chacun reste libre de se lancer sur le marché et de concourir.

Et étonnamment, un nombre non négligeable de développeurs se disputent beaucoup sur les langages, comme s'ils menaient des guerres idéologiques dans la réalité. Le langage lui-même est une idéologie familière aux développeurs, et un idéal à poursuivre.

État et Architecture

  • Architecture monolithique et État centralisé : Une base de code gigantesque et un seul binaire contiennent tout. Cela ressemble à la structure d'un État unitaire doté d'un gouvernement central fort ou d'une monarchie absolue. Toutes les fonctions de l'État sont contrôlées par un seul système de pouvoir.
    • L'avantage est qu'il est plus facile de former un État et que les décisions sont prises rapidement. Cela est comparable à l'avantage d'un logiciel global qui est développé rapidement. Toutes les ressources et informations étant concentrées en un seul endroit, la gestion est claire.
    • Cependant, à mesure que l'État grandit, il devient difficile de s'adapter aux changements, et même pour modifier une petite loi ou institution, il faut tout examiner et appliquer. Il y a aussi le risque qu'un problème dans un domaine paralyse l'ensemble de l'État. De même, l'architecture monolithique rend difficile l'adaptation aux changements en raison d'une grande base de code et de codes liés, et même pour modifier une seule ligne de code, il faut estimer l'étendue de l'impact, et un problème survenant dans un module peut facilement affecter l'ensemble du système.
  • MSA et État fédéral : Chaque fonction du système est séparée en services indépendants. Cela présente des similitudes avec un État fédéral où chaque partie du pays est composée de plusieurs États indépendants. De plus, chaque service et chaque État possède une infrastructure indépendante. L'ingérence du gouvernement central est plutôt lâche, et la possibilité que des indépendances et des adhésions se produisent à tout moment est également similaire.
    • Fondamentalement, chaque État indépendant et chaque service peut réviser les lois / écrire le code de manière indépendante. Par conséquent, ils n'ont pas besoin de synchroniser leur rythme. De plus, même si un problème survient à un endroit, il est difficile de paralyser l'ensemble de la fédération. Et ils peuvent choisir les institutions (technologies) appropriées en fonction de chaque région ou domaine.
    • Cependant, il est difficile de parvenir à un accord mutuel ou de créer des canaux de communication. Il peut être difficile de mener une politique cohérente, ce qui peut entraîner de la confusion.
  • EDA (Event-Driven Architecture) et société civile : Plutôt que le gouvernement central ou les représentants ne donnent des ordres directs, les individus s'approprient et résolvent de manière autonome les problèmes sociaux qui surgissent. Cela est similaire à la caractéristique de l'EDA, où lorsqu'un événement se produit, un abonné le prend en charge et le traite de manière autonome.
    • Tout le monde peut facilement participer. L'EDA permet également à de nouveaux services de devenir facilement de nouveaux abonnés et de participer au processus.
    • Cependant, il y a l'inconvénient de ne pas pouvoir saisir le flux global. Il est difficile de savoir qui a traité quoi et comment, et il est impossible de prédire quelles réactions en chaîne un événement donné provoquera.
  • Architecture en couches et féodalisme : Le féodalisme est une structure où chaque couche remplit ses rôles et responsabilités assignés, exécutant ses obligations envers la couche supérieure. Elles sont liées par une sorte de relation contractuelle et forment une structure de domination verticale stricte, ce qui permet de trouver des similitudes avec l'architecture en couches.

Bien que de nombreuses autres comparaisons soient possibles, l'essence de cet article réside moins dans la structure elle-même que dans le processus de création de cette structure.

Le développement et la résolution de problèmes politiques sont-ils identiques ?

Si l'architecture logicielle et le système étatique se ressemblent, le processus de leur création suit également des chemins étonnamment parallèles. Le processus de développement logiciel est en fait un acte politique de construction et d'évolution d'un nouvel ordre dans l'espace numérique.

  1. Publicisation des problèmes sociaux et analyse des exigences : Tout commence par la question "Quel est le problème ?". De même que la souffrance et le malaise de la société civile deviennent un enjeu politique par leur publicisation, l'inconfort et les besoins des utilisateurs, après analyse, deviennent le premier jalon du développement : le "cahier des charges".
  2. Conception constitutionnelle et Architecture Design : Quel type de nation allons-nous créer ? Quel type de système allons-nous construire ? De même que les politiciens établissent l'ossature de la constitution et des lois basées sur des idéologies et des philosophies, les architectes dessinent le plan de l'architecture qui sera le fondement du système, basé sur des convictions techniques. Les décisions prises à ce stade déterminent le destin du système.
  3. Mise en œuvre des politiques et implémentation logicielle : Une fois le plan achevé, les développeurs écrivent le code réel, et les fonctionnaires administratifs mettent en œuvre les politiques conformément aux lois. C'est le processus par lequel un plan abstrait prend corps dans le monde réel.
  4. Jugement par les élections et test logiciel : Les politiques sont jugées sur leur légitimité par les élections et l'opinion publique. Les logiciels sont validés sur leur valeur par les tests de l'équipe QA et les retours des utilisateurs. Dans les deux cas, ils ne peuvent survivre qu'en obtenant le consentement des souverains (citoyens, utilisateurs).
  5. Réforme institutionnelle et maintenance du système : Une fois créées, les lois et les systèmes ne sont pas éternels. De même que les lois obsolètes sont révisées et les institutions réformées pour s'adapter aux changements de l'époque, un logiciel qui cesse de s'adapter à un environnement changeant et d'améliorer ses inefficacités internes par le 'refactoring' devient un code mort.

Ainsi, l'ensemble du processus, de la définition du problème à la conception, l'implémentation, la vérification et l'amélioration continue, montre que les deux mondes partagent le même rythme de résolution de problèmes.

La Journée des Nouveaux Législateurs

La société de l'information a rendu insignifiante la distance entre les sommets de ces deux philosophies. Le code n'est plus un simple circuit logique, mais une "loi (Code is Law)" qui régit les relations humaines, distribue le pouvoir et réalise les valeurs sociales. Si l'architecture que nous concevons ressemble à la structure de gouvernement d'une nation, et si le processus de développement que nous suivons est similaire au processus de consensus politique, qui sommes-nous, les développeurs ? Et que devraient faire les politiciens ? C'est pourquoi les développeurs doivent désormais réfléchir non seulement à la logique du code, mais aussi à la société que ce code créera, et les politiciens doivent comprendre non seulement la logique des votes, mais aussi la logique de la technologie qui fait bouger le monde. Car ce pouvoir immense que nous exerçons dans nos mondes respectifs s'accompagne d'une responsabilité éthique équivalente.