¿Qué es GitHub Copilot y cómo funciona?
GitHub Copilot es una herramienta basada en Inteligencia Artificial para asistir al desarrollador en sus tareas de escritura de código. Ha sido pionera en este segmento y continúa siendo una de las herramientas más usadas por los desarrolladores y más completas para facilitar su tarea diaria.
¿Qué es GitHub Copilot?
GitHub Copilot es un asistente para la escritura de código que se integra en los IDEs y editores para programadores más populares. Básicamente ofrece sugerencias de código contextuales al archivo que el desarrollador tiene abierto y el código que está escribiendo el desarrollador, ofreciendo otras funcionalidades como chat o agente.
La característica más relevante respecto a otras herramientas de IA es que GitHub Copilot consigue predecir lo que el desarrollador va a escribir con bastante precisión y ofrece un autocompletado de bloques de código de diversos tipos, como por ejemplo funciones o métodos.
Lo sorprendente es que acierta en la mayoría de las ocasiones, sugiriendo justamente el código que el desarrollador iba a escribir. En cierto modo parece como si fuera magia o que la herramienta pudiera leer la mente del programador. Incluso, muchas veces ofrece sugerencias que presentan una alternativa de codificación distinta de la que el desarrollador tenía en mente, lo cual permite también ciertos niveles de aprendizaje.
Además de la predicción, actualmente GitHub Copilot ofrece también una herramienta de chat con la que podemos conversar con la IA y solicitarle cosas o hacerle preguntas, así como un agente que es capaz de desempeñar directamente tareas en nuestro proyecto.
Para realizar su trabajo, GitHub Copilot está entrenado con millones de líneas de código en infinidad de lenguajes, principalmente de código libre que se encuentra publicado en la propia plataforma GitHub.
¿Cómo funciona GitHub Copilot?
Para conseguir su función GitHub Copilot realiza el análisis del código que el desarrollador está escribiendo, así como otros elementos que le permiten agregar información a su contexto, como el nombre del archivo, la carpeta, las dependencias.
Gracias a ese análisis consigue predecir bloques de código, que pueden ir desde una línea individual hasta una función o clase completa. Vamos a ver ahora los puntos más importantes para entender este funcionamiento.
Generación automática de código en tiempo real
GitHub Copilot funciona en background, realizando consultas a distintos modelos de Inteligencia Artificial, a medida que el desarrollador escribe el código o cuando usa la herramienta de chat. Al analizar el código lo hace de una manera muy rápida y, según la respuesta que le ofrece la IA, consigue presentar las sugerencias al programador en tiempo real.
Finalización de funciones y fragmentos de código
GitHub Copilot puede ayudar a completar cualquier bloque de código que estés escribiendo. Por ejemplo, podrías hacer un simple comentario en el código y Copilot podría escribir el correspondiente código necesario para conseguir cubrir la necesidad descrita en ese comentario. Pero no solo eso, consigue autocompletar bloques de código según el desarrollador los está escribiendo.
Gracias a todo eso, el desarrollador consigue mayor productividad, ya que le ahorra picar mucho código por su teclado.
Integración con editores como Visual Studio Code
Esta herramienta de Inteligencia Artificial consigue integrarse con editores de código de diversos fabricantes. El más relevante sin duda es Visual Studio Code, que es el editor creado por Microsoft, la misma empresa propietaria del propio GitHub.
Sin embargo, también podemos utilizar copilot a través de complementos desde otros IDEs y editores como los de JetBrains, Visual Studio, Eclipse, etc.
Ventajas de usar GitHub Copilot
Vamos a ver ahora algunas de las ventajas que pueden obtener los desarrolladores al utilizar esta herramienta de IA.
Acelera la productividad y el flujo de trabajo
Lo más relevante es la capacidad de acelerar el ritmo de trabajo de los desarrolladores, gracias a su capacidad de predicción del código que se va a escribir en cada momento. Con esto, el desarrollador puede aumentar su productividad y a la vez tener más tiempo para centrarse en otras tareas que requieran mayor atención humana.
También el agente puede resolver tareas complejas de una manera efectiva y hacerlo en pocos instantes. Incluso el chat puede ayudarnos mucho, ya que podemos resolver cualquier duda desde el mismo editor, sin tener que hacer consultas en Google y leer posts o documentación de los lenguajes o librerías que estemos usando.
Facilita el aprendizaje de nuevas tecnologías y lenguajes
También es muy interesante la capacidad de asistir en trabajos complejos o conseguir aplicar la sintaxis adecuada para cada lenguaje, o los métodos necesarios en una librería, lo que puede venir muy bien para aprender una nueva tecnología.
Incluso puede ofrecer soluciones que el desarrollador no habría tenido en consideración, de haber sido asistido por GitHub Copilot. Esto hace que potencialmente nos ayude a aprender a codificar de manera más creativa o con un estilo más conciso.
Ayuda a reducir errores y a escribir código de mayor calidad
Las sugerencias que ofrece son acertadas en la mayor parte de las ocasiones por lo cual también colaboran con la reducción de los errores introducidos por despistes humanos, o «typos» a la hora de escribir el código.
También potencialmente ofrece soluciones que pueden incrementar la calidad del código, sobre todo cuando el desarrollador no tiene suficiente experiencia en un lenguaje o en el diseño del software.
Minimiza el tiempo en tareas repetitivas y monótonas
Además el uso de herramientas de Inteligencia Artificial como GitHub Copilot hace que las tareas pesadas de programación se reduzcan considerablemente, lo que produce una mejor experiencia en el trabajo del desarrollador y contribuye a disminuir la fatiga.
Fomenta la innovación y la experimentación
Al hacer el trabajo más rápidamente asistidos por la IA, el tiempo que nos sobra se puede utilizar idealmente para mejorar las aplicaciones. Gracias a dedicar menos tiempo a tareas mecánicas los desarrolladores se sienten más liberados y dispuestos a aplicar su creatividad en la búsqueda de soluciones más flexibles, robustas y mantenibles.
Casos de uso de GitHub Copilot en proyectos reales
Realmente puedes utilizar GitHub Copilot en cualquier proyecto de desarrollo, prácticamente para cualquier lenguaje de programación existente. Es por eso que existe una gran variedad de escenarios donde le podemos sacar partido. vamos a ver ahora algunos de los más representativos.
Creación de funciones y clases a partir de comentarios
Como hemos dicho antes, con un simple comentario podemos conseguir que copilot nos escriba una clase entera o bien una función o método completo. Pero no solo eso, también lo podemos usar para que documente el código o conseguir alternativas de codificación que resulten más legibles, por poner algunos ejemplos.
Generación de código de prueba (Unit testing)
También es muy interesante cómo Copilot nos puede ayudar a desarrollar el código de las pruebas de software. De hecho, en entornos de pruebas funciona bastante bien, con lo que puede acelerar mucho este trabajo, de modo que puedas construir aplicaciones más robustas por medio de pruebas automáticas.
Puedes utilizarlo para desarrollar el esqueleto de un archivo de pruebas, pero también elementos más restringidos como un conjunto de casos de prueba para alimentar tus métodos.
Sugerencias para la refactorización de código
Si tenemos un código ya escrito también puede sugerirnos alternativas que mejoren la legibilidad sin alterar el funcionamiento, lo que se conoce como refactorización. Con ello tenemos una nueva vía de mejora de la calidad del software.
Asistencia para la documentación de funciones
A veces las tareas de documentación del código no las tomamos demasiado en serio, por falta de tiempo o presupuesto. Gracias a GitHub Copilot podemos conseguir que esta tarea se resuelva en instantes.
Por supuesto, GitHub Copilot será capaz de escribir la documentación con diversos formatos específicos para cada lenguaje de programación.
¿Cómo empezar a usar GitHub Copilot?
Usar GitHub Copilot es muy sencillo. De hecho gracias a estar integrado de casa en algunos de los editores más populares, como Visual Studio Code, realmente no tenemos que hacer gran cosa para conseguir que funcione
No obstante, vamos a ver los próximos puntos en los que descubriremos el detalle sobre el modo de uso de esta herramienta de IA.
Requisitos y compatibilidad con diferentes IDE
Lo primero que debemos verificar es si nuestro editor es compatible con GitHub Copilot. Si usamos un editor popular es muy probable que sea así. No obstante, en la mayoría de los casos tendremos que instalar algún tipo de complemento o plugin para soportarlo.
Aparte de Visual Studio Code también puedes usar esta herramienta dentro de Visual Studio, el IDE de desarrollo más avanzado de Microsoft. Otros IDE compatibles son los de JetBrains, como IntelliJ IDEA, PyCharm o WebStorm, entre otros. También está soportado en Eclipse o Xcode, incluso en editores quizás menos conocidos como Neovim.
Aparte de tener el IDE también necesitarás conexión a Internet ya que Copilot utiliza consultas a modelos de Inteligencia Artificial ofrecidos por OpenAI, empresa detrás del popular ChatGPT.
El proceso de suscripción y acceso al servicio
Aparte del editor y tu conexión a Internet también necesitarás pagar la suscripción al servicio de GitHub Copilot. Si bien es cierto que Visual Studio Code es capaz de utilizarlo de manera gratuita, solo sería viable para usos muy ocasionales, ya que ofrecen pocos tokens sin coste. A poco que quieras sacarle más partido a la herramienta necesitarás pagar tu suscripción.
El lugar donde debes crear tu suscripción es en la propia página de descripción del servicio GitHub Copilot. Allí tendrás que suscribir un plan que se ajuste a tus necesidades o presupuesto. En principio para usar el plan free no hace falta suscribirse pero solo funciona en Visual Studio Code y Visual Studio 2022. De todos modos, en cualquier caso puedes disfrutar de 30 días de prueba gratuita en las versiones de GitHub Copilot Pro, por si quieres ver cómo funciona.

En Visual Studio Code tienes algunas funcionalidades sencillas instaladas de casa en el editor, pero no le podrás sacar todo partido posible. Si usas un plan de pago, o quieres ampliar las funcionalidades de base basadas en IA del editor, entonces tendrás que instalar la extensión de GitHub Copilot. Este es el enlace de la extensión de Copilot para VSCode.

Si quieres enlaces a los complementos adecuados para cada IDE o editor compatible, entra en la página de producto que te mencionamos antes y verás una serie de iconos que te llevan directamente a las extensiones correspondientes.
Setup de GitHub Copilot en VSCode
Ahora vamos a ver el proceso para instalar GitHub Copilot en Visual Studio Code, que es el editor más extendido para programadores. Comenzamos por encontrar las extensiones, siendo lo más cómodo usar el marketplace que se encuentra en el propio editor.

Si instalamos la primera extensión, llamada GitHub Copilot se instalará automáticamente GitHub Copilot Chat.
Ahora busca el icono de Copilot en la barra de estado del editor, abajo a la derecha. Si haces clic en él aparece un menú contextual donde podrás hacer inicio de sesión en Copilot.

Tendrás que usar tu cuenta de GitHub, la misma que has usado para suscribirte al plan de Copilot que hayas elegido. Entonces ya estarás habilitado para usar Copilot en VSCode.
Cómo activar y desactivar Copilot en tu entorno de desarrollo
GitHub Copilot se activa una vez instalada la correspondiente extensión en tu editor, aunque luego tendrás que hacer el login, tal como apuntamos antes. Sin embargo, hay ocasiones en las que por cualquier motivo puedes preferir desactivarlo para que no te muestre sugerencias. En este caso simplemente tendrás que localizar el correspondiente botón en la interfaz de tu editor, en la barra de estado generalmente, acceder al menú contextual y escoger la opción que permite su desactivación.
Aunque los botones pueden aparecer en lugares distintos dependiendo del editor que uses, el proceso es bastante intuitivo y no te resultará ningún problema encontrar las correspondientes opciones de activación y desactivación. En VSCode encontrarás estas opciones pulsando el icono de Copilot en la barra de estado del editor.

Consideraciones y debates sobre el uso de GitHub Copilot
No queremos terminar el artículo sin abordar un punto que consideramos absolutamente importante en el uso de GitHub Copilot, así como otros asistentes de Inteligencia Artificial, ya que existen numerosas consideraciones que debemos tener en cuenta para usar estas herramientas con la suficiente responsabilidad.
Vamos a ver algunas de las cuestiones y debates más importantes, que no son pocos y creemos que es importante destacar.
La propiedad del código y las implicaciones legales
Un primer punto a considerar se basa en la propiedad del código que GitHub Copilot utiliza para montar sus sugerencias. Como debes saber, los modelos de Inteligencia Artificial están entrenados con innumerables cantidades de código, principalmente de proyectos que están en GitHub. En teoría GitHub Copilot debe usar solamente los repositorios públicos. Sin embargo, aunque el código esté abierto no siempre la licencia permite el uso del mismo. Por eso existe el debate sobre sí las sugerencias podrían incluir fragmentos de código que están protegidos por licencias.
En este sentido, el propio GitHub se ha posicionado para indicar que la herramienta de Inteligencia Artificial genera código nuevo cada vez y no copias de código que existen en proyectos o repositorios públicos. Sin embargo, lo cierto es que estamos ante un tema bastante controvertido ya que el hecho de aprender con proyectos de código abierto continúa sugiriendo que está usando esa base de código en la práctica. Por tanto, hay personas que sostienen que los modelos de IA no deberían contribuir para el desarrollo de proyectos comerciales de código cerrado.
El riesgo de la dependencia y la pérdida de habilidades
A la hora del aprendizaje dijimos que GitHub Copilot es capaz de aportar nuevas formas de trabajo que enriquezcan la habilidad de los desarrolladores. No obstante, lo cierto es que no siempre será así. Obviamente, el desarrollador que utiliza las herramientas de Inteligencia Artificial debería tener la habilidad de entender perfectamente el código que se está produciendo y que está utilizando en sus proyectos. De este modo debe poder leerlo y verificar que hace lo que se supone que debe hacer, ya que de otro modo pueden surgir problemas de diversa índole.
Además, si el desarrollador no tiene conocimiento suficiente y simplemente se dedica a aceptar todas las sugerencias sin entenderlas, o siquiera sin leerlas, estará de alguna manera limitando su proceso de aprendizaje natural. Por tanto, cuando estamos aprendiendo un lenguaje de programación o introduciéndonos en el mundo del desarrollo se recomienda encarecidamente desactivar todas las ayudas de IA.
La seguridad y la privacidad de los datos
Ahora, si queremos hilar fino y ponernos serios, también tenemos que admitir que el uso de la Inteligencia Artificial de manera indiscriminada puede llevarnos a problemas de seguridad o incluso privacidad de los datos.
La seguridad es un punto importante porque GitHub Copilot es incapaz de entender el contexto completo de tu proyecto y puede inducir a incluir código que pueda crear vulnerabilidades en tu software. Por tanto, deberías tener mucho cuidado con este asunto.
Por otra parte, pueden existir problemas de privacidad en el caso que estemos desarrollando proyectos de código privado, donde utilicemos datos sensibles ya que potencialmente GitHub Copilot estaría leyendo todo tu código y pudiendo utilizarlo para generar sugerencias más adelante. Se supone que el aprendizaje que obtenga de tus proyectos lo utilizará solamente en ellos, pero nadie puede estar 100% seguro de cómo el modelo actuará con tu código propietario o los datos que se encuentran en él.
En resumen, si bien es cierto que la utilidad de las herramientas de Inteligencia Artificial para la escritura de código es innegable, tenemos que mantenernos siempre alerta para poder revisar todo código que se acepta dentro del proyecto y asegurar que sea seguro y no tenga otro tipo de problemas debidos a la generación automática.