En el mundo en constante evolución del desarrollo de software, la integración de la inteligencia artificial ha marcado un antes y un después. Los modelos de lenguaje grande, conocidos como LLM por sus siglas en inglés, están revolucionando la forma en que los programadores abordan la codificación y la resolución de problemas. La idea de utilizar estos potentes modelos para generar, corregir o incluso optimizar código es cada vez más común, pero una cuestión vital emerge: ¿qué tan bien funcionan estos LLM en diferentes lenguajes de programación? Esta pregunta cobra gran relevancia, especialmente al considerar la diversidad y complejidad de los lenguajes modernos, así como las especificidades que cada ecosistema de desarrollo presenta. Recientemente, se llevó a cabo un análisis exhaustivo que confronta el rendimiento de diecisiete modelos de lenguaje en cuatro lenguajes de programación tipados populares. Este estudio no solo arroja luz sobre qué modelos y lenguajes combinan mejor, sino que también invita a reflexionar sobre el impacto que la inteligencia artificial tendrá en las tendencias futuras de la programación.
El punto de partida para esta comparación radica en una experiencia cotidiana de desarrolladores que utilizan LLM a diario. El autor de este estudio, observando variaciones en la calidad del código generado por estos modelos, decidió cuantificar esas diferencias y explorar qué factores influyen en ellas. Para ello, optó por cuatro lenguajes tipados: Python, TypeScript, Swift y Rust, cada uno con sus características particulares y niveles de complejidad. Uno de los aspectos más interesantes de la investigación es el vínculo entre la cantidad de código disponible públicamente para entrenar a los LLM y su desempeño en cada lenguaje. Por ejemplo, lenguajes como Python y JavaScript cuentan con una vasta base de código y usuarios en plataformas como GitHub, lo que facilita el entrenamiento y mejora las capacidades de los modelos en estos entornos.
En contraste, lenguajes como Rust y Swift, aunque muy valorados por su eficiencia y tipo seguro, tienen menos volumen de código disponible, lo que podría representar un desafío mayor para los LLM a la hora de generar soluciones precisas y eficientes. Aunado a esto, la arquitectura y las complejidades propias de cada lenguaje tienen su peso. Rust, por ejemplo, incorpora sistemas de tipos avanzados y gestión de memoria a través de lifetimes y traits, lo que implica que para generar código correcto, un LLM debe entender un ecosistema más sofisticado y menos aislado. Esto no solo requiere más datos de entrenamiento, sino también una capacidad superior para correlacionar fragmentos de código y entender dependencias más allá del bloque inmediato de programación. Para llevar a cabo el análisis, se diseñó un proyecto pequeño en Python con una base de problemas de programación que los LLM debían resolver.
Las pruebas incluían tareas genéricas, como transformar cadenas de texto en mayúsculas, así como desafíos específicos para cada lenguaje, como la resolución compleja de errores de tipado o la implementación de servidores HTTP. Esto permitió evaluar la calidad del código generado en diferentes escenarios prácticos y reales. En cuanto a la evaluación de las respuestas, se aplicaron múltiples métodos que iban desde la verificación de tipos, ejecución real del código, hasta la comprobación de la presencia de ciertos patrones o funciones específicas. De esta manera, se pudo medir con mayor precisión no solo la corrección del código, sino también la comprensión del ecosistema y las bibliotecas propias de cada lenguaje por parte de los modelos. Uno de los descubrimientos más reveladores fue la disparidad en los resultados de un mismo modelo de lenguaje al trabajar con diferentes lenguajes de programación.
Por ejemplo, el modelo denominado Sonnet 3.5 mostró un éxito del 81% en Python y TypeScript, pero solo alcanzó el 71% en Swift y un 62% en Rust. Estas cifras reflejan cómo la familiaridad del modelo con el lenguaje y su ecosistema afecta el éxito en la generación de código exacto y funcional. Además de la precisión, se analizaron también la velocidad y el costo computacional que implica trabajar con cada modelo y lenguaje. Algunos modelos como Deepseek, aunque económicos, mostraron una ejecución extremadamente lenta, demorando horas para completar las distintas pruebas.
Por otro lado, modelos como o3-mini ofrecieron un rendimiento excepcional, equilibrando velocidad, costo y calidad de salida, siendo especialmente eficientes en Swift. Un punto crucial del estudio es cómo esta diferencia en la efectividad de los LLM para distintos lenguajes puede modificar el panorama del desarrollo futuro. Si los modelos de IA son más competentes en ciertos lenguajes, es probable que los desarrolladores se sientan incentivados a adoptarlos, generando así una brecha en la popularidad y uso de lenguajes. Esto podría conducir a una concentración de talento y recursos en lenguajes mejor soportados por la IA, dejando a otros en desventaja y ralentizando su evolución. El análisis también incluyó la estabilidad de los resultados, evaluando si un mismo problema planteado varias veces se resolvía consistentemente por los LLM.
La no determinación inherente a estos modelos hace que la estabilidad sea un aspecto fundamental para confiar en sus respuestas en entornos reales de desarrollo. Resultó evidente que aunque existe cierta variabilidad, los modelos más avanzados fueron más estables en sus respuestas, lo que es un buen indicio para su aplicación práctica. Por último, el estudio no solo se centró en cuál es el mejor modelo o lenguaje individualmente, sino en cómo cada combinación específica influye en la productividad y calidad del desarrollo asistido por IA. Python lidera con una tasa de éxito del 89%, seguido por TypeScript con 73%, Swift con 69% y Rust con 65%. Estos porcentajes reflejan la madurez y accesibilidad que ofrecen estas tecnologías cuando se combinan con la potencia de los LLM.
En conclusión, la programación potenciada por LLM ya no es una mera tendencia, sino una realidad que redefine el desarrollo de software. Sin embargo, los desarrolladores deben ser conscientes de que la elección del lenguaje influye significativamente en la efectividad de la IA. Los resultados de este estudio son un llamado para que tanto investigadores como comunidades de desarrollo continúen ampliando el soporte y la capacitación de modelos en lenguajes menos explotados, buscando un equilibrio que no solo potencie el rendimiento, sino que también preserve la diversidad y el avance tecnológico en todas las áreas. La revolución de la inteligencia artificial en programación apenas comienza y saber cómo sacarle el mejor provecho requerirá una combinación de entendimiento técnico, estrategias de entrenamiento y una visión clara de hacia dónde queremos dirigir el futuro del desarrollo digital.