Aportando el poder de la IA a tu editor con GitHub Copilot

Rate this content
Bookmark

GitHub Copilot es una herramienta de programación en pareja de IA que pone el conocimiento colectivo de millones de desarrolladores al alcance de tus dedos, directamente en tu IDE.

En la charla, Krzysztof, miembro del equipo principal detrás de GitHub Copilot, demostrará cómo funciona Copilot y discutirá los principios de diseño utilizados durante la creación del proyecto.

También profundizará en algunos detalles técnicos del proyecto: cómo Copilot se comunica con su IA, qué "consultas" utiliza, cómo procesa las respuestas y cómo se integra con varios IDE para crear la característica experiencia de usuario de Copilot.

FAQ

GitHub Copilot es una herramienta de productividad para desarrollo de software que actúa como un autocompletado avanzado, utilizando el modelo de IA Codex de OpenAI, entrenado con miles de millones de líneas de código de desarrolladores de software.

A diferencia de los autocompletados tradicionales, GitHub Copilot sugiere bloques completos de código adaptados al contexto y estilo de codificación del usuario, usando información de otros archivos y funciones del proyecto.

Inicialmente GitHub Copilot fue diseñado para Visual Studio Code, pero ahora también soporta múltiples editores como IDE de IntelliJ, PyCharm, Ryder, Neovim y Visual Studio.

Para los usuarios que tienen habilitado Copilot, se observa que el 35% del código recién escrito ha sido sugerido por GitHub Copilot.

GitHub Copilot genera sugerencias únicas y personalizadas basadas en el contexto del usuario y no realiza copias directas de código. Sin embargo, en raras ocasiones puede reproducir fragmentos muy conocidos, con soluciones a este problema en desarrollo.

Sí, GitHub Copilot pasará a ser un producto de pago, aunque seguirá siendo gratuito para estudiantes y colaboradores verificados de código abierto.

GitHub Copilot mejora sus sugerencias basándose en la telemetría y la evaluación del uso, pero no utiliza código privado del usuario para alimentar el modelo de IA, asegurando la privacidad y confidencialidad.

Utilizar GitHub Copilot es comparable al uso de cualquier otra herramienta de desarrollo que facilita la escritura de código, y no se considera hacer trampa. Su objetivo es mejorar la productividad y eficiencia del desarrollador.

Krzysztof Cieślak
Krzysztof Cieślak
29 min
16 Jun, 2022

Comments

Sign in or register to post your comment.

Video Summary and Transcription

GitHub Copilot es una herramienta de productividad para el desarrollo de software que sugiere bloques completos de código basados en el conocimiento colectivo de los desarrolladores de software. Ha estado en vista previa técnica durante un año y es utilizado por miles de desarrolladores. El éxito de Copilot ha crecido con el tiempo y ahora admite múltiples editores y lenguajes de programación. El modelo de IA utilizado en Copilot, llamado Codex, opera en lenguaje natural y no requiere codificación especial. Copilot se convertirá en un producto de pago en verano, pero seguirá siendo gratuito para estudiantes y colaboradores verificados de código abierto.

1. Introducción a GitHub Copilot

Short description:

GitHub Copilot es una herramienta de productividad para el desarrollo de software que sugiere bloques completos de código basados en el conocimiento colectivo de los desarrolladores de software. Utiliza un modelo de IA entrenado en miles de millones de líneas de código públicamente disponibles. Las sugerencias se adaptan al estilo de codificación y al contexto, brindando una experiencia de usuario única. GitHub Copilot ha estado en vista previa técnica durante un año, con miles de desarrolladores que lo utilizan. El 35% del código recién escrito en archivos con Copilot habilitado es sugerido por Copilot, lo que hace que el proceso de desarrollo sea más productivo.

Gracias por escuchar. Hola a todos. Antes que nada, estoy realmente, realmente contento de que todos estén aquí. Los últimos dos años fueron difíciles, por supuesto, así que gracias a todos por estar aquí.

Sí, mi nombre es Krzysztof, y tengo un título elegante en GitHub. No importa realmente. He estado trabajando durante el último año y medio en un proyecto llamado GitHub Copilot. Espero que muchos de ustedes hayan oído hablar de GitHub Copilot. Ha sido un tema de moda en Internet y las redes sociales, pero si no lo han hecho, permítanme presentarles rápidamente GitHub Copilot.

¿Entonces qué es? Básicamente, es una herramienta de productividad para el desarrollo de software. Puedes pensar en ello como un autocompletado más potente. Sin embargo, a diferencia de los sistemas de autocompletado tradicionales, no está basado en la información semántica o en el análisis estático de código, ni en nada parecido. En cambio, utiliza el modelo de IA llamado Codex desarrollado por OpenAI, que ha sido entrenado con el conocimiento colectivo de todos nosotros, los desarrolladores de software, en forma de miles de millones de líneas de código disponibles públicamente en Internet. Gracias a eso, GitHub Copilot no se limita a sugerir solo palabras individuales, como nombres de variables o nombres de funciones, como en el caso de los sistemas de autocompletado tradicionales. En cambio, intentamos sugerir bloques completos de código, bloques de varias líneas, que intentan adaptarse al contexto actual, intentan averiguar cuál es tu próximo paso, qué estás planeando hacer. Esos fragmentos, esas sugerencias se adaptan al estilo de codificación, al uso de otros archivos, otras funciones de tu proyecto y mucho más. Y debido a eso, tuvimos que diseñar una experiencia de usuario un poco diferente para esas sugerencias. En lugar de utilizar el widget de autocompletado tradicional, que es una lista de funciones, diseñamos esta experiencia de usuario de tener este texto virtual en línea que se muestra directamente en el editor, y hablaré un poco más sobre eso en un momento.

Sin embargo, si aún no has visto GitHub Copilot, tengo un video rápido para mostrarte cómo funciona y estaré hablando mientras se reproduce este video. Como puedes ver, este texto gris, son sugerencias que son sugeridas por GitHub Copilot. Se actualizan a medida que escribes en tu editor, por lo que no necesitas realizar ninguna acción adicional para obtener esas sugerencias, simplemente escribes en tu editor de código como lo harías normalmente, y tratamos de sugerir algo útil para ti que esperamos sea útil. En esta demostración en particular, solo hay completados de una sola línea, pero también podemos sugerir completados de varias líneas en algunos casos. Entonces, probablemente quieras preguntarme, sí, esto se ve genial en la demostración, pero ¿es realmente útil y realmente produce algún valor para los usuarios, mejora tu productividad? Como se mencionó en la introducción, Copilot ha estado en vista previa técnica durante casi un año. Lo lanzamos a fines de junio del año pasado, así que ahora mismo es literalmente un año, y ha sido utilizado por miles y miles de desarrolladores de software en todo el mundo. No puedo compartir números específicos sobre eso, sin embargo, hay un número que puedo compartir, y es este número. Para los usuarios que tienen Copilot habilitado en su archivo, vemos que el 35 por ciento del código recién escrito en este archivo ha sido sugerido por GitHub Copilot. Quiero decir, por supuesto, el desarrollo de software no se trata solo de escribir código, pero imagina si escribes código durante varias horas todos los días, si ese proceso es un 35 por ciento más productivo, eso significa que tienes tal vez dos horas más de tu tiempo de vuelta. Eso es realmente increíble. Este número ha ido creciendo constantemente durante el último año. No comenzamos con este número.

2. Detalles Técnicos y Éxito de Copilot

Short description:

Comenzamos con un número mucho más bajo y ha ido creciendo. Nuestras estimaciones son altas para los próximos años. Cuando me uní al equipo, teníamos una arquitectura simple que utilizaba una extensión de Visual Studio Code y se comunicaba directamente con los codecs de IA alojados por Open AI. Copilot se ha convertido en un producto exitoso con mucho revuelo en Internet.

Comenzamos con un número mucho más bajo. Ha ido creciendo gracias a las mejoras que hemos realizado en el proyecto durante el último año. Además, estamos seguros de que podemos aumentar este número aún más. Nuestras estimaciones son altas para los próximos años.

Entonces, eso fue marketing. Y ahora vamos a entrar en detalles técnicos porque soy un desarrollador de software. No estoy tratando de venderte un producto. Estoy aquí para hablar de lo que hacemos. Y también, como nota, no soy un científico de datos. No soy un experto en IA. Estoy trabajando en este proyecto porque he sido un experto en herramientas para desarrolladores. Tengo mucha experiencia con extensiones de Visual Studio Code y otras herramientas para desarrolladores. Ese es mi papel en el equipo. Así que no voy a profundizar demasiado en la IA o en cómo funciona. Simplemente no entiendo eso realmente. Y está bien. Imagino que la mayoría de nosotros no somos expertos en IA o científicos de datos. Solo somos ingenieros de software que intentamos construir cosas útiles para nuestros clientes.

Entonces, cuando me uní al equipo y cuando Copilot comenzó como un proyecto, estábamos utilizando una arquitectura realmente simple. Teníamos una extensión de Visual Studio Code escrita en TypeScript, y luego nos comunicábamos directamente con los codecs de IA alojados por Open AI. Puedes hacer eso en tus proyectos ahora mismo. Necesitas acceso a Open AI para acceder a la vista previa o al programa beta, como se llame. Y luego simplemente envías una solicitud HTTP y él responderá. En realidad, esta es la arquitectura con la que comenzamos nuestra vista previa técnica hace aproximadamente un año. Había algunas llamadas adicionales a github.com para la autenticación, pero eso es aburrido. En principio, era tan simple como eso.

Y luego, Copilot se ha convertido en un producto bastante exitoso. Ha habido mucho revuelo en Internet sobre el producto y la pregunta más común que la gente hacía era: `¿Puedo usar Copilot en IntelliJ?` `¿Puedo usar Copilot en NeoVim?` `¿Puedo usar Copilot en Visual Studio?` Okay. Sí. Nadie preguntó eso.

QnA

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

Depuración Web Moderna
JSNation 2023JSNation 2023
29 min
Depuración Web Moderna
Top Content
Pocos desarrolladores disfrutan depurando, y la depuración puede ser compleja para las aplicaciones web modernas debido a los múltiples marcos, lenguajes y bibliotecas utilizados. Pero, las herramientas de desarrollo han avanzado mucho en facilitar el proceso. En esta charla, Jecelyn profundizará en el estado moderno de la depuración, las mejoras en DevTools y cómo puedes usarlas para depurar tus aplicaciones de manera confiable.
El Futuro de las Herramientas de Rendimiento
JSNation 2022JSNation 2022
21 min
El Futuro de las Herramientas de Rendimiento
Top Content
Nuestra comprensión del rendimiento y la experiencia del usuario ha evolucionado mucho a lo largo de los años. Las herramientas de desarrollo web necesitan evolucionar de manera similar para asegurarse de que sean centradas en el usuario, accionables y contextuales donde se refiere a las experiencias modernas. En esta charla, Addy te guiará a través de cómo Chrome y otros han estado pensando en este problema y qué actualizaciones han estado haciendo a las herramientas de rendimiento para reducir la fricción para construir grandes experiencias en la web.
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
DevOps.js Conf 2022DevOps.js Conf 2022
31 min
pnpm: un gestor de paquetes rápido y eficiente para JavaScript
Aprenderás sobre uno de los gestores de paquetes más populares para JavaScript y sus ventajas sobre npm y Yarn.Una breve historia de los gestores de paquetes de JavaScriptLa estructura aislada de node_modules creada por pnpmQué hace que pnpm sea tan rápidoQué hace que pnpm sea eficiente en el uso del espacio en discoSoporte para monoreposGestión de versiones de Node.js con pnpm
Más allá de las listas virtuales: Cómo renderizar 100K elementos con 100s de actualizaciones/seg en React
React Advanced Conference 2021React Advanced Conference 2021
27 min
Más allá de las listas virtuales: Cómo renderizar 100K elementos con 100s de actualizaciones/seg en React
Top Content
Generalmente hay una buena comprensión de cómo renderizar grandes conjuntos de datos (digamos, 100K elementos) usando listas virtuales, ...si permanecen en gran medida estáticos. ¿Pero qué pasa si se están agregando o actualizando nuevas entradas a un ritmo de cientos por segundo? ¿Y si el usuario debería poder filtrarlos y ordenarlos libremente? ¿Cómo podemos mantenernos receptivos en tales escenarios? En esta charla discutimos cómo Flipper introdujo transformaciones FSRW inspiradas en map-reduce para manejar tales escenarios con gracia. Al aplicar las técnicas introducidas en esta charla, las tasas de cuadros de Flipper aumentaron al menos 10 veces y esperamos abrir el código de este enfoque pronto.
Aplicaciones web de alta velocidad: más allá de lo básico
JSNation 2022JSNation 2022
30 min
Aplicaciones web de alta velocidad: más allá de lo básico
Saber cómo ejecutar pruebas de rendimiento en tu aplicación web de manera adecuada es una cosa, y aprovechar esas métricas de manera efectiva es otra. Y ambos aspectos son cruciales para el éxito general de tus esfuerzos de optimización de rendimiento. Sin embargo, a veces puede ser todo un desafío, ya que implica tener un entendimiento preciso de todos los detalles tanto de los datos de rendimiento como de las herramientas de rendimiento. Esta charla arrojará luz sobre cómo superar este desafío y te guiará a través de los obstáculos y trucos del oficio de Chrome DevTools, brindándote una hoja de ruta completa para el análisis y optimización de rendimiento.
Depuración con Chrome DevTools
JSNation Live 2021JSNation Live 2021
11 min
Depuración con Chrome DevTools
Jecelyn compartirá algunos consejos y trucos para ayudarte a depurar tu aplicación web de manera efectiva con Chrome DevTools.

Workshops on related topic

React, TypeScript y TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript y TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS es extremadamente popular y, por lo tanto, ampliamente soportado. TypeScript está ganando popularidad y, por lo tanto, cada vez más soportado.

¿Los dos juntos? No tanto. Dado que ambos cambian rápidamente, es difícil encontrar materiales de aprendizaje precisos.

¿React+TypeScript, con los IDEs de JetBrains? Esa combinación de tres partes es el tema de esta serie. Mostraremos un poco sobre mucho. Es decir, los pasos clave para ser productivo, en el IDE, para proyectos de React utilizando TypeScript. En el camino, mostraremos el desarrollo guiado por pruebas y enfatizaremos consejos y trucos en el IDE.