La programación antes de la inteligencia artificial generativa.
En la actualidad, la programación se ha vuelto asequible para prácticamente la totalidad de usuarios. Hoy en día un usuario puede crear un sistema completo haciendo uso exclusivo de prompts, sin apenas tener conocimientos previos.
Aunque estos sistemas generados por agentes de IA distan mucho de ser perfectos, explorar ese aspecto no es el propósito de este artículo.
La finalidad real de este artículo es exponer como era la programación en la era <<B.C.>> (Before ChatGPT), desde el punto de vista de un desarrollador de software que comenzó sus andadas a mediados de la década pasada.
Creo que debería considerarme afortunado, ya que ciertamente pese a no ser un veterano de los años 80´s o 90´s, si tuve la fortuna de crecer en un entorno rural dentro de México, aspecto que me permitió ver y experimentar de primera mano el cambio de lo analógico a lo digital.
Tanto es así, que mi primera interacción con el mundo de la informática no fue siquiera con un monitor CRT, sino con un pequeño libro que exponía las características y ventajas de los sistemas operativos Windows 9X. Está de más decir, que dicha lectura me resultó fascinante y me impulsó a continuar un aprendizaje autodidacta sobre tan maravillosas tecnologías.
Así que, tras divagar por un rato, es momento de dejar de explayar las tangentes y concentrarnos en responder la pregunta clave que nos ha reunido en esta ocasión, ¿Cómo era la programación antes de la era de la inteligencia artificial generativa?
La respuesta es: objetivamente igual en sus fundamentos, abismalmente diferente en cuanto a implementación. Me explico, mientras que, en la actualidad, una gran parte de los desarrolladores modernos al pensar en crear un proyecto nuevo abren instintivamente VSCode, con sus plugins y herramientas IA integradas, hace tan solo un par de lustros, esa misma acción significaba en el caso de un desarrollador Senior el abrir el IDE propietario que empleaba la empresa que lo empleaba, pero en el caso de un Junior, crear un nuevo proyecto implicaba en muchos aspectos conformarse con abrir aun un bloc de notas.
Suena como una fantasia irreal sacada de los años 80´s, imposible en plena época de los 2000, sin embargo, es real, porque cabe recordar que los dev Junior de esa época aun aprendían con recursos anticuados, de hecho, muchos profesores de programación promovían ese tipo de aprendizaje, desdeñando a las herramientas modernas y a quienes las empleaban.
Realmente mis primeros proyectos tanto C como HTML, fueron desarrollados de esta manera, abriendo un bloc de notas y una terminal a su lado. No fue sino hasta años después, cuando termine mi bachillerato y continúe mis estudios de programación de forma autodidacta (previo a mi entrada a la universidad) que conocí mi primer editor de código “moderno”, un editor de nombre “Brackets”, el cual curiosamente, ya no existe en la actualidad y fue reemplazado por un proyecto Open source de nombre “Phoenix Code” el cual dista de sobremanera a lo que alguna vez fue Brackets.
Pese al salto tecnológico que represento para mi Brackets, este seguía resultando realmente limitado en cuanto a características, ya que fuera del indentado automático y del live server para proyectos web, no contaba con herramientas avanzadas para la detección y corrección de errores, además de que su soporte para lenguajes era limitado.
Eso nos lleva a otro aspecto en particular de la programación de antaño, la resolución de errores.
Hoy en día resolver un bug es tan sencillo como escribir “Chat explica este error”, mientras adjuntas una captura de pantalla con el mensaje que te marco VSCode. Lamentablemente eso resultaba imposible antes, en aquellos tiempos, resolver un error implicaba navegar la documentación de la herramienta que ocupabas por horas, si eso fallaba, siempre podías navegar foros con la esperanza de que alguien ya se haya topado con ese mismo error antes y de no ser así, abrir una nueva discusión sobre tu error con la esperanza de que eventualmente alguien respondiera.
Esto implica que, para desarrolladores Junior, en algunos casos la resolución de un bug podría llegar a tomar días e incluso semanas, como ejemplo personal yo podría mencionar la ocasión que tardé una semana en encontrar una solución a un error que encontré al cambiar de SO de Windows a Ubuntu, error causado por no haber instalado correctamente unas dependencias que necesitaba. Aunque claro, tanta exposición a documentación, termino por otorgarme una mejor comprensión sobre el sistema.
Lo que nos lleva a expresar a manera de conclusión que resulta innegable el hecho de que las herramientas de IA han hecho de la programación una experiencia más sencilla y accesible para un número cada vez mayor de individuos, mientras que permiten que los desarrolladores ya veteranos, podamos expandir nuestros proyectos de formas más ambiciosa gracias a la automatización de procesos.
Aunque tampoco podemos negar, que tantas facilidades, pueden hacer que perdamos ese espíritu casi aventurero y explorativo que nos caracterizaba anteriormente, ese sentido de navegar por la web, investigando cual detectives o el sentimiento de comunidad y unión que generaban los cada vez menos visitados foros.
Tal vez esto último resulte un sesgo personal, una especie de nostalgia por una época que sé que no volverá, más, sin embargo, quiero contemplar ese posible sesgo como una ventaja, ya que representa mi humanidad, humanidad que aún resulta inalcanzable para los modelos de IA actuales.
Desconozco completamente cómo será el desarrollo de software del futuro, con tantos avances resulta difícil especular sobre herramientas, frameworks o lenguajes; pero de lo que, si estoy seguro, es que, en la programación del mañana, seguirá habiendo un humano detrás de la pantalla, ya que nuestra capacidad de imaginar e innovar aún resulta irreplicable.