GitHub Copilot ha sido una de las herramientas más revolucionarias en el mundo de la programación estos últimos años, desde su lanzamiento en junio de 2021 millones de desarrolladores en todo el mundo han confiado en esta tecnología muchos incluso llegándola a convertir en una necesidad para su día a día. La versión actual de esta herramienta basada en el modelo de lenguaje GPT-3.5 turbo es capaz de generar sugerencias de código a partir del código o comentarios que escribamos, tomando como referencia todo el código alojado en GitHub y código de tu propio proyecto.
La evolución de GitHub Copilot, conocida como GitHub Copilot x está cada vez más cerca de llegar a su lanzamiento y si aún eres de aquellos que no ha escuchado hablar de estas herramientas antes o no te has aventurado a probarla, te aseguramos que este post te despertará inquietudes. Si te aventuras a probarlo, al final dejaremos una pequeña guía para la integración de GitHub Copilot en Visual Studio Code.
Copilot X
Chat GPT ha impulsado nuestros conocimientos a otro nivel, ha aumentado nuestra productividad de forma inimaginable y a la mayoría de nosotros nos ha sacado de más de un apuro a la hora de programar. El único inconveniente de esta herramienta es que le tenemos que dar contexto de nuestro código ya que obviamente no es capaz de ver que andamos haciendo, y a veces eso hace que sus respuestas no sean lo que realmente buscamos y nos acabe dando pereza utilizar esta herramienta en casos muy técnicos.
Github Copilot X plantea resolver este problema con la integración de GPT-4 en nuestro editor de código, teniendo un asistente con un conocimiento de nuestro propio proyecto a veces más profundo que el que nosotros mismos poseemos. Tendremos la posibilidad de chatear con el asistente al igual que lo hacemos con Chat GPT, incluso mediante el uso de nuestra propia voz evitando tener que usar el ratón para desplazarnos de nuestra actual tarea. También podremos utilizar comandos que, entre otros, nos permitirán crear la base de código para cualquier proyecto que podamos imaginarnos o arreglar errores de código de manera inmediata con explicación incluida, en otras palabras, adiós a horas y horas de debuggear código por fallos tontos. A continuación, os destripamos todas las nuevas funcionalidades que esta actualización incluye de forma más detallada y de primera mano ya que tenemos acceso a la beta de Copilot X.

Copilot X: Chat
La principal funcionalidad y más llamativa de esta actualización, de la cual ya hemos adelantado un poco. Las empresas de OpenAI y Microsoft han trabajado en brindarnos una experiencia parecida a la de Chat GPT integrada en nuestro IDE, lo que nos proporcionará un análisis y entendimiento en profundidad de nuestro propio código. Esto lo podremos utilizar a nuestro favor de varias maneras, os pondré varios casos de uso que yo mismo (el redactor de este post) he utilizado desde que tengo acceso a la herramienta.
- Explicación de un trozo de código que estemos seleccionando: Simplemente con seleccionar una función o cualquier trozo de código que necesitemos comprender y escribir en el chat algo del estilo “Explica el trozo de código seleccionado”, nuestro amigo copiloto nos desarrollará poco a poco cómo funciona cada elemento y que hace en conjunto. Esto nos ahorrará tiempo de investigación y comprensión y posiblemente también ahorrará tiempo de explicación a otros compañeros del mismo proyecto.

- Añadir una nueva funcionalidad: Podemos pedirle que nos muestre un ejemplo de cómo podríamos añadir cierta funcionalidad al código existente, por ejemplo, que nos cree una función que, a partir de una lista de nombres de personas, nos cree un diccionario donde las claves sean la letra inicial de ese nombre.

- Obtener información sobre el uso de alguna herramienta: Si estamos experimentando con el uso de una nueva librería como puede ser Beautiful Soup de Python, podemos pedirle que nos explique el funcionamiento de ciertas funciones, que nos proponga casos de uso, que nos describa las entradas necesarias para cierta función… es decir, podemos utilizarlo como documentación eficaz, rápida e interactiva de cualquier herramienta medianamente conocida.

- Refactorización: Podemos seleccionar un trozo de código funcional, pero poco legible y mal construido y pedirle que proponga una solución refactorizada, esto es muy útil a la hora de realizar proyectos grandes en los cuales la deuda técnica tiende a aumentar cuando se acerca la fecha de entrega.
- Preguntas sobre fallos y como solucionarlos: Podemos realizar cualquier pregunta relacionada con la ejecución de un código, por ejemplo, ¿Por qué no ordena correctamente esta lista por orden alfabético? Y tratará de comprender tu código y darte una posible solución para que la implementes sin más dificultad. Esto es útil cuando estamos atascados sin saber por qué nuestro código no funciona como debe, nos ayudará a dar pistas incluso la solución directamente al fallo.
Estos casos son 5 de entre las infinitas posibilidades que nos ofrece esta increible nueva funcionalidad. Si aún con esto no te ha cautivado, seguimos con más novedades que seguro te interesarán.
Copilot X: Chat con voz
Podemos transformar Copilot Chat en nuestro asistente de código personal, algo así como una Siri con conocimientos avanzados en programación, al cual podremos pedirle que realice cambios en nuestro código sin tocar ni una sola tecla, seleccionar código, copiar y pegar… a parte de todas las funcionalidades ya descritas en el anterior apartado. ¿Modificar código sin tocar el teclado? ¿¡Dónde tengo que firmar!?
Esta característica está aún en una etapa temprana de desarrollo pero si quieres aprender más sobre ella y obtener acceso a la beta, te dejamos un enlace para que puedas investigar sobre ella aqúi.
Copilot X: Comandos
Los desarrolladores de Copilot han introducido la posibilidad de escribir comandos que activarán ‘habilidades especiales’ de nuestro copiloto. Entre los comandos que actualmente existen, los más destacados son los siguientes:
- /fix: Este comando permitirá a tu copiloto entender el error que se muestra por consola, y te recomendará una posible solución al fallo, a veces permitiendo integrarla pulsando un único botón, es decir, no más horas y horas de buscar en stack overflow cientos de problemas parecidos que no nos dejan clara la solución.
- /tests: Este comando te aportará gran eficiencia a la hora de realizar tests sobre funciones, permitiéndote generar el bloque de código necesario para la prueba y en gran parte de las ocasiones una solución válida a tu petición.
- /createWorkspace: Este es sin duda la joya de la corona, este comando te permitirá iniciar un proyecto desde 0, facilitando la estructura de directorios y… ¡El esqueleto de código del proyecto funcional! Permitiéndonos centrarnos únicamente en la mejora y adición de funcionalidad, quitando de la ecuación las horas de montaje de un proyecto nuevo.

Actualmente existen 11 comandos, a pesar de que estos son los que más me han llamado la atención los demás son muy interesantes, dejo a tu posibilidad el seguir investigando sobre la herramienta y descubrir los 8 restantes. Hay que tener en cuenta que esta parte sigue en desarrollo y en el futuro podremos afirmar que la lista de comandos irá aumentando y siendo mucho más útiles, aunque solo con esos, ya me han ganado. ¿A ti no?
Otras funcionalidades…
Con el avance de GitHub Copilot, OpenAI se ha lanzado a expandir su proyecto mediante la integración de el copiloto en la línea de comandos (nuestro terminal). Esta herramienta tiene el nombre de Copilot for CLI. A pesar de que esta función sigue aún en una fase temprana, ya despierta mi interés de forma inevitable, ya que me hubiera encantado aprender los comandos de bash básicos de la mano de esta herramienta. A continuación, os dejo un vídeo que resume esta herramienta de forma gráfica y veloz.

Otra funcionalidad que está siendo desarrollada es la escritura de las pull request automáticas, con la información necesaria (que nunca escribimos). Esto se integrará en GitHuby funcionará de manera que leerá tus commits y parte del código y desarrollará una descripción adecuada para la pull request. Una gran ayuda para mantener al grupo de trabajo al tanto de todos los cambios que se están realizando y terminar con el desconcierto. Si quieres conocer más de la herramienta, puedes acceder aquí y tener la posibilidad de obtener accesa a la beta.

¿Cómo puedo comenzar a usar Copilot?
Si has llegado hasta aquí, supongo que esta herramienta te ha acabado interesando tanto como a mí, y si aún no la has probado te dejaré una pequeña guía rápida para que puedas comenzar a usarla.
Copilot es una herramienta de pago, pero cuenta con una versión gratuita para estudiantes verificados, profesores y mantenedores de código de repositorios públicos populares. Por ello para acceder a nuestra versión gratuita necesitaremos verificar nuestra cuenta de GitHub como cuenta de estudiante, si aún no la tienes y no sabes como hacerlo te dejo este enlace para que completes este primer requisito: Cómo aplicar al campus de GitHub
Una vez tenemos nuestra cuenta de estudiante verificada realizaremos estos pasos:
- Acceder a GitHub en la web con nuestra cuenta de estudiante.
- Pulsar en nuestra imagen de perfil y seleccionar la opción Copilot.
- Activar la extensión de GitHub Copilot.
Ya podemos usar GitHub Copilot en nuestro IDE favorito de los siguientes: Visual Studio Code, JEtBrains, Visual Studio, Vim/Neovim.
El último paso es la integración de Copilot con el IDE que prefiramos. La guía que github nos proporciona nos ayudará a realizar esta tarea de forma fácil, únicamente nos dirigiremos a esta página: Setup de Copilot seleccionamos el IDE que más nos guste y seguimos los pasos.
En VS Code es tan fácil como instalar la extensión desde el gestor de extensiones e iniciar sesión con la cuenta universitaria en la que hemos activado el plan de Copilot.

¿Te interesa la inteligencia artificial?
Si el tema de la inteligencia artificial te parece interesante, te recomendamos estar al tanto de las jornadas innosoft de este año. En el siguiente post publicaremos varias herramientas basadas en inteligencia artificial útiles para los desarrolladores de software.
En caso de que andes un poco perdido en este tema, puedes acceder a este post que explica un poco por encima como funciona y qué es la inteligencia artificial.