ICM / microsofttitle_li=partnerstitle_li=Sin categoría / GitHub Copilot el asistente de programación
GitHub Copilot el asistente de programación
17 noviembre 2022 | Vlad Erokhin
Introducción
En el verano de 2021, Microsoft y GitHub presentaron Copilot, un asistente de programación de redes neuronales que debería ayudarse a escribir un código mejor y más rápido. Copilot se ha desarrollado en colaboración con OpenAI y se basa en OpenAI Codex, un nuevo sistema de inteligencia artificial creado por OpenAI.
OpenAI Codex tiene un amplio conocimiento de cómo la gente utiliza el código y sabe cómo generar el código por sí mismo, dependiendo del contexto del código en el que el programador está trabajando, sugiriendo líneas enteras o incluso funciones enteras para ser añadidas. Esto ayuda a escribir código más rápidamente, a encontrar soluciones alternativas a los problemas, a explorar nuevas APIs y etc., sin tener que buscar soluciones en Internet.
Para entrenar a Copilot, GitHub utilizó todo el código público publicado en sus recursos, por lo que Copilot funciona con una amplia gama de frameworks y lenguajes, pero es especialmente bueno, según los desarrolladores, para Python, JavaScript, TypeScript, Ruby y Go.
Utilización
Para utilizar Copilot deberá seleccionar Start my free trial en la página oficial de Copilot:

Si no tiene una cuenta de GitHub, tendrá que crear una. El periodo de prueba está limitado a 60 días y puede cancelarse en cualquier momento sin que se cargue en su tarjeta (pero tendrá que facilitar los datos de tu tarjeta). Después de 2 meses, Copilot costará 10 dólares al mes o 100 dólares al año.
Copilot está disponible como extensión para Visual Studio, Visual Studio Code, JetBrains IDE y Neovim. En la documentación oficial se pueden encontrar instrucciones detalladas sobre cómo instalar las extensiones de cada uno de los programas.
Entonces, después de activar la suscripción gratis e instalar la extensión en el programa seleccionado, puede comenzar a escribir el código, donde Copilot le ofrecerá agregarlo. Por ejemplo, queremos escribir una función que devuelva la factorial de un número:

Apenas tuvimos que hacer nada. Ya por el nombre de la función, Copilot sugirió una solución.
O podemos hacer algo aún más sencillo y describir lo que queremos hacer en forma de comentario o podemos utilizar la combinación de teclas Ctrl + Enter para ver todas las soluciones posibles y elegir la más adecuada:

Los ejemplos anteriores muestran la facilidad con la que Copilot puede utilizarse para escribir código, por lo que en los primeros tiempos se especulaba con que los programadores no serían necesarios al cabo de un par de años y serían sustituidos por la inteligencia artificial. Por ahora, sin embargo, estos temores son infundados, porque Copilot no puede diseñar algunas cosas complejas como un sistema de alto rendimiento para el comercio de la bolsa, pero bien podría ser otra herramienta eficaz en el arsenal de un programador para aumentar su eficiencia y ahorrar tiempo cuando necesite buscar alguna solución en Internet.
Seguridad
Siempre vale la pena considerar cada solución desde el punto de vista de la seguridad. En el caso de Copilot, surge inmediatamente la pregunta de hasta qué punto es seguro utilizar código generado por la IA. Y un estudio realizado por ingenieros de la Escuela de Ingeniería Tandon de la Universidad de Nueva York puede servir de respuesta. Dice que el 40% de las veces Copilot genera código con errores y vulnerabilidades. Pero no es de extrañar, porque Copilot se entrena con el código fuente de GitHub, que también tiene fallos.
Y si Copilot está entrenado en el código de GitHub, ¿qué impide que un atacante publique a propósito código que contenga vulnerabilidades y problemas no evidentes para que Copilot sugiera el uso de este código en el futuro, creando problemas de seguridad adicionales en el software?
Todo esto hace que haya que tener mucho cuidado con las soluciones que ofrece el ayudante Copilot.
Utilización ética
Casi inmediatamente después de la aparición de Copilot, sus desarrolladores admitieron que estaban utilizando todo el código público disponible en los repositorios del servicio sin tener en cuenta el tipo de licencia. Esto provocó la indignación tanto de los desarrolladores de terceros como de los usuarios comunes, que acusaron a Microsoft tanto de violar los términos de las licencias de código abierto como de infringir los derechos de los programadores. Esto finalmente culminó en una demanda contra la empresa, que fue presentada a principios de noviembre de 2022.
Las licencias de código abierto como las licencias GPL, Apache y MIT requieren el nombre del autor y la definición de derechos de autor específicos, pero Copilot no indica específicamente quién es el autor del fragmento de código fuente, incluso si lo copia de un repositorio específico en fragmentos de más de 150 caracteres.
Otra cosa desagradable de esta situación es que Microsoft se exime por completo de la responsabilidad por el código que usa, sobre el cual escriben en la página principal del proyecto Copilot:

Resumen
GitHub Copilot es un paso más en el desarrollo de la inteligencia artificial que permite escribir código más rápido y encontrar soluciones en algunos puntos sin tener que buscar en Internet, lo que la convierte en una herramienta muy interesante que merece la pena al menos probar.
Al mismo tiempo, hay que tener mucho cuidado con el código que Copilot sugiere utilizar. En primer lugar, puede ofrecer soluciones con posibles vulnerabilidades y fallos, y en segundo lugar, ignora las licencias bajo las que se ha publicado el código fuente, y la responsabilidad de su uso recae en el desarrollador que lo utiliza.
