La inteligencia artificial está redefiniendo los auténticos cimientos de la programación, abriendo la puerta a una era de desarrollo de software más automatizado y más eficiente, pero también más centrado en la creatividad humana.
La irrupción de la inteligencia artificial generativa en el ámbito de la programación está desencadenando una transformación profunda en la forma en que concebimos y desarrollamos software. A diferencia del lenguaje humano, plagado de ambigüedades y matices, el código informático se rige por reglas estrictas y significados estandarizados, lo que convierte a la programación en un terreno especialmente propicio para la automatización mediante algoritmos de inteligencia artificial generativa.
Esta convergencia entre inteligencia artificial y programación ha dado lugar a toda una oleada de startups especializadas en generación de código, atrayendo inversiones multimillonarias y despertando el interés de gigantes tecnológicos. Empresas como Anysphere, creadora de Cursor han recaudado 900 millones de dólares, alcanzando valoraciones de hasta 10,000 millones de dólares, mientras que OpenAI ha acordado la adquisición de Windsurf por aproximadamente 3,000 millones de dólares.
Estas herramientas permiten traducir instrucciones en lenguaje natural a código funcional, reduciendo la dependencia de programadores humanos para tareas rutinarias y acelerando el desarrollo de software, dando lugar a reconfiguraciones de los equipos de desarrollo y a una optimización de recursos. Directivos de Microsoft han declarado que hasta un 30% del código que la compañía produce hoy en día es generado por herramientas de inteligencia artificial, y que en unos cinco años, calculan que el 95% del código será producido por máquinas. Empresas como Google se mueven también en las mismas dinámicas.
Un caso interesante es el de Morgan Stanley, que ha desarrollado internamente DevGen.AI, una herramienta basada en modelos de OpenAI que traduce código legacy en lenguajes obsoletos como Cobol a especificaciones en inglés, facilitando así su reescritura en lenguajes modernos. Desde su implementación, ha revisado nueve millones de líneas de código y ahorrado 280,000 horas de trabajo a sus desarrolladores.
Este panorama sugiere que la inteligencia artificial no solo está cambiando la forma en que escribimos código, sino también cuestionando la necesidad de lenguajes de programación de alto nivel con altos niveles de abstracción diseñados para facilitar la comprensión humana. A medida que las máquinas adquieren la capacidad de generar código en lenguajes de bajo nivel de manera eficiente, podríamos presenciar una evolución hacia sistemas más optimizados y menos dependientes de la intervención humana.
En este contexto, es plausible anticipar un futuro en el que la programación se convierta en una tarea de alto nivel estratégico, donde los humanos definan objetivos y restricciones, y las máquinas se encarguen de la implementación técnica, como si todos pudiéramos programar directamente en código máquina. Esta transición requerirá una adaptación en la formación de los profesionales del software y una reflexión profunda sobre el papel de la inteligencia artificial en la creación tecnológica. Y este cambio, además, va a tener lugar muy pronto. O de hecho, está ocurriendo ya.
You can also read this article in English on my Medium page, «Programming’s future: humans set goals, machines write the code«
Solo me alegro de tener un título cuello azul por si acaso también, hahaha.
En realidad es genial. Incluso de podrían rediseñar los procesadores o lenguajes para adaptarse a ARM o Risc-V de manera que es escribe una vez y la IA lo traduce a cuantas maneras haga falta.
Permitiría mucha micro-optimización tan necesaria en dispositivos móviles.
Por otro lado, nos debemos preparar no solo para lo bueno, sino para lo malo. Millones de apps inundando los stores es lo que también sucederá.
Sí eso es lo malo,…
Qué serán las acciones ciberterroristas orquestadas vía IA, la generalización de fraudes, estafas, ataques diseñados por IA, …? Yo creo ciegamente en los fantásticos usos de la IA en aplicaciones médicas, de ingeniería, de seguridad, pero, como toda herramienta, piensen en si hay o no mucha gente dañina que no dudaría en emplearla para sus nefastos fines
Enrique ya se que es off-topic pero he leído esto y no he podido evitar acordarme de ti, me imagino un ataque de risa al leerlo
Josu Jon Imaz
«Durante el XVIII Foro Empresarial de Guipúzcoa, el responsable de Repsol habla de «hiperregulación y políticas ecológicas radicales», pero ha hecho también mención a las emisiones de CO2 y a los vehículos «diésel. «Un coche diésel (actual) emite menos CO2 en su ciclo de vida que uno eléctrico».
La primera parte de la frase es, como poco, discutible.
La segunda parte no, ni de coña. Eso está ya más que calculado y comprobado y no es así lo diga quien lo diga.
MAS MATAO !!!!
¿Es en serio?
Solamente se me ocurre que le consultes a Gepeto, a Belen Esteban o al experto en punteros …
Sí, lo he pensado a menudo, si le pedimos que programe en ensamblador o directamente en lenguaje máquina ganaríamos una barbaridad en eficiencia, ¿verdad? Por una parte entiendo que sí y para algunas aplicaciones seguro que es muy interesante el hacerlo. Por otra parte los humanos perdemos legibilidad, ¿cómo comprobar lo que realmente está haciendo?
Tal y como lo veo está bien seguir utilizando lenguajes de alto nivel (de hecho utilizar prompts es subir otro nivel más) y dejar que la IA optimice los procesos de compilación, ahí seguro que hay margen de mejora sin perder legibilidad.
Programar siempre ha sido indicarle a la máquina cómo queremos que procese los datos. Los distintos niveles de lenguajes lo que hacen es poner en una balanza la usabilidad y el control/velocidad con distintos grados de abstracciones.
La IA ahora permite programar a un nivel aún superior a costa de perder más control. Sin embargo también permite optimizar procesos a bajo nivel que redunden en una mayor eficiencia de los lenguajes de alto nivel.
De las muchas pruebas que he hecho con diferentes lenguajes, he de decir, que en ASM es con el que menos falla (Z80 y x86). Hablo de Gepeto. El problema, es que no esta hecha la miel para la boca del asno. Y si le pides, que te genere código, de un lenguaje del que no tienes ni puta idea, ni lo podrás comprobar (a menos que no juegues al prueba y error), ni te vas a enterar de lo que está haciendo, ni porque… quizás sí, te sirva para aprender cómo se hacían/hacíamos antes las cosas…
Con el tipo de Hardware que tenemos hoy día (rápido, potente, con más memoria y almacenamiento que nunca), no tiene demasiado sentido, a menos que no seas un purista o te dediques a programar drivers para HW. (y ni así).
Para los que aun hoy día, para algunas cosas, le metemos mano a los nemónicos, pueeeesss…
Programo en ensamblador de Z80 en mi tiempo libre (sí, «hay gente pa tó»). Por curiosidad alguna vez le he pedido a algún Gepeto que me genere alguna rutina y hasta ahora nunca he conseguido nada que funcione. Incluso meten instrucciones que no existen.
Uno de los dos, tiene un problema…
O yo mucha suerte, o tu muy «mala zuerte»… XDDD
Como he dicho, me hago algunos drivers directamente en ensamblador (x86) y si, comete fallos, pero menos que en C o C++.
No estoy diciendo que sea infalible, sino que comete menos errores (o si lo prefieres, tengo que repasar menos código).
En cualquier caso, para mí, no es mi día a día, si no mi hobby
Prueba uno bueno de pago integrado en un entorno de desarrollo, aliméntale con la documentación oficial si ves que tiene carencias y nos cuentas…
O paga directamente a alguien que sepa programar en Assembler.. XDDD
Nah, mejor: contrata un recién licenciado en prácticas, fórmale en ensamblador Z80 y que le de vueltas hasta que le salga :P
Hay un dicho muy castellano… hay hombrecitos, hombres, muy hombres y cagabandurrias…
Elige… XDDD
(Para no levantar extrañas suspicacias… hay formateadores de disquetes, junta-letras, programadores, analistas, genios… Y ahora, adictos a la IA) :P
Yo alucino, con lo de la IA, o hay mucho bloguero de Techcrunch que no tiene ni idea o no me lo explico…
Que la IA señores, raro es cuando te hace algo bien a la primera, otra cosa es cuando ya sabes, y le haces el prompt superdetallado….
A que juntaletras se le ocurre que puede hacer algo directamente de superalto nivel (un prompt) a código máquina, sin pasar por un código legible estilo C/C++ o Python..
Que esos inútiles que están por ahí haciendo artículos clickbait pues igual cuela, pero a un blog como este y a comentaristas «bregados»….
No será tan buena la IA cuando se gastan una millonada en Windsurf, que no deja de ser un fork de Visual Studio Code, con IA añadida, o es que a nadie se le ocurre pensar que para que necesitan gastar un pastizal en un IDE ¿no era tan buena esa IA? ¿ no te lo da todo hecho? Va a ser que no, verdad?
En fin que estamos rodeados de gente muy «smart»
Que tropa!
Hay que recordar que los LLMs tiene el mismo defecto que las redes neuronales: aprenden jugando a la prueba y error. Mientras más datos (millones) tengan en ensamblador y más se le pregunto (y evidentemente se le informe si funciona o no) más rápido aprenderá.
Tengo entendido que en su origen son «simples» máquinas estadísticas
En efecto que la misión de programador sea escribir, (o dictar), un «prompt», que una AI especializada transforme en un programa de ordenador., ¿Y para qué lo va a generar en un lenguaje de alto nivel, comprensible para humanos, si lo puede generar en lenguaje máquina directamente?
Pues para que el humano pueda comprobar que el código generado es correcto sin que le entren ganas de tirarse por la ventana. Que sí, que en otro comentario he dicho que programo en ensamblador como hobby; pero muy distinto sería tener que revisar tan bajonivelista código como parte de mi trabajo.
(Preguntale por los punteros…. veras que risas…) XDDD
Bonito hobby !!
Me hace acordarme de PEEK y POKE… que tiempos
No pueden con Kama: Burle todas las IA y convierta en zombi a Whatsapp, y otras apps de Google, Meta, Microsoft (LinkedIn), Apple, etc. Y permite mensajería instantánea secreta https://bit.ly/3zMc17f
A mí me parece muy interesante la forma en que cada vez se incorpora más y más metodologías basadas en IA en la programación, tanto en startups como en empresas ya consolidadas. Solo que no creo que hagan un uso masivo de las supuestas capacidades de las IA´s generativas. Creo que tiran más hacia métodos más tradicionales y sobre todo, quizás estemos empezando a ver un verdadero auge de los métodos formales, más allá de los gepetos y similares.
Como muestra, la empresa Code Metal. Su Principal Research Scientist in Formal Methods, Laura Titolo, hizo parte de su formación postdoc en Málaga y en Valencia ( DSIC de la UPV) y estuvo antes empleada en el Langley Formal Methods Center de la NASA.
https://www.codemetal.ai/#product
¿Que sentido tiene que el programador pierda la legibilidad del código? ¿Pretendemos que el programador sea un simple operario que genera prompts y pega lenguaje ensamblador que ni entiende?¿Tiene sentido precarizar el oficio de programador y al mismo tiempo convertir las aplicaciones en cajas negras?
Uf, qué suerte, hoy puedo darme el piro antes del recreo…
Off-topic
@edans He leído en varios sitios de gente que tuvo que pagar por los excedentes del autoconsumo del mes de mayo ¿Es tu caso?
No, para nada…
Gracias Enrique. No sé qué tipo de contrato tendrán con la comercializadora.
Mercado regulado en lugar de mercado libre.
El mercado nunca es libre… lo manejan unos pocos (oligarcas) o se regula o equilibra…
Cuanto daño ha hecho la propaganda liberal en los hijos de los obreros, que se sacrificaban para que sus hijos tuvieran una educación y una vida mejor, para que luego fueran ovejas del capitalismo
Pues el negocio de modernización del código «Legacy» tipo COBOL puede ser enorme.
Existen empresas especializadas como Micro Focus Visual COBOL, pero eso solo es una mejora parcial, ya que pasas de un «legacy» propietario, IBM, a otro «legacy» propietario MicroFocus, solo que el segundo es más barato que el Cobol de IBM.
El problema es que el cobol puro es inexistente en las empresas. El que existe es un Cobol con extensiones como CICS, DB2 o DLI…etc
En cambio un traductor de Cobol con extensiones (CICS-DB2) a un lenguaje abierto con librerías open source, por ejm Python/Flask/MySQL que son todo open source puede ser una revolución.
Cuando programas a bajo nivel es muy común que te salgas de su ventana de contexto y si aparte agregas capas de complejidad en la lógica, tiende a ser un desastre, pero organizando bien todo es mejor, por otro lado, los agentes todavía no son una gran solución si la lógica es muy compleja, pero ya es cuestión de tiempo… cada vez lo hace mejor.
Lo que tiene que hacer MS es poner a sus IA a reprogramar Teams, y si consiguen que no sea un enorme montón de mierda torpe e ineficaz, entonces me creeré que son mejores que los humanos.
jaja, no pides tú na…
Me parece terrible que le entreguemos a una IA la programación y que lo haga en bajo nivel, estaríamos totalmente entregados a lo que una caja negra dice sin saber o entender el código.
Si la IA nos de una respuesta en un lenguaje de alto nivel nos permitiría entender qué está haciendo y controlarla de alguna manera.
A mi entender, la IA todavía no está a ese nivel, pero hay probabilidades de que, en algún momento, lo alcance. Los modelos se entrenan con datos, y, de manera muy simplificada, solo son «modelos estadísticos». La realidad es que hoy no llegan a suplantar el trabajo de un programador Sr ni en lenguajes de alto nivel. Y, en muchos casos, fallan incluso con tareas de un programador Jr. Trabajo en una empresa en la que desarrollamos IA. Actualmente estamos trabajando en un TTS para clonación de voz. Más allá del código en sí (que no lo dan modelos avanzados de ChatGPT ni otras IAs), hay muchos factores que requieren intervención humana. Hablando solo de código, le pedí a ChatGPT un prompt para replicar nuestro trabajo. Tiene mucha información y todos los datos y archivos necesarios. Ese prompt lo probé con varias IAs. El resultado: no está ni cerca de nuestro trabajo.
¿Se puede llegar, en algún momento, a lo que se plantea? Sí, por supuesto, pero todavía falta.
¿Optimizaría trabajo? ¿Reemplazaría al programador? Optimizaría mucho trabajo, pero, por el momento, no creo que reemplacen a los programadores. Y menos en lenguajes de bajo nivel. Ojo, es solo mi opinión.
Dejo, por si a alguien le interesa, una publicación que hicimos en Linkedin, bromeando un poco con nuestro punto de vista.
https://www.linkedin.com/posts/synapseai-group_high-fidelity-voice-cloning-for-rioplatense-activity-7336453705237454848-VVYN?utm_source=share&utm_medium=member_android&rcm=ACoAAE8KpdEBjpF0FJTBnVVik8oqNu9lvt7CG2c
Como han dicho ya varios comentaristas, pedir a la IA que escriba directamente código en lenguaje de bajo nivel implicaría pérdida de legibilidad para desarrolladores humanos, y con ella mayor dificultad para depurar y mantener el codigo frente a errores o revisiones de seguridad.
Añado yo otra pega más y es la dificultad en reutilizar el codigo, una vez que estuviera depurado y validado. Cómo consigues la encapsulación de funcionalidad que nos da un lenguaje orientado a objetos con código ensamblador por ejemplo? Más allá de bibliotecas de rutinas o funciones…