GoSuda

Política y Computadoras

By snowmerak
views ...

¿Qué es la filosofía?

¿Qué cree que es la filosofía? El significado del diccionario es "la actividad de pensar y encontrar respuestas a las preguntas fundamentales de la vida y el mundo". También se puede dar una definición conductual, que es una expansión del pensamiento a través de la misma pregunta, o una serie de preguntas que se suceden, y compartir esas respuestas, en lugar de resolver problemas con respuestas fijas.

En el pasado, mientras completaba mi licenciatura, tomé un curso relacionado con la filosofía política. Recuerdo que durante mi presentación, el profesor dijo algo similar a "la filosofía política y la informática son disciplinas en la cúspide de diferentes filosofías". Aunque no fueron exactamente esas palabras y oración, creo que ese era el significado general.

Ingeniería Informática

Considero que la ingeniería informática es una "exploración fundamental para resolver problemas lógicos". Por lo tanto, pueden surgir varias respuestas para un mismo problema, dependiendo de la persona que lo analice. El ejemplo más representativo es la ordenación. Incluso en la exploración de cómo ordenar datos listados, existen varios métodos como bubble, insertion, selection, merge, quick, heap, team, etc. Y al dividirlos, pueden surgir algoritmos mejores.

Además, desde una perspectiva local, se podría decir que se trata de "construir y demostrar". La ordenación mencionada anteriormente también se construye continuamente y se demuestran los resultados. Para los desarrolladores, un ejemplo más cercano es cuando surge una planificación de proyecto, se implementa y se demuestra que funciona correctamente.

Filosofía Política

Considero que la filosofía política es una "exploración fundamental para resolver problemas sociales". En cada época, se cuestionan repetidamente los problemas ya existentes, se producen respuestas y se comparten en el presente y el futuro. Se ocupa principalmente de valores abstractos como la justicia, la libertad, la igualdad y el poder, que se interpretan de manera diferente según la época y la cultura. No hay un bien y un mal claros, ni respuestas correctas e incorrectas definidas, y se caracteriza por su indeterminación.

Además, al igual que la ingeniería informática, desde una perspectiva local, se podría considerar "cuestionar y reflexionar". Se cuestiona incesantemente el problema que ha surgido, se reflexiona sobre por qué sucedió, cuáles son las mejores direcciones, y se producen respuestas. También aquí, aparecen muchas respuestas en proporción al número de personas que piensan.

¿Por qué debemos conocer la política y la informática?

Relación de interllamada

Aunque estos dos mundos parecen explorar áreas diferentes, en realidad comparten similitudes significativas y tienen muchos puntos en los que uno es causa y el otro efecto.

Permítame dar un ejemplo.

  1. Si los datos de salud individuales se almacenan de forma segura en la nube, los hospitales podrán acceder a ellos rápidamente cuando sea necesario. ⇒ Esto se implementa utilizando funciones de cada dominio para que sea seguro y accesible mediante programación.
  2. Entonces, ¿de quién son esos datos? ¿Míos? ¿Del responsable registrado? ¿O de la entidad organizadora? ¿De la empresa desarrolladora? ¿Del Estado? Entonces, ¿hasta dónde pueden ver mis datos? ¿Hasta dónde puedo garantizar la protección de mi información personal y cómo? ⇒ Habrá un discurso político sobre las posiciones y diferencias de intereses entre las diferentes comunidades y los individuos.
  3. Después de esto, el discurso político y el diseño e implementación programáticos se repetirán en una secuencia continua.

De este modo, la ingeniería informática se utiliza para resolver problemas sociales existentes, y luego la filosofía política se utiliza para identificar y resolver los problemas que surgen de aquí, planteando preguntas para resolver el siguiente problema. En la sociedad de la información moderna, esto es un fenómeno natural.

¿Son la política y la informática similares?

Puntos que no lo parecen

Además, ambos mundos han evolucionado de formas similares. Sin embargo, su base fundamental, al igual que la relación entre la filosofía social y la filosofía natural, presenta una diferencia entre expresiones ambiguas y expresiones claras. Mientras que la filosofía política se basa en definiciones variables y ambiguas compuestas de lenguaje natural, la informática se basa en proposiciones invariables y claras compuestas de fórmulas, más que de lenguaje natural.

Además, la direccionalidad también se expresa de forma sutilmente diferente. La ingeniería informática considera que puede existir una solución óptima. Y en la filosofía política se habla de conceptos ambiguos como argumentos más persuasivos, argumentos más fundamentados, argumentos más éticos. Sin embargo, en mi opinión, la direccionalidad de ambos es casi similar. Al final, parece que buscan "un siguiente mejor". Aunque la ingeniería informática tiene diversos campos, por ejemplo, en la compresión de medios, conocida como códec, se esfuerzan por mostrar una mejor tasa de compresión, rendimiento de compresión y costos de licencia.

Puntos que parecen similares

En particular, los lenguajes de programación y las ideologías políticas parecen aplicarse de manera similar a los seres humanos. Aunque no se pueden corresponder directamente cada lenguaje e ideología, los enumeraré por diversión.

  • Lenguaje C (El desarrollador sabe lo que está haciendo): Me gustaría compararlo con el republicanismo. Históricamente, es similar a la república que fue la base de los sistemas políticos occidentales, y también se asemeja al comunitarismo que enfatiza la conciencia individual de los ciudadanos y los esfuerzos individuales para avanzar hacia un ideal mejor. Además, sentí que la responsabilidad que acompaña a los derechos es similar.
  • Java (Escribe una vez, ejecuta en cualquier lugar): No lo sé. Hay leyes poderosas, y se vive una vida estandarizada cumpliéndolas, pero es estable y dentro de ella se es libre. Y al entrar en Spring, les esperan diversos beneficios. ¿Lo llamamos liberalismo?
  • C# (Armonía entre la productividad del desarrollador y los principios de la ingeniería de software): Bajo el amparo de un gobierno fuerte, todo está bien diseñado, y dentro de lo planificado, se puede maximizar la productividad y el rendimiento. La economía planificada encaja bien. La razón por la que no es comunismo es que se han liberado los medios de producción y no se restringe a los productores.
  • Go (Desecha la complejidad, adopta la practicidad y la eficiencia): No hay nada similar. Ya que se da todo, que sea un estado de bienestar.
  • Rust (Seguridad sin pérdida de rendimiento): La propiedad y el tiempo de vida de Rust son gestionados por un compilador estricto. Esto me hace pensar en el socialismo, ya que para evitar la desigualdad y los riesgos que produce la actividad económica libre de los individuos, la comunidad gestiona y planifica los medios de producción para garantizar una vida estable, y busca la seguridad y la igualdad de todo el sistema limitando en parte la libertad individual.
  • JavaScript (Flexibilidad, tolerancia y omnipresencia): Me gustaría compararlo con el capitalismo. En este lenguaje, los individuos poseen los medios de producción, e incluso las instalaciones son abundantes para los individuos. Gracias a esto, surgieron diversos productos manufacturados, y a través de la libre competencia, cualquiera pudo buscar ganancias. Sin embargo, un mercado sin regulación pronto cayó en el caos.
  • TypeScript (JavaScript extendido): Obviamente es el capitalismo modificado. La confianza en el capitalismo se rompe, y para superar la inestabilidad del mercado, el gobierno interviene hasta cierto punto. La libertad total anterior ha retrocedido comparativamente, pero cualquiera sigue siendo libre de entrar y competir en el mercado.

Y sorprendentemente, no pocos desarrolladores luchan con los lenguajes como si estuvieran librando una guerra ideológica en la realidad. El lenguaje en sí es una ideología familiar para el desarrollador y un ideal al que aspirar.

Nación y Arquitectura

  • Arquitectura monolítica y Estado centralizado: Todo está incluido en una base de código gigante y un único binario. Esto tiene una estructura similar a un estado único con un gobierno central fuerte o una monarquía absoluta. Todas las funciones del estado son controladas por un único sistema de poder.
    • Tiene la ventaja de ser la forma más fácil de establecer un estado y de tomar decisiones rápidamente. Esto es similar a la ventaja de que el software completo se lanza rápidamente. Todos los recursos e información se concentran en un solo lugar, lo que facilita la gestión.
    • Sin embargo, a medida que el estado crece, se vuelve más difícil adaptarse a los cambios, y para cambiar una pequeña ley o sistema, se debe revisar y aplicar todo. También existe el riesgo de que un problema en un área paralice a todo el país. El monolítico también es difícil de adaptar a los cambios debido a su gran base de código y código interconectado, y para cambiar una sola línea de código, se debe estimar el alcance del impacto, y un problema en un módulo puede afectar fácilmente a todo el sistema.
  • MSA y Estado federal: Cada función del sistema se separa en servicios independientes. Esto tiene similitudes con un estado federal donde cada parte del país se compone de varios estados independientes. Además, cada servicio y estado tiene una infraestructura independiente. La interferencia del gobierno central es laxa, y también es similar que no se sabe cuándo ocurrirá la independencia y la adhesión.
    • Básicamente, cada estado y servicio independiente puede enmendar leyes/escribir código de forma independiente. Esto elimina la necesidad de sincronizar sus ritmos. Además, incluso si surge un problema en un lugar, es difícil que toda la federación se paralice. Y se pueden seleccionar sistemas (tecnologías) apropiados según cada región o campo.
    • Sin embargo, lograr un acuerdo mutuo o crear canales de comunicación es difícil. Es difícil implementar políticas coherentes, lo que puede causar confusión.
  • EDA (Arquitectura Dirigida por Eventos) y sociedad civil: En lugar de que el gobierno central o los representantes den órdenes directamente, los individuos toman la iniciativa de abordar y resolver los problemas sociales que surgen de forma autónoma. Esto es similar a la característica de EDA donde, cuando ocurre un evento, alguien entre los suscriptores lo toma y lo procesa de forma autónoma.
    • Cualquiera puede participar fácilmente. EDA también permite que los nuevos servicios se conviertan fácilmente en nuevos suscriptores y participen en el proceso.
    • Sin embargo, tiene la desventaja de que no se puede captar el flujo general. Es difícil rastrear quién procesó qué y cómo, y no se sabe qué reacción en cadena puede provocar un solo evento.
  • Arquitectura en capas y feudalismo: El feudalismo es una estructura en la que cada capa cumple con sus roles y responsabilidades asignados y cumple con sus obligaciones hacia la capa superior. Se establecen mediante una especie de relación contractual y forman una estructura de gobierno vertical estricta, lo que permite encontrar similitudes con la arquitectura en capas.

Aunque se podrían hacer muchas más analogías, el punto central de este artículo no es la estructura en sí, sino el proceso de creación de esa estructura.

¿La resolución de problemas en el desarrollo y la política podría ser la misma?

Si la arquitectura de software y el sistema estatal son similares, el proceso de creación de ambos también sigue un paralelismo sorprendente. El proceso de desarrollo de software es, de hecho, no diferente de un acto político de establecer y desarrollar un nuevo orden en el espacio digital.

  1. Publicitación de problemas sociales y análisis de requisitos: Todo comienza con la pregunta "¿Cuál es el problema?". Así como el sufrimiento y la incomodidad de la sociedad civil se publicitan y se convierten en una agenda política, la incomodidad y los requisitos del usuario, después de un análisis, se convierten en el primer hito del desarrollo: la "especificación de requisitos".
  2. Diseño de la constitución y diseño de la arquitectura: ¿Qué tipo de nación se construirá? ¿Qué tipo de sistema se construirá? Así como los políticos, basándose en la ideología y la filosofía, establecen el esqueleto de la constitución y las leyes, los arquitectos, basándose en sus creencias técnicas, elaboran el plan de la arquitectura que será la base del sistema. Las decisiones en esta etapa determinan el destino del sistema.
  3. Implementación de políticas e implementación de software: Una vez que se completa el diseño, los desarrolladores escriben el código real y los funcionarios administrativos implementan las políticas de acuerdo con la ley. Es el proceso en el que un plan abstracto se convierte en una entidad concreta que funciona en el mundo real.
  4. Juicio a través de elecciones y pruebas de software: Las políticas son juzgadas por su legitimidad a través de elecciones y la opinión pública. El software es validado por su valor a través de las pruebas del equipo de QA y la retroalimentación del usuario. Ambos solo pueden sobrevivir si obtienen el consentimiento de los soberanos (ciudadanos, usuarios).
  5. Reforma institucional y mantenimiento del sistema: Una vez creadas, las leyes y los sistemas no son eternos. Así como las leyes antiguas se revisan y las instituciones se reforman para adaptarse a los cambios de los tiempos, el software se convierte en código muerto en el momento en que deja de adaptarse a los entornos cambiantes y de mejorar las ineficiencias internas a través del 'refactoring'.

De este modo, todo el proceso, desde la definición del problema hasta el diseño, la implementación, la verificación y la mejora continua, demuestra que ambos mundos comparten el mismo ritmo de resolución de problemas.

El día de los nuevos legisladores

La sociedad de la información ha hecho que la distancia entre las cúspides de esas dos filosofías sea insignificante. El código ya no es un simple circuito lógico, sino una "ley (Code is Law)" que regula las relaciones entre las personas, distribuye el poder y materializa los valores sociales. Si la arquitectura que diseñamos se asemeja a la estructura de gobierno de una nación, y el proceso de desarrollo que seguimos es similar al proceso de consenso político, ¿quiénes somos nosotros, los desarrolladores? ¿Y qué deberían hacer los políticos? Por lo tanto, los desarrolladores ahora deben reflexionar no solo sobre la lógica del código, sino también sobre la sociedad que ese código creará, y los políticos deben comprender no solo la lógica de los votos, sino también la lógica de la tecnología que mueve el mundo. Esto se debe a que el inmenso poder que ejercemos en nuestros respectivos mundos conlleva una responsabilidad ética igualmente grande.