Los agentes de IA para programación están derribando las barreras entre lenguajes
(railsatscale.com)- El avance de las herramientas de programación con IA está creando un entorno donde los desarrolladores pueden entrar rápidamente a nuevos lenguajes
- Aunque era un desarrollador que durante 10 años solo usó Ruby, este año, gracias a la colaboración con agentes de IA para programación como Cursor y Claude Code, ha podido contribuir de forma real en lenguajes de sistemas como C, C++ y Rust
- Herramientas como Claude Code y Cursor ayudan especialmente mucho con la sintaxis del lenguaje, los modismos y la teoría general
- La IA no actúa como un generador de código, sino como un "ingeniero de pair programming experto en lenguajes" que, combinada con la experiencia previa, maximiza la eficiencia del aprendizaje mediante preguntas en tiempo real, explicación de contexto y análisis de ejemplos
- Aunque la IA no conoce por completo el contexto de cada proyecto ni toda su estructura interna profunda, sí puede aconsejar de inmediato sobre sintaxis, patrones típicos y bibliotecas estándar, lo que permite hacer contribuciones reales sin más de 100 horas de estudio previo
- El uso de herramientas de IA está cambiando rápidamente la percepción tradicional sobre la especialización en lenguajes de programación, y está abriendo un entorno donde cada vez más desarrolladores pueden trabajar de forma productiva en múltiples lenguajes
De desarrollador Ruby por 10 años a trabajar en múltiples lenguajes
- El autor trabajó entre 2014 y 2024 como desarrollador dedicado al ecosistema de Ruby y Rails
- Durante ese tiempo acumuló experiencia en el desarrollo y mantenimiento de herramientas clave del ecosistema Ruby como Rails, IRB, RDoc y la gema debug
- Desde 2025, contribuye a proyectos de la capa de sistemas fuera de Ruby, como Sorbet (C++), el parser de RBS (C) y ZJIT (Rust)
- Detrás de este cambio estuvo la adopción de agentes de IA para programación (Cursor, Claude Code)
- Dentro de Shopify también se fomenta el uso activo de estas herramientas de IA
La combinación perfecta de oportunidades
- No fue solo por la IA; también coincidieron varias condiciones importantes
- Un cambio en la hoja de ruta del equipo Ruby DX hizo necesario el soporte de RBS en Sorbet → inevitablemente se requería experiencia en C/C++
- Miembros del equipo de infraestructura de Ruby & Rails en Shopify compartieron know-how y ofrecieron un entorno de tutoría activa
- Históricamente ya existían grandes mentores y oportunidades en proyectos reales, pero la IA redujo de forma revolucionaria la barrera de aprendizaje y la curva de entrada
La complejidad de la programación de sistemas
- Caso del proyecto ZJIT (un nuevo compilador JIT para Ruby):
- Se requieren al mismo tiempo múltiples conocimientos y habilidades complejas
- Rust (lenguaje principal), C (lenguaje de implementación central de Ruby), teoría de JIT/compiladores, estructura y diseño propios de ZJIT, funcionamiento interno de Ruby, sistema de build de Ruby (
autoconf,Makefile, etc.) - Un solo Pull Request puede abarcar de 2 a 4 áreas al mismo tiempo
- Eficiencia de Claude Code
- Alta precisión en sintaxis de lenguajes y patrones de expresión, además de teoría general de compiladores y lenguajes como Rust/C/C++
- Más limitado en contexto específico del proyecto, implementación interna de Ruby y soporte para sistemas de build complejos
- Aun así, la barrera de entrada del proceso de aprendizaje se reduce a menos de la mitad
- La IA brinda apoyo inmediato para aprender sintaxis, teoría y patrones del lenguaje, mientras que el contexto específico del proyecto sigue siendo tarea de las personas
Pair programming con IA
- Se empezó a ver a la IA no como un simple generador de código, sino como un socio complementario
- Forma real de colaboración
- El desarrollador transmite los requisitos y el contexto de la tarea
- La IA encuentra patrones y actúa como experta en el lenguaje
- El desarrollador pregunta por las razones del diseño
- La IA modifica el código o explora la teoría y entrega resultados
- A través del aprendizaje conversacional, se adquieren al mismo tiempo el lenguaje y su uso real
- Ejemplo: en una tarea de perfilado de instrucciones de bytecode de Ruby, se le puede pedir a la IA que busque PR anteriores y explique línea por línea
- También permite hacer sin problema "preguntas tontas" (“¿Por qué un compilador JIT necesita perfilado?”)
- Se obtiene feedback inmediato sobre sintaxis no familiar
- También hay casos de fracaso
- Si la dirección del proyecto se desvía, sigue siendo necesaria la corrección de un mentor o colega
- En última instancia, la capacidad humana de corregir el rumbo sigue siendo indispensable
El desmantelamiento de las barreras entre lenguajes de programación
- Ya no es una época en la que se necesiten 100 horas de estudio previo para contribuir a un nuevo proyecto en C
- Incluso en lenguajes con una barrera de entrada alta, como C y Rust, ya es posible contribuir de inmediato con ayuda de la IA
- La IA detecta rápido errores típicos de principiantes (errores de sintaxis, de tipos o malentendidos sobre herramientas), lo que permite pasar enseguida a contribuciones reales
- La especialización profunda sigue siendo importante, pero más desarrolladores pueden lograr productividad en múltiples lenguajes
- Dejarle a la IA la sintaxis, las funciones estándar y los patrones, y que el desarrollador se concentre en resolver los problemas reales
- El cambio de un desarrollador dedicado a Ruby como yo a convertirse en desarrollador multilenguaje en menos de un año es una tendencia revolucionaria
- Se está haciendo realidad la transición de "desarrollador de un solo lenguaje" a "productor multilenguaje"
- Podría ser el inicio de una tendencia que cambie incluso el concepto mismo de especialización por lenguaje
Conclusión
- Los agentes de IA para programación están reduciendo drásticamente la barrera de entrada a los lenguajes de programación,
y están abriendo una nueva era en la que los desarrolladores pueden trabajar de forma productiva de inmediato en varios lenguajes
5 comentarios
La generación de código, quizás, pero ¿quién hace la inspección o revisión del código...?
Aunque no puedas usar un lenguaje en el que no eres experto, muchas veces sí es posible leerlo por encima, así que sí parece que toma menos tiempo que antes.
Parece que ahora podemos avanzar realmente mucho más rápido que antes en tecnologías que no habíamos usado o en áreas que no habíamos experimentado.
Opiniones de Hacker News
Me pregunto si la IA realmente está cambiando la curva de aprendizaje, o si solo está haciendo más cómoda la experiencia
Al leer la experiencia de alguien que dijo que, después de 10 años usando solo Ruby, se convirtió en desarrollador multilenguaje en un año y que eso le pareció revolucionario, pienso más bien que eso fue algo que simplemente “no había intentado en 10 años”
Aprender tu primer lenguaje de programación y aprender un lenguaje nuevo cuando ya llevas varios años de experiencia son experiencias completamente distintas
Pienso exactamente lo mismo
Me cuesta identificarme con un desarrollador que pasó 10 años usando un solo lenguaje
Al principio yo también tenía una identidad muy fuerte con el lenguaje elegido, pero de los desarrolladores realmente experimentados aprendí que “el lenguaje es solo una herramienta”
Cuando conoces varios lenguajes, tu perspectiva se amplía muchísimo y obtienes ciertas revelaciones difíciles de explicar con palabras
Haber vivido eso fue realmente una alegría
Creo que es cierto hasta cierto punto eso de que “incluso sin IA, en un año habría sido perfectamente posible aprender varios lenguajes”
En mi experiencia, al hacer mini proyectos de Python con o4, me encontré con casos raros e interesantes, y sin IA muchos de esos temas me habrían frenado bastante
Por ejemplo, cómo maneja unraid las xml vm o problemas que aparecen en dockers; si uno se pone a investigarlos por su cuenta, eso te puede tomar incluso un día entero
Ahora la IA te va guiando en esas partes y todo fluye mucho más suavemente
Así que da un poco de miedo, pero realmente funciona muy bien
Por cierto, mi primer lenguaje de programación fue el viejo BASIC
La IA hace que los lenguajes dominantes se vuelvan todavía más populares
Los lenguajes en los que la IA menos se equivoca suelen ser Python, JS y Ruby, porque tienen comunidades grandes y datasets enormes
Por eso, en los lenguajes minoritarios el efecto de mejora de accesibilidad no es tan grande
La mayoría de los programadores no domina lo suficiente esos lenguajes minoritarios como para detectar bugs pequeños
Como ya enseñó el machine learning, al final lleva ventaja el lado con más datos de entrenamiento
La IA es fuerte en el pattern matching
Si ajustas el problema a patrones ya existentes, te puede dar de inmediato buenos ejemplos de código
Pero mientras más complejo o raro sea el problema, menos útil se vuelve la IA
Los humanos pueden manejar con más flexibilidad conceptos más abstractos y dinámicos
Quienes usan lenguajes minoritarios normalmente valoran más otras cosas además de la popularidad (por ejemplo: eficiencia, dinero, aprendizaje, etc.)
Si de verdad se necesitara popularidad para un lenguaje, bastaría con que expertos dejaran mucho buen código de ejemplo ajustado a los idioms, y luego la IA podría generar muchas variaciones; eso podría bajar drásticamente la barrera de entrada
Si hacer proyectos pequeños se vuelve fácil, la gente empezará a interesarse más por el lenguaje mismo
Los LLM tienden a alucinar más seguido en lenguajes minoritarios
Yo soy desarrollador de Scala, y creo que la mayoría de las discusiones sobre la utilidad de la IA dependen bastante del tipo de lenguaje que uno use
Si fuera un lenguaje como JS, tal vez sí sería más útil
Me preocupa que, cuando aparezcan lenguajes o frameworks nuevos, si la IA no ofrece soporte preciso, la gente empiece a evitar esos cambios
Puede que sientan que la incomodidad supera los beneficios
Con cada nuevo release, se vuelve casi obligatorio contar con documentación MCP amigable para IA o materiales adicionales
En mi caso, tuve una experiencia muy positiva usando claude y Elm
Gracias al sistema de tipos estático, la precisión fue alta y me ayudó bastante
Claro, a veces también da respuestas raras, pero supongo que eso nos pasa a todos
Creo que ya vivimos en una época en la que prácticamente no hay barreras entre los lenguajes principales
Si ves solo los 10 lenguajes más usados hoy para desarrollar aplicaciones, la mayoría comparte raíces en C o ALGOL y también sintaxis parecida, call-by-reference y gestión automática de memoria
Un desarrollador profesional puede cambiar de uno a otro sin demasiados problemas
Aprender gestión de memoria por primera vez puede costar un poco, pero con patrones conocidos, advertencias y buenos linters, se sobrelleva
Los lenguajes con una curva de aprendizaje realmente dura son más bien Rust, Ada SPARK, Lisp, Forth, ML, etc., y esos no son los mayoritarios
Estoy usando la IA como compañera auxiliar de programación
Aprovecho ese “conocimiento amplio pero superficial” de la IA para explorar primero, y luego le pido ayuda cuando quiero profundizar en un área concreta
La uso más para aprender conceptos o tecnologías nuevas (por ejemplo, un backend de webauthn o la integración de passkeys) que para aprender un lenguaje nuevo
Incluso para principiantes, la IA puede ser de gran ayuda
Eso sí, a veces me dio ejemplos equivocados (como dependencias obsoletas), pero al final eso me llevó a entender el tema más a fondo, así que incluso fue una buena experiencia
No me gustaría dejarle a la IA la tarea de desarrollar una app de forma completamente automática
Comete errores pequeños con cierta frecuencia, así que siempre hay que revisar
Últimamente la IA me ha ayudado muchísimo a estudiar un codebase en Swift que conocí hace poco
Me resuelve dudas rápido y acelera el aprendizaje
Aun así, para aportar de verdad en un proyecto complejo, siguen siendo imprescindibles la habilidad y la experiencia
Incluso en lenguajes que ya conozco veo muchos errores; en uno que no conozco, revisar se vuelve todavía más difícil
Cada vez que profundizas en un lenguaje nuevo, revisar bien toma mucho tiempo hasta que te familiarizas
Se dice que la barrera del lenguaje bajó, pero en la práctica también ves casos como WhatsApp cambiando de app de escritorio a web app, así que la barrera no ha desaparecido por completo
Esto me recuerda a cuando Microsoft, hace tiempo, promovía la plataforma .Net con la idea de que un mismo equipo colaborara usando lenguajes como J#, Fortran.Net, Cobol#, etc.
Hasta lo vendían diciendo que así incluso gente experta en #Intercal podría multiplicar por cuatro su productividad
Espero que, por efecto de la IA, los lenguajes de programación evolucionen hacia opciones con un potente sistema de tipos Hindley Milner
Haskell es difícil de aprender, pero si hubiera suficientes datasets, sería un objetivo perfecto para agentes de código
Es de alto nivel, permite verificación formal y además se puede integrar con relativa facilidad un language server con IA
En la realidad parece que está pasando lo contrario, y que Haskell más bien va a quedar rezagado en soporte de IA
Si te gustan los lenguajes funcionales, vale la pena preguntarte por qué la programación en lenguaje natural resulta tan atractiva
El lenguaje natural puede expresar resultados de forma ambigua, y la máquina rellena automáticamente esos huecos
Para que eso sea una innovación de verdad, haría falta una forma de programar que combine lógica fuerte + ambigüedad, por ejemplo algo basado en lógica como MTL
Lamentablemente, la investigación en esa área casi se detuvo y ahora dominan las redes neuronales
Desde la perspectiva de los LLM, Haskell es menos amigable porque tiene muchas características profundas del lenguaje
Los LLM trabajan sobre todo con patrones de texto
Los lenguajes con características simples y errores de compilación amables (por ejemplo, Go) son los que mejor maneja la IA
En lo personal prefiero los lenguajes con buena inferencia de tipos, pero desde la perspectiva de la IA es distinto
Probé herramientas LSP MCP + LLM y me dejaron un poco decepcionado
LSP fue diseñado originalmente para usuarios humanos, así que no encaja perfectamente con la IA
Los LLM son buenos para hacer pattern matching, y si la estructura de tipos es simple, casi no aparecen errores de tipos
En estructuras complejas, el LLM puede no resolverlo, o el usuario puede no llegar a entenderlo
También está la pregunta de si existen casos a gran escala de verificación formal con Haskell; seL4 y CompCert, por ejemplo, están basados sobre todo en C o en Coq+OCaml
Tal vez aumente el uso de lenguajes con tipos dependientes como Agda
Aun así, si el dataset es demasiado pequeño, puede volverse difícil que la IA transfiera conocimiento
Conviene tratar a la IA como una compañera de pair programming
A medida que el usuario aprende, el rol de la IA cambia: al principio da explicaciones básicas y genera fragmentos pequeños de código, y después pasa a discusiones más avanzadas + generación de bloques grandes de código y revisión de código
Con el tiempo, tú mismo empiezas a detectar más bugs
Si ves la IA no como un simple generador de código sino como una compañera con habilidades complementarias, de verdad ayuda mucho
Si estás en un lenguaje que no conoces, conviene preguntarle con detalle por la solución que propone
Si le preguntas cosas concretas como “¿por qué se hace así?” o “¿qué pasa en otros escenarios?”, de verdad ayuda mucho a aprender
Hacer preguntas permite que la IA valide mis ideas, pero después de repetir eso varias veces, se vuelve difícil confiar por completo
También conviene crear el hábito de hacer que la IA formule preguntas claras
Eso ayuda a detectar antes si entendiste mal algo o si tu lógica tiene vacíos
Quise probar la capacidad de Gemini para generar código y le pedí un script de bash, pero tenía errores
Por suerte conozco bash y pude corregirlo al instante, pero si hubiera sido un lenguaje que no conozco, me costaría decir que eso realmente elimina la barrera del lenguaje
Creo que eso es un problema muy propio de bash
Por ejemplo, cuando le pedí al LLM una automatización parecida en Go, funcionó bien a la primera
No creo que sea justo verlo como un problema de Gemini en sí; sin información precisa sobre el modelo de IA, no me convence criticarlo solo por el nombre de la marca
De hecho, configurándolo como “Gemini 2.5 Pro (Jan 2025), temperatura 0.15”, generó enseguida un excelente idiomatic bash script
(se omite el código de ejemplo)
Eso sí, también me topé con un problema de saltos de línea en un archivo editado con Windows Notepad dentro de WSL2, y Gemini me explicó amablemente cómo resolverlo
Lo curioso es que, en bash, el hecho de que la última línea no tenga salto de línea y eso impida procesarla bien es una limitación del propio bash
En PowerShell, casi la misma tarea se puede hacer con un one-liner, y además no hay problema aunque al final no haya salto de línea
Con ayuda de Gemini, también pude optimizar PowerShell a un código corto
https://ruby-news.kr/articles/…
Resumen del servicio que estoy creando. Es una traducción, así que es similar, pero GeekNews está mejor organizado y se ve mejor.