Aunque la codificación puede ser tediosa, aburrida o estresante, alejarse para reflexionar sobre lo extraordinaria que es la programación de software puede traer de vuelta la maravilla.
Los humanos somos muy divertidos: pasamos muy rápido de sentirnos maravillados por la hazaña improbable del vuelo humano a irritarnos por el tiempo que nos lleva esperar en un aeropuerto. El tráfico nos antagoniza rutinariamente, pero sólo ocasionalmente nos sorprende la existencia de una cosa llamada “automóvil”.
Uno de los ejemplos más destacados de logros humanos recientes es lo que llamamos un lenguaje de programación. Revisar las proezas mentales olímpicas que marcan la historia de su creación le ayudará a redescubrir la naturaleza casi fantástica de la programación.
El programador, como el poeta
Frederick P. Brooks, Jr., en su influyente colección Mythical Man Month escribe: “El programador, como el poeta, trabaja sólo ligeramente alejado de la materia pura del pensamiento”. Esa es una afirmación digna de reflexión. Para el programador que trabaja y cualquier persona involucrada en ayudarlos a tener éxito, puede servir para despertar la inspiración latente.
Podríamos decir que la programación es una actividad que se mueve entre lo mental y lo físico. Incluso podríamos decir que es una forma de interactuar con la naturaleza lógica de la realidad. El programador se salta alegremente la división mente-cuerpo que tanto ha confundido a los pensadores.
“Admitido esto, podemos proponernos ejecutar, por medio de maquinaria, la rama mecánica de estos trabajos, reservando para el intelecto puro lo que depende de las facultades de razonar”. Así lo dijo Charles Babbage , creador del concepto de computadora digital programable.
Babbage concibió la informática en el siglo XIX. Él y su colaboradora Ada Lovelace no concibieron un nuevo trabajo, sino un medio completamente nuevo. Obtuvieron del éter una base física para nuestras ideas, una forma de ponerlas a prueba concreta y ponerlas a disposición de otras personas en esa forma para su consideración y elaboración.
En mi propia vida de estudiar filosofía, descubrí el descontento de la forma de pensamiento cuyo caucho nunca llega a la carretera. En este sentido, el Sr. Brooks completa su pensamiento anterior cuando escribe: “Sin embargo, la construcción del programa, a diferencia de las palabras del poeta, es real en el sentido de que se mueve y funciona, produciendo resultados visibles separados de la construcción misma”.
A lo largo de los siglos se promulgó una especie de danza en cámara lenta entre el desarrollo mental y el mecánico para llegar a lo que ahora podemos llamar en el navegador con un movimiento casual de la tecla F12.
Considere este telar programable del siglo XVIII y el papel que juega en el cuento. Es interesante observar una máquina barroca para tejer algorítmicamente y ver tarjetas perforadas que son análogos precisos y antepasados de las tarjetas perforadas de las primeras computadoras. La interacción del pensamiento condensado y las máquinas enrarecidas finalmente se encuentran en el lenguaje de programación moderno.
Maravilla asombrada
Para una mirada más cruda y práctica al desarrollo de la programación, vea la ambiciosa historia de Ron Pressler, Finite of Sense and Infinite of Thought. Desde los vacilantes pasos de bebé de la antigüedad hasta los impresionantes saltos como Babbage y Turing, existe la sensación de moverse hacia algo que no se entiende completamente, pero que se siente intuitivamente. Estamos en una época de realización de la amplia promesa de esta cosa.
El relato del Sr. Pressler avanza resueltamente hacia la tormenta de detalles matemáticos y lógicos, pero antes de emprender el viaje, escribe que “la maravilla asombrada es una poderosa herramienta de marketing, pero desconcierta en lugar de aclarar”. Aquí entendemos que la advertencia es para evitar caer en modas y modas de programación. Este es un buen consejo.
Por otro lado, no queremos caer por el precipicio hacia el otro lado.
Será en detrimento nuestro si prescindimos por completo del asombro. Es saludable y vital mantener viva la inspiración, levantar la cabeza del trabajo, alejarse para tener perspectiva.
Realmente no hay razón para divorciar la alegría de codificar de la disciplina. De hecho, esa es una receta para la insatisfacción. El agotamiento en TI es rampante . Tiene que haber más asombro, no menos.
Turing-completo
Un momento clave en la historia de la programación es la máquina universal de Alan Turing. Es una hazaña mental que podemos señalar al reconocer que la programación se logró a un alto costo intelectual (y un gran costo personal en el caso de Turing). La dificultad de mantener en la mente la idea de un sistema autorreferencial que pueda describirse a sí mismo y a los programas que ejecuta. Hoy usamos computadoras que almacenan tanto la información como las instrucciones para trabajar con ella en el mismo espacio de memoria.
Esta idea fue retomada por Von Neumman para su arquitectura , que sustenta el funcionamiento de las computadoras modernas. Es una de esas cosas “obvias una vez que se hace”: la capacidad de almacenamiento de datos del sistema también se aprovecha para su código. Sin embargo, antes de que esté hecho, es cualquier cosa menos obvio.
Podemos decir con certeza que una máquina completa de Turing que se realiza y está comúnmente disponible es algo no solo impresionante, sino que, hasta hace relativamente poco, ni siquiera era fácilmente concebible. Los conceptos básicos para envolver la mente a su alrededor aún no eran claramente discernibles.
Llega la interacción humana
Todo lo que hemos dicho hasta ahora se ha centrado en la naturaleza de la programación en sí. Otro aspecto importante que debemos mencionar es el efecto que ha tenido en la interacción humana. Ya sea que las computadoras evolucionen hacia una singularidad o no , el efecto general de la capacidad mejorada de la humanidad para comunicarse a través del software es un hito.
Cuando se mira desde este ángulo, el software habilitado para la web se ve como la metáfora familiar del ciberespacio, un nuevo tipo de medio para la interacción.
Teniendo en cuenta lo que hemos descrito antes, el puente entre lo mental y lo físico, este paisaje ofrece una oportunidad única para interactuar entre sí en gran medida en el ámbito del pensamiento con el apoyo de una estructura lógica ejecutable.
Cuando se une a la idea de Turing de un universo de máquinas potenciales construidas dentro del sistema, vemos el potencial de mundos de ideas que interactúan. Aquí se puede sentir que todavía estamos en progreso, todavía activos en el sentimiento de nuevas ideas para traerlas a la vida.
El futuro desarrollándose
Nuestro trabajo diario en la programación de software es parte del desarrollo continuo de realidades futuras impredecibles.
Quizás las ideas que se arremolinan en la esfera Web3.0, respaldadas por las innovaciones de Blockchain, jugarán un papel importante. Seguro que muchos piensan que sí. Otros discrepan vehementemente. De todas formas, y no por nada, Facebook cambió su nombre a Meta.
Quizás la computación cuántica tenga un papel preponderante. Después de todo, permite la interacción con un carácter inherentemente diferente de la realidad física subyacente, el de lo “no binario”.
Todas las cosas regresan a los humanos que usan los sistemas, hacen la programación y los ayudan a tener éxito. Recordemos que, ante todo, la tecnología está al servicio de las personas.
Los desarrolladores felices escriben mejor código, y eso es mejor para el resultado final, es cierto, pero el punto más fundamental es que los desarrolladores felices son personas felices.
Si puede, recuerde la sensación de posibilidad inherente a la apertura del código que hace que un programa funcione. Fue disparado no sólo con un interés técnico, sino con una calidad casi fantástica. ¿Y por qué no? Hace menos de cien años, un lenguaje de programación era una posibilidad vagamente percibida que podría o no convertirse en algo real.
Comments