Cómo empezar con Github Copilot: guía básica para desarrolladores

Github Copilot se integra con algunos de los entornos de desarrollo más utilizados en la actualidad como Visual Studio, Neovim, la familia de JetBrains y Visual Studio Code.
Copilot Cómo empezar con Github Copilot: guía básica para desarrolladores

¿Recuerdas a aquel compañero de clases al que todos querían a su lado porque podías consultarlo y te sugería las respuestas sin esfuerzo alguno?

Si no lo recuerdas, buenas noticias, probablemente fueras tú 😜.

Si eres programador, hoy quiero presentarte a tu compañero sabelotodo que querrás tener el resto de tu vida. Hablamos de Github Copilot.

En el artículo de hoy nos proponemos enmarcar teóricamente esta tecnología y rápidamente pasar a explicar cómo instalarla en tu ordenador y desarrollar algunos ejemplos sencillos para evaluar el rendimiento del modelo.

Para entrar en materia debemos definir primeramente este modelo.

¿Qué es Github Copilot?

Copilot es una herramienta basada en inteligencia artificial, específicamente en el algoritmo Codex de OpenAI, para acompañar a sus usuarios en el proceso de desarrollo, convirtiendo indicaciones en lenguaje natural a código en distintos lenguajes de programación y completando código basado en el contexto.

Por esto hacía la analogía anterior del compañero listo de tu clase, porque una vez instalado te comenzará a sugerir código, permitiéndote ahorrar mucho tiempo.

¿Cómo funciona Copilot?

Copilot utiliza el mismo mecanismo que GPT-3, pero su entrenamiento está enfocado al desarrollo, por lo que fue entrenado con los repositorios de código fuente de Github.

En este sentido, es importante destacar que para su entrenamiento se utilizaron solamente los repositorios públicos de Github, por lo que se desestima toda la polémica inicial basada en la preocupación por la sugerencia por parte de Copilot de claves privadas o información sensible en general.

¿Para qué lenguajes de programación está disponible?

Según su web oficial, Copilot está optimizado para trabajar con Python, JavaScript, TypeScript, Ruby, Go, C#, y C++.

No obstante, puede probar con otros lenguajes, pero no se garantizan resultados óptimos.

¿Con qué entornos de desarrollo se integra?

En la práctica, Copilot puede encontrarse como una extensión en algunos de los entornos de desarrollo más utilizados en la actualidad, como son: Visual Studio, Neovim, la familia de JetBrains y Visual Studio Code, que estaremos utilizando para implementar los ejemplos de este artículo.

Instalando Copilot en Visual Studio Code

  1. El primer paso es instalar la herramienta Visual Studio Code. Puedes descargarla de forma gratuita desde su web oficial.
  2. Abrir Visual Studio Code y entrar en el apartado Extensiones en el menú de la izquierda o simplemente presionar Control + Shift + X.
    Paso 2 Cómo empezar con Github Copilot: guía básica para desarrolladores
  3. Escribir en el campo de búsqueda Copilot y hacer clic en Instalar.
    Paso 3 Cómo empezar con Github Copilot: guía básica para desarrolladores
  4. Una vez instalado, obtendremos una pestaña como esta, informándolo.
    Paso 4. Copilot Instalado Cómo empezar con Github Copilot: guía básica para desarrolladores
  5. A continuación, la extensión solicitará acceso a la cuenta de Github. Hacemos clic en Iniciar Sesión en Github.
    Paso 5. Copilot requiere acceso a Github Cómo empezar con Github Copilot: guía básica para desarrolladores
  6. Iniciamos sesión en Github y confirmamos el acceso de la extensión a nuestra cuenta y listo, ya tenemos Copilot funcional en nuestro ordenador.
    Paso 6. Copilot listo Cómo empezar con Github Copilot: guía básica para desarrolladores

Manos a la obra, hagamos algunos ejemplos

Ejemplo 1. Hola Mundo

Vamos a empezar exigiéndole poco a la herramienta con el clásico Hola Mundo para ir calentando motores. Veamos el resultado.

hello world Cómo empezar con Github Copilot: guía básica para desarrolladores

Este primer ejemplo es muy básico, y de no cumplir las expectativas sería decepcionante, pero Copilot cumplió esta vez.

Con un comentario en lenguaje natural, la IA fue capaz de generar el nombre del método y su sintaxis. Prueba superada.

Ejemplo 2. Average

Vamos a subir el nivel solo un poco, enfocándonos en una operación básica de cálculo de average, donde nuevamente le daremos una indicación inicial en lenguaje natural y esperamos el resultado.

Probando Github Copilot. Average.

En este caso, Copilot fue capaz de asumir que el método average necesitaba un parámetro numbers para representar la lista de números para realizar la operación de suma y la respectiva división que requiere este cálculo.

Prueba superada.

Ejemplo 3. Validando un email

La validación es una operación muy común en los sistemas informáticos.

Su aplicación se basa en el uso de expresiones regulares que por lo general los desarrolladores buscamos para ahorrar tiempo, pero con la ayuda de Copilot estas operaciones triviales lo son mucho más.

Veamos cómo funciona con expresiones regulares.

Probando Github Copilot. Validando email.

A destacar en este caso como resolvió la indicación de preguntarle el correo al usuario, llamar la función e imprimir el resultado, 3 instrucciones en un mismo comentario que “entendió” a la perfección. Prueba superada.

Ejemplo 4. Fibonacci

El objetivo de este ejemplo fue demostrar que tan bien se le da la recursividad a Copilot. Para esto elegimos un ejemplo clásico, la sucesión de Fibonacci.

En esta serie, cada número es la suma de los 2 anteriores.

En este caso decidimos darle a Copilot una instrucción sencilla y esperar el resultado de su interpretación.

Probando Github Copilot. Fibonacci

De esta forma, con un simple “a Fibonacci method” la respuesta fue la implementación de un método que requiere un número como entrada y devuelve la sucesión de Fibonacci hasta el mismo. Prueba superada.

Ejemplo 5. Convertir grados Celsius a Fahrenheit

Ejemplo simple para ver que tan bien se le da la conversión de unidades.

Celcius to Fahrenheit Cómo empezar con Github Copilot: guía básica para desarrolladores

Prueba superada

Ejemplo 6. Día de la semana de una fecha

En esta prueba le complicamos un poco más el input, le pedimos que pregunte al usuario una fecha en un formato específico y que devuelva el día de la semana.

Para esto debería asumir que la fecha que le pasa el usuario debe ser usada como parámetro, y debe realizar la conversión a un objeto fecha del lenguaje para realizar la operación.

Veamos cómo lo resuelve Copilot.

Probando Github Copilot. Día de la semana.

En este caso vemos como Copilot es capaz de importar la librería que necesita para el trabajo con fechas y es capaz de hacer las conversiones necesarias. Probemos el código generado en la consola.

Ejecutando Día de la Semana.

Prueba superada.

Ejemplo 7. Días pasados entre 2 fechas

Seguimos con el trabajo con fechas, esta vez quiero que Copilot me calcule cuantos días han pasado entre 2 fechas introducidas por el usuario. Veamos el resultado.

Probando Github Copilot. Días pasados entre 2 fechas.

En este caso me llamó la atención el modo en que Copilot llamó al método.

Para probarlo le pedí primeramente que le preguntara al usuario la primera fecha, luego la segunda y después que llamara la función e imprimiera el resultado, y para mi sorpresa, Copilot pudo inferir que los parámetros que necesitaba eran los que le pidió al usuario, esto nunca se lo indiqué explícitamente.

Sin embargo, en este caso no fue capaz de importar la librería datetime que necesitaba para realizar la operación, por lo que necesitó de mi intervención para “recordárselo”.

No obstante, considero que superó la prueba.

Ejemplo 8. Base64

Otro ejemplo simple pero muy útil, la codificación y decodificación entre cadenas de texto y base64.

Probando Github Copilot. Base64

Prueba superada.

Ejemplo 9. Clasificador de triángulos

Este ejemplo tiene como objetivo ver como se adapta Copilot a la interacción con el usuario.

En este caso le pedí que hiciera un método que verificara si dado 3 lados se podía formar un triángulo entre ellos.

Posteriormente, le pedí otro método que clasificara un triángulo y con mi intervención hice que validara antes el triángulo.

Posteriormente le indiqué que llamara la función asumiendo los valores.

Probando Github Copilot. Clasificador de triángulos.

Prueba superada.

Ejemplo 10. Traductor de Google

Este ejemplo tiene como objetivo verificar el comportamiento de Copilot consumiendo servicios en internet.

Para este caso elegimos el traductor de Google, y le indicamos que implementara una función que tradujera una palabra utilizando el traductor de Google.

Posteriormente que llamara la función para traducir la palabra “perro” en inglés y en francés, y luego que hiciera lo mismo en los lenguajes más populares. Veamos como Copilot lo resuelve.

Probando Github Copilot. Traductor de Google.

Ejecutemos el código generado en la consola.

Ejecutando traductor de Google.

Prueba superada.

Accesos rápidos en Visual Studio Code

Puedes ahorrar tiempo utilizando los siguientes atajos de teclado.

Aceptar sugerenciaTab
Rechazar sugerenciaEsc
Mostrar próxima sugerencia onlineAlt+]
Mostrar sugerencia anterior onlineAlt+[
Activar sugerencia onlineAlt+\
Abrir panel de sugerencias de CopilotCtrl+Enter

En este caso recomiendo muchísimo el uso del panel de sugerencias de sugerencias de Copilot.

Este panel sintetiza hasta 10 soluciones para tu problema para que puedas elegir la que te parezca más adecuada en tu caso.

Panel de Github Copilot.

Hablemos de dinero, ¿cuánto me cuesta Copilot?

Copilot cuenta con un plan de pruebas gratuito por 60 días, suficiente para que te enamores 😂.

A partir de ese momento, puedes optar por pagar $10 al mes o $100 al año por cada usuario. Si te dedicas profesionalmente a la programación, solo por el tiempo que te ahorra, creo que el dinero estará muy bien invertido.

Hasta aquí el artículo de hoy. Espero que los ejemplos te hayan podido ilustrar sobre las potencialidades de la inteligencia artificial como apoyo al desarrollo de software y específicamente el poder de Copilot como uno de sus primeros representantes formales y eficientes.

Te dejo con su web oficial para que revises todos los detalles y te invito como siempre a que permanezcas con nosotros. Si te gustó este contenido creo que puede interesarte nuestra selección de alternativas de modelos de lenguaje similares a GPT-3.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.