Recursos

GitHub Copilot: ¿Acaso es una bendición o una maldición?

La desarrollo de software es la práctica de la ingeniería para construir, diseñar, desarrollar, mantener y retirar software. Existen diferentes áreas en ella y cumple muchas funciones a lo largo del ciclo de vida de cualquier aplicación. La ingeniería de software efectiva requiere que los ingenieros de software estén educados sobre las mejores prácticas de ingeniería de software, disciplinados y conscientes de cómo su empresa desarrolla software, la operación que cumplirá y cómo se mantendrá. Pero sin lugar a duda tantos son los avances en la tecnología que dentro muy poco esta labor de desarrollo de software será acompañada de inteligencia artificial para poder llevar a cabo desarrollo más ágiles.

Recientemente fue lanzada al mercado una herramienta denominada GitHub Copilot. GitHub Copilot es el nuevo servicio de GitHub y OpenAI, descrito como un programador de pares basado en Inteligencia Artificial, es decir, es un complemento para la herramienta Visual Studio Code que genera automáticamente código según el contenido del archivo actual y la ubicación actual del cursor.

Ciertamente, esta no es la primera herramienta de síntesis de programación «impulsada por IA». La búsqueda de código semántico en lenguaje natural de GitHub en 2018 demostró encontrar ejemplos de código utilizando descripciones sencillas en inglés. Tabnine ha proporcionado finalización de código de igual manera impulsada por la IA y durante algunos años. La diferencia con Copilot es que este último puede generar funciones completas de varias líneas e incluso documentación y pruebas, basándose en el contexto completo de un archivo de código.

Esto resulta ser emocionante para la comunidad de desarrolladores porque promete que puede reducir la barrera de la codificación, lo que ayudaría enormemente procesar y entregar códigos en un tiempo menor. Ahora bien, entendamos como funciona y como se alimenta esta herramienta. Copilot funciona con un modelo de lenguaje de redes neuronales profundas llamado Códex, que se entrenó en repositorios de código público en GitHub, a su vez esta herramienta también se alimenta de otras fuentes como blogs, foros, etc.

Es imperante resaltar que esto es básicamente un modelo de lenguaje que está capacitado para adivinar las palabras que faltan en un fragmento de texto. El enfoque del modelo de lenguaje del Códex aprende a adivinar los símbolos que faltan en el código de programación, por lo que tiene que aprender mucho sobre la estructura y el significado del código de computadora. Como veremos más adelante, los modelos de lenguaje tienen algunas limitaciones importantes que se deben fundamentalmente a cómo se crean.

El hecho de que Copilot esté capacitado en el código disponible públicamente, bajo una variedad de licencias, ha llevado a muchas discusiones sobre las implicaciones éticas y legales. Por otro lado la abogada de propiedad intelectual Kate Downing, menciona que el uso de las sugerencias de Copilot puede ser una violación de licencia. Pero como todo acontecimiento disruptivo, nos viene una pregunta a la mente; ¿representa realmente una amenaza competitiva esta herramienta?.

Nosotros desde frontierpost consideramos que la tecnología es para mejorar la vida de las personas, al final del día esta herramienta viene a complementar una tarea que sin lugar a duda requiere del conocimiento, técnica y sentido humano que cada desarrollador le impregna a sus códigos. Con esto, no creemos que vaya a suceder un reemplazo de desarrolladores, simplemente los tiempos de entrega resultaran más ágiles.