21 puntos por GN⁺ 2025-07-25 | 5 comentarios | Compartir por WhatsApp
  • 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

 
tested 2025-07-25

La generación de código, quizás, pero ¿quién hace la inspección o revisión del código...?

 
3ae3ae 2025-07-27

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.

 
girr311 2025-07-25

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.

 
GN⁺ 2025-07-25
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

    • Me cuesta entender cómo alguien puede tener confianza en resultados de IA en un lenguaje que no conoce
      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

    • Me gustaría volver a aquella época en la que de verdad podíamos creer esas cosas
  • 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

 
stadia 2025-07-25

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.