Qué es GitHub Copilot y cómo funciona

14/07/2021
Artículo original

Todo el mundo habla de GitHub Copilot, el asistente de pair programming basado en inteligencia artificial (así lo denominan desde GitHub) Pero, ¿realmente merece tanto revuelo? Bueno, la respuesta corta es sí. Hace poco estuvimos hablando sobre esto (y probándolo) en un evento en directo con Bruno Capuano (AI Microsoft MVP) y aquí te dejamos las principales reflexiones de esta charla.

Qué es Copilot

Copilot es un asistente para escribir código basado en inteligencia artificial, o como gustan en llamarlo en GitHub, un asistente de pair programming basado en IA. Para entendernos (y salvando las distancias) es algo así como Intellisense, pero mucho más potente y que va aprendiendo en tiempo real.

Va mucho más allá que Intellisense. No solo te hace pequeñas sugerencias, es una herramienta generativa que intenta predecir qué quieres hacer y te sugiere funciones completas con múltiples variantes. Incluso puede llegar a escribir código a partir de comentarios que sean definiciones escritas en lenguaje natural de qué necesitas.

[youtube:kjYQlUrO8bo]

Probando ejemplos reales con Copilot

Gracias a que Bruno Capuano disponía de acceso a Copilot, pudimos verlo en acción con ejemplos de Python (aunque podría haber sido con C# u otro lenguaje). En el vídeo podemos ver cómo Copilot nos sugiere en nuestro contexto el código a escribir y con diferentes opciones que van variando en tiempo real según escribes, porque va aprendiendo. Por ejemplo, a partir de que definimos una clase "libro" nos sugiere para esa clase los campos "nombre", "autor" y "precio", para a continuación sugerirnos crear una clase "biblioteca".

Este es solo un ejemplo simple, pero hay más en el vídeo:

[youtube:HJ-tQk2MlsQ]

La principal utilidad de Copilot: detección de los trabajos repetitivos

Es indudable que esta herramienta es ya increíblemente útil para desarrolladores en casos de tareas repetitivas (que es capaz de detectar), una especie de GPT3 de código. Copilot no hace "copy & paste": aprende, interpreta y escribe código viable.

En ocasiones incluso puede llegar a ser intrusivo por sus interrupciones y darte la sensación de que, más que hacer pair programming es como tener a alguien vigilando por encima del hombro lo que haces para interrumpirte a la mínima. Lo bueno, que lo puedes desactivar y activar cuando quieras, y suponemos que esta molestia se irá minimizando con el tiempo según aprenda a "trabajar en equipo".

Está por ver si a medio o largo plazo este tipo de herramientas no se terminan convirtiendo en una nueva capa de abstracción a la hora de desarrollar, pero a priori no parece descabellado pensarlo:

[youtube:TTfJ6ACwUzs]

Cómo funciona Copilot por dentro

Copilot se apoya en tres patas. Ha aprendido del enorme set de datos de código que es GitHub, aprovecha ese conocimiento gracias a OpenIA Codex (el verdadero cerebro de Copilot) y rinde al máximo gracias a la potencia de procesamiento que le brinda Azure.

Es importante recalcar que Copilot NO está copiando código de GitHub, sino que Copilot escribe código nuevo a partir de lo aprendido. Según GitHub, el 99.9% del código generado es nuevo.

En este vídeo, nuestro tutor José Manuel Alarcón y Bruno Capuano comentan cómo funciona Copilot:

[youtube:qOWaM6NSGzY]

Copilot también funciona en español

Por cierto, como en GitHub hay código escrito (y comentado) en muchos idiomas, también podemos usarlo en español. Aunque claro, de forma un poco más limitada porque el set de datos en español del que ha podido aprender es significativamente más pequeño.

[youtube:SHtr64Rm8gw]

Cómo puedo instalar y probar Copilot

Copilot de momento es un plugin para VS Code (en el futuro estará disponible para más editores) pero para poder usarlo necesitas pedir el acceso (y hay lista de espera) ya que actualmente se encuentra en beta cerrada. Si intentas usar el plugin sin tener acceso te va a dar un error.