GitHub Copilot: Cuando una IA empieza a programar por ti

Son muchos los clientes que acuden a empresas de desarrollo de software pidiendo programas que les faciliten el día a día ya sea a nivel empresarial como a nivel personal. ¿Pero… y si una empresa de desarrollo busca facilitar su día a día a la hora de desarrollar código a medida?

Cuando un cliente pide desarrollar diferentes tipos de funcionalidades que van desde saber la edad media de los usuarios que visitan su plataforma o hacer machine learning con los registros de la base de datos (o incluso obtener las estadísticas de los actuales Pokémon en el juego Pokémon GO), el programador ha de pensar cuál es la mejor manera de implementarlo y buscar información que pueda ayudarle a crear este código.

Esta tarea ahora se ha vuelto más sencilla gracias a una inteligencia artificial creada por GitHub: Copilot.

En primer lugar, comentar que GitHub es una web que utilizan millones de programadores para alojar su código en la nube y tener un control de versiones de este. No es de extrañar entonces, que a alguien se le ocurriese la fantástica idea de coger una IA para leer todos los programas desarrollados por la comunidad, entender sus funcionalidades y de esta manera ayudar a otros programadores a desarrollar más rápido.

¿Y de qué manera podría ayudar esta IA? Muy sencillo: instalándola en el editor de desarrollo y cada vez que necesites desarrollar una funcionalidad, primero escribes lo que necesitas (obtener los datos de los Pokémon de la web y exportarlos en un fichero) y la IA te recomendará una funcionalidad de lo que necesitas.

Copilot se basa en el Codex de OpenAI, que se entrenó con una gran cantidad de código disponible públicamente. Básicamente, el sistema está entrenado para que aprenda a completar fragmentos de código.

Por el momento, solo se puede usar con el editor VS Code y aunque admite muchos lenguajes, los que se mencionan específicamente son Python, JavaScript, TypeScript, Ruby y Go. Por el momento, la prueba está abierta a todos y en breve se comenta que habrá un servicio de pago.

Al ser una IA, no hace falta que nos preocupemos por los derechos de autor del código generado, ya que Copilot, en la mayoría de las ocasiones, genera un código totalmente nuevo que nunca antes se había utilizado, es decir, no en todo el conjunto. Incluso si un trozo de código fuese exactamente igual, la idea que ese pequeño fragmento tuviese derechos de autor es bastante improbable.

Como comentaba Harri Edwards de la empresa OpenAI: Intentar codificar en un idioma desconocido buscando en Google todo es como navegar por un país extranjero con solo un libro de frases. Usar GitHub Copilot es como contratar a un intérprete.

Entonces, ¿es esta la sentencia de muerte para la programación y los programadores? Probablemente no.

Lo que sí nos muestra Copilot es cuánta redundancia hay en el código. Probablemente necesitemos trabajar con bloques de implementación más grandes.

El desarrollo rápido se convertirá en clave para generar código de calidad basado en Copilot, al definir correctamente los requisitos tanto comerciales como técnicos. Copilot creará / impulsará nuevos roles en la industria del desarrollo de software al mismo tiempo que interrumpe los que no agregan valor real al proceso de creación de software.

Octubre 2021
Félix Sandoval / Programación