Software Crafters® 2026 | Creado con 🖤 para elevar el nivel de la conversación sobre programación en español | Legal
Mientras los IDEs mainstream se apoyaban en el compilador y los lenguajes dinámicos en heurísticas, en la academia se cocinaba algo distinto. Aplicar machine learning al code completion.
El primer paso lo dieron en 2009 Marcel Bruch, Martin Monperrus y Mira Mezini en la conferencia ESEC/FSE. Su paper, Learning from Examples to Improve Code Completion Systems, proponía algo muy directo. En vez de listar todos los métodos disponibles de un objeto por orden alfabético, listarlos por probabilidad de uso aprendida de repositorios reales. Lo integraron en Eclipse, hicieron un estudio con usuarios y demostraron que era mejor que el completion estándar.
Tres años después, en 2012, llegó el paper seminal de esta línea. Abraham Hindle y compañía, en la ICSE, publicaron On the Naturalness of Software. La idea era que el código fuente es más repetitivo que el lenguaje natural, así que se puede modelar con las mismas técnicas. Concretamente, con modelos de lenguaje basados en n-grams. Los mismos que se usaban entonces para predecir la siguiente palabra de un mensaje de texto.
Y en 2014, Veselin Raychev, Martin Vechev y Eran Yahav publicaron en PLDI Code Completion with Statistical Language Models, llevando la idea a su expresión más afinada para el caso concreto del autocompletado.
Cinco años, tres papers, una conclusión común. En vez de escribir reglas, aprende patrones de cómo se escribe código en miles de repositorios.
No salió ningún producto de aquello. Pero el cambio de paradigma ya estaba sobre la mesa.
Este post forma parte de la serie Evolución de la IA para programar.
¿Quiéres leer más artículos como éste? Pues suscríbete a la newsletter