Hay una frase que, cada tanto, vuelve a aparecer en las discusiones sobre inteligencia artificial: “ya no hace falta aprender a programar”,
Jensen Huang, fundador y CEO de NVIDIA, fue bastante más lejos. En una intervención que se volvió viral, planteó que durante años se sostuvo que todos debíamos aprender programación, pero que el objetivo de la tecnología era precisamente conseguir que nadie tuviera que programar. Su formulación fue contundente: “el lenguaje de programación es el humano” y, por eso, “todo el mundo es ahora programador”.
La frase puede leerse como una provocación. También como una exageración. Pero hay algo mucho más interesante detrás de ella, porque quizás estamos mirando el cambio desde el lugar equivocado: La revolución de la inteligencia artificial no consiste únicamente en que una máquina pueda escribir Python, C#, JavaScript o cualquier otro lenguaje, lo verdaderamente novedoso es que, después de décadas de intentar aprender los lenguajes de las computadoras, las computadoras están empezando a aprender nuestros lenguajes; y eso modifica la relación entre las personas y las máquinas.
Primero tuvimos que aprender el idioma de la máquina
Durante buena parte de la historia de la computación, comunicarse con una computadora implicaba adaptarse a ella. Primero hubo que comprender la electrónica, los circuitos, la lógica, las instrucciones y las representaciones numéricas. Después aparecieron lenguajes cada vez más cercanos a nuestra forma de pensar como FORTRAN, COBOL, BASIC, C, C++, Java, Python, JavaScript, y C#. Los llamamos lenguajes de programación. La expresión está tan incorporada a nuestra vida que pocas veces nos detenemos a pensar en ella. Un lenguaje sirve para comunicarnos. Un lenguaje establece reglas, estructuras, símbolos y relaciones que permiten expresar una idea de manera comprensible para otro. Durante décadas, el programador tuvo que aprender una versión particular de ese idioma para conseguir que una computadora hiciera algo. Si quería decirle que guardara un dato, tenía que conocer la sintaxis correspondiente. Si quería que tomara una decisión, tenía que escribir un condicional. Si quería repetir una acción, necesitaba un ciclo. Si quería organizar una serie de datos, debía conocer estructuras como los arreglos. Y, si quería reutilizar una operación, podía crear una función. No eran simplemente palabras técnicas. Eran formas de pensar y expresar procesos. Pero, ¿Qué pasa cuando la computadora aprende nuestro idioma? Ahora podemos escribir: “Quiero un programa que permita registrar alumnos, calcular sus promedios y mostrar quiénes aprobaron.” y una herramienta de inteligencia artificial puede generar el código. Podemos pedir: “Hacé que cuando el jugador agarre tres objetos aparezca un portal.”, y la herramienta puede crear buena parte de la implementación. Podemos incluso conversar con ella, corregirla, pedirle modificaciones y volver a probar. El salto no está solamente en que el código se genere más rápido. Está en que la interfaz entre nosotros y la computadora cambió.
Antes teníamos: persona – lenguaje de programación – computadora
Ahora aparece progresivamente: persona – lenguaje humano – modelo de IA – código – computadora
El código no desapareció, se desplazó de lugar; y esta diferencia es fundamental.
¿El verdadero problema era la comunicación?
Quizás uno de los grandes avances de la inteligencia artificial contemporánea no sea solamente haber conseguido máquinas capaces de realizar determinadas tareas, sino haber reducido enormemente la distancia lingüística entre nosotros y ellas. Durante años, la computadora fue extremadamente poderosa pero extremadamente literal. Nosotros teníamos una idea, la computadora necesitaba una especificación formal, y entre una cosa y otra había que construir un puente. Ese puente era la programación.
Los grandes modelos de lenguaje introducen otra posibilidad: ahora podemos expresar una intención de una manera mucho más parecida a como expresamos nuestras ideas entre personas. Esto no significa que la máquina “entienda” necesariamente como entendemos los seres humanos. Tampoco significa que una conversación con un modelo sea equivalente a conversar con otra persona. Pero sí significa que la interfaz de comunicación cambió radicalmente, y quizás ahí esté una de las claves para pensar qué viene después.
La computadora como interlocutor
Durante mucho tiempo imaginamos la evolución de la computación principalmente en términos de potencia (Más memoria, más velocidad, más procesamiento, mejores gráficos, más almacenamiento, etc.), pero también hubo otra evolución, quizás menos visible: la evolución de las interfaces.
Primero interactuamos con máquinas mediante interruptores y paneles. Después llegaron las tarjetas perforadas, las terminales, las líneas de comandos, las interfaces gráficas, el mouse, las pantallas táctiles, los comandos por voz, y, ahora, el lenguaje natural. Cada uno de esos cambios redujo, de alguna manera, la distancia entre la intención humana y la acción de la máquina.
La inteligencia artificial lleva esta tendencia a un punto particularmente interesante: podemos comenzar a describir lo que queremos en lugar de describir exactamente cómo hacerlo. Eso puede cambiar mucho más que la programación: puede cambiar nuestra relación cotidiana con la tecnología.
Pero entonces, ¿qué hacemos con los programadores?
Esta es quizás la pregunta más incómoda. Si una persona puede pedirle a una IA que programe, ¿para qué aprender programación? La respuesta depende de qué entendamos por “programar”.
Si programar significa exclusivamente escribir líneas de código manualmente, entonces es evidente que una parte importante de esa tarea puede automatizarse, pero programar nunca fue solamente escribir código. Programar implica pensar un problema como un proceso, implica decidir qué información necesitamos: ¿Qué puede cambiar? ¿Qué condiciones deben cumplirse? ¿Qué tiene que repetirse? ¿Qué ocurre cuando algo sale mal? ¿Cómo se divide un problema grande en problemas más pequeños? ¿Cómo se relacionan diferentes partes de un sistema? Y, sobre todo, implica poder verificar si aquello que construimos realmente hace lo que queríamos. Por eso aprender programación puede seguir teniendo sentido incluso en un mundo en el que una IA escriba gran parte del código. De hecho, puede cambiar la razón por la que la aprendemos.
Una variable no es solamente una línea de código
Tomemos algo tan sencillo como una variable. Cuando explicamos esto en la materia que doy en UNPAZ, Fundamentos de la Programación I, generalmente una variable puede explicarse inicialmente, para alguien que nunca programó en su vida, como un espacio donde guardamos un dato que puede cambiar.
Eso parece trivial, pero detrás de esa definición hay una idea poderosa: el estado de un sistema puede representarse mediante información que cambia con el tiempo.
Lo mismo ocurre con un condicional. Un if no es solamente una palabra reservada de C#, JavaScript o Python. Es la representación de una idea: si ocurre determinada condición, hacé esto; de lo contrario, hacé otra cosa.
Un ciclo for tampoco es solamente una sintaxis. Es una forma de expresar: repetí este procedimiento siguiendo determinadas reglas. Una función representa otra idea fundamental: tengo un procedimiento que puedo nombrar y reutilizar. Estas abstracciones no pertenecen exclusivamente a Python ni a C#. Son conceptos que aparecen detrás de innumerables programas, independientemente de la herramienta que utilicemos para construirlos. Por eso, quizás lo que debemos enseñar no sea solamente un lenguaje de programación, sino fundamentalmente las ideas que los lenguajes permiten expresar.
¿El programador del futuro quizás será menos mecanógrafo y más intérprete?
Hay una diferencia importante entre saber escribir código y saber qué código debería existir. La inteligencia artificial puede producir miles de líneas de código, pero eso no significa que esas líneas resuelvan correctamente el problema. Alguien tiene que definir qué problema estamos intentando resolver, alguien tiene que decidir qué significa que el programa funcione, alguien tiene que detectar que una respuesta aparentemente correcta contiene un error, alguien tiene que evaluar si la solución es segura, eficiente, mantenible y adecuada, y alguien tiene que poder modificarla cuando las condiciones cambien. En ese sentido, el rol del programador puede desplazarse. Menos tiempo escribiendo instrucciones manualmente, más tiempo diseñando, verificando, probando, integrando y tomando decisiones. El código se convierte cada vez más en una representación intermedia entre nuestra intención y la máquina.
El autoconocimiento
Hay algo particularmente fascinante en este cambio. Durante décadas, aprender programación implicó aprender a traducir una idea humana a una forma que una máquina pudiera procesar. Ahora podemos invertir parcialmente esa relación: Tenemos una idea, la expresamos en nuestro propio lenguaje y la máquina intenta traducirla a una estructura ejecutable, todo en ese orden. Eso significa que una parte del desafío vuelve a nosotros.
¿Qué queremos realmente? La pregunta parece sencilla, pero no lo es. Una instrucción vaga produce una solución vaga, una contradicción en nuestra descripción puede producir un programa contradictorio, una condición que nunca contemplamos puede convertirse en un error, una decisión que no tomamos puede terminar siendo tomada implícitamente por el sistema. La aparición de estas herramientas, entonces, puede obligarnos a desarrollar una capacidad que parecía menos tecnológica y que, en realidad, es profundamente tecnológica: aprender a formular nuestras ideas con precisión. Quizás haya algo de autoconocimiento en eso: Para pedirle correctamente a una computadora que haga algo, primero tenemos que entender qué queremos que haga.
La visión de Donna Haraway desde hace más de 40 años
Lo cierto es que esta discusión actual tampoco nació con ChatGPT. En A Cyborg Manifesto, publicado originalmente en 1985, la filósofa y bióloga Donna Haraway reflexionó sobre la relación entre seres humanos, máquinas, comunicación y códigos. En uno de los pasajes del texto, plantea la traducción del mundo a problemas de codificación y la búsqueda de lenguajes comunes capaces de procesar información.
Su planteo pertenece a otro contexto y no es una anticipación literal de los actuales modelos de IA, Ppero resulta llamativo volver a él hoy. Haraway también cuestionaba las fronteras rígidas entre organismo y máquina, y pensaba las tecnologías como parte de las relaciones sociales y de las formas en que construimos conocimiento. Investigaciones posteriores sobre su obra han recuperado justamente al cíborg como una metáfora para pensar la relación entre cuerpos, tecnologías y cultura. Hay una pregunta de fondo que permanece: ¿qué sucede con nosotros cuando cambia la manera en que nos relacionamos con nuestras herramientas?
Pensar el lenguaje de la IA desde América Latina
No es necesario mirar exclusivamente hacia Silicon Valley para encontrar estas preguntas (y, de hecho, considero que estaría mal si solamente hiciesemos eso), en América Latina existe una producción creciente alrededor de la inteligencia artificial, los datos, la tecnología y sus consecuencias sociales. Un trabajo publicado en Oxford Academic en 2025 reúne justamente experiencias de investigadoras y activistas latinoamericanas y caribeñas vinculadas a la llamada Feminist AI Research Network, incluyendo a investigadoras de Argentina, Ecuador, México y otros países de la región.
También existe una línea de investigación latinoamericana que pone el foco en algo que muchas veces queda fuera de las conversaciones sobre IA: quién produce los datos, desde qué lugares, con qué perspectivas y bajo qué relaciones de poder.
Un trabajo publicado por la Universidad Javeriana en 2025, con participación de investigadoras de Brasil y Argentina, analiza precisamente las relaciones entre tecnologías digitales, inteligencia artificial, datos y desigualdades en América Latina. Esto agrega una dimensión importante a la discusión: Si la comunicación es el nuevo centro de la relación con las máquinas, entonces no alcanza con preguntarnos si una computadora entiende nuestro lenguaje. También tenemos que preguntarnos: ¿qué lenguaje entiende? ¿qué experiencias están representadas en ese lenguaje? ¿qué experiencias quedan afuera?
En esta discusión resulta especialmente interesante la mirada de Paola Ricaurte, investigadora mexicana-ecuatoriana especializada en inteligencia artificial, datos y tecnología desde una perspectiva crítica y latinoamericana. Ricaurte advierte que lo que se refleja en Internet no es el correlato de lo que somos en el mundo; una observación particularmente relevante cuando pensamos en sistemas de IA entrenados a partir de enormes cantidades de información disponible en la red. Si las máquinas están aprendiendo a comunicarse con nosotros a partir de esos datos, entonces también tenemos que preguntarnos qué voces están presentes en ese aprendizaje, cuáles están sobrerrepresentadas y cuáles quedan afuera.
Esto vuelve a llevarnos a la pregunta inicial: si el futuro de nuestra relación con las computadoras pasa por el lenguaje, ¿quiénes están participando en la construcción de ese lenguaje?
La calculadora no hizo innecesarias las matemáticas
Hay una comparación que quizás ayude a entenderlo. En la escuela aprendemos a sumar, restar, multiplicar y dividir, y después usamos una calculadora. Que una calculadora pueda multiplicar números mucho más rápido que nosotros no hizo que aprender a multiplicar fuera inútil. Al contrario. Necesitamos conocer las operaciones básicas para saber qué estamos haciendo. Si queremos calcular una raíz cuadrada, una potencia o una operación compleja, podemos delegar el cálculo. Pero necesitamos comprender qué significa el resultado. La calculadora automatizó la ejecución, no eliminó el conocimiento. Algo similar puede ocurrir con la programación.
Podemos delegar la escritura de un for, podemos pedirle a una IA que genere una función, podemos incluso pedirle que construya una aplicación completa; pero si no sabemos qué es una variable, qué es una condición, qué significa repetir un proceso, qué es una función o cómo se estructura un algoritmo, corremos el riesgo de convertirnos en usuarios incapaces de evaluar aquello que la herramienta produce, y ahí aparece una diferencia fundamental entre usar una herramienta y comprenderla.
Tal vez no estamos ante el fin de la programación
Estamos ante una transformación de la interfaz (o interfaces, en plural) que usamos típicamente para la programación. La historia de la informática está llena de tecnologías que hicieron que tareas antes reservadas a especialistas fueran accesibles para más personas. Eso no necesariamente eliminó el conocimiento anterior, lo volvió menos visible.
Cuando usamos un teléfono inteligente no necesitamos saber cómo funciona cada transistor que hay dentro, pero alguien tiene que saberlo. Cuando usamos un navegador web no necesitamos conocer todos los protocolos que permiten que una página llegue hasta nuestra pantalla, pero alguien tuvo que diseñarlos. Cuando escribimos una instrucción para una IA y obtenemos un programa, tampoco significa que el código haya dejado de existir, significa que otra capa del sistema está haciendo el trabajo de traducción. Quizás esa sea una de las transformaciones más importantes.
Software que puede reescribirse
Hay un paso más en esta transformación. Los sistemas de IA empiezan a acercarnos a una idea que, hasta hace poco, parecía propia de la ciencia ficción: software capaz de modificar y ampliar su propio código. Ya no se trata solamente de pedirle a una herramienta que genere un programa y luego ejecutarlo. En determinados entornos, el sistema puede analizar cómo está funcionando, recibir nuevas instrucciones del usuario, detectar que una determinada capacidad no existe y generar o modificar el código necesario para incorporarla. El usuario puede decir: “necesito que ahora también haga esto”, y el sistema puede intervenir sobre el software que ya existe para agregar esa función. En ese modelo, el programa deja de ser una estructura completamente cerrada que alguien escribió de antemano y empieza a convertirse en algo más dinámico: un sistema que puede transformarse a partir de la interacción con quien lo utiliza. La programación, entonces, no solamente se convierte en una conversación; empieza a parecerse a una conversación en la que aquello que estamos construyendo puede cambiar mientras hablamos.
Esto lleva todavía más lejos la pregunta por el lenguaje: si una persona puede expresar una necesidad, la IA puede traducir esa necesidad a código y, además, ese código puede modificar el propio sistema que estamos utilizando, entonces la conversación deja de ser solamente una interfaz para controlar el software; puede convertirse en parte del proceso mediante el cual el software se construye y evoluciona, y ahí la diferencia entre “usar un programa” y “programar” empieza a volverse mucho más difícil de establecer.
Del lenguaje de programación al lenguaje de intención
Durante mucho tiempo, el programador tuvo que traducir “quiero que pase esto” a “estas son exactamente las instrucciones que la computadora debe ejecutar para que pase esto”. Ahora aparece una tercera posibilidad: «quiero que pase esto” y entonces la IA propone cómo hacerlo.
El gran cambio no está necesariamente en que desaparezca la programación, está en que la traducción deja de ser completamente responsabilidad humana; y cuando una tarea repetitiva puede delegarse, aparece la posibilidad de dedicar más tiempo a aquello que no es repetitivo: decidir, imaginar, diseñar, evaluar, crear. Eso no garantiza que el resultado sea mejor, pero sí modifica dónde ponemos nuestro esfuerzo.
Entonces, ¿qué deberíamos enseñar?
Quizás la pregunta educativa no debería ser: “¿Seguimos enseñando programación si la IA puede programar?”. Podría ser otra: “¿Qué significa aprender programación cuando tenemos una máquina que puede escribir el código por nosotros?”, y ahí los fundamentos vuelven a cobrar importancia: Variables, constantes, condicionales, ciclos/bucles, funciones, arrays, estructuras de datos, algoritmos, descomposición de problemas, pruebas, errores, y lógica; no necesariamente porque cada estudiante vaya a pasar el resto de su vida escribiendo for y if, sino porque esos conceptos permiten comprender qué estamos pidiéndole a una máquina que haga. La IA puede convertirse en una calculadora extraordinariamente sofisticada, pero antes hay que aprender qué estamos calculando.
¿Estamos ahora frente al verdadero comienzo de nuestra relación entre humanos y máquinas?
Durante mucho tiempo pensamos que el desafío consistía en conseguir que las computadoras fueran más inteligentes. Ahora estamos descubriendo que existe otro problema igual de importante: conseguir que podamos comunicarnos mejor con ellas. El próximo gran salto de la computación quizás no sea solamente un procesador más rápido, un modelo más grande o un algoritmo más sofisticado, quizás sea una interfaz, una forma cada vez más natural de convertir una intención humana en una acción computacional; y, paradójicamente, cuanto más fácil sea hablar con las máquinas, más importante puede volverse saber qué queremos decir. Tal vez por eso la palabra que deberíamos recuperar no sea solamente programación, sino que es lenguaje.
Los lenguajes de programación siempre fueron, en el fondo, una tecnología para comunicarnos con las máquinas. Lo que está cambiando ahora es quién tiene que aprender el idioma de quién. Durante décadas, nosotros aprendimos a hablar como las computadoras. Quizás estemos entrando en una época en la que, por primera vez, las computadoras están aprendiendo a hablar como nosotros, y el verdadero desafío de esta nueva etapa no será simplemente enseñarles a las máquinas a entendernos, será aprender nosotros mismos a decir, con claridad, qué queremos hacer con ellas.
