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.

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

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.

Available in English

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.

3. Arquitectura y Alojamiento del Backend

Short description:

A medida que escalamos el proyecto, Copilot ahora admite múltiples editores, incluyendo Visual Studio Code, IntelliJ suite, Neovim y Visual Studio. Para manejar los diferentes lenguajes de programación y ecosistemas, utilizamos el concepto de servidores de lenguaje. Nuestro agente, escrito en TypeScript, se ejecuta en Node y maneja la lógica común. También hemos introducido un proxy, un servicio web en la nube, para estar lo más cerca posible de la IA. Nuestra IA ahora está alojada en Azure, lo que nos permite escalar a nivel global. El uso de dos lugares para el código común, el agente y el proxy, sirve propósitos específicos.

A medida que escalamos el proyecto, tuvimos que hacer cambios en nuestra arquitectura. En la actualidad, Copilot admite múltiples editores. Visual Studio Code sigue siendo nuestro editor principal, y creo que sigue siendo la parte principal de la base de usuarios que utiliza Visual Studio Code. Eso es bastante natural, diría yo, dado lo popular que es. Pero también tenemos un buen soporte para todos los IDE en el conjunto de IntelliJ. Entonces, PyCharm, Ryder, todos esos diferentes IDE basados en IntelliJ, todos son compatibles.

Tenemos soporte para Neovim, y sí, también tenemos soporte para Visual Studio. Por lo tanto, todos esos editores utilizan diferentes lenguajes de programación y diferentes ecosistemas de programación para construir sus extensiones. VS Code es Node y JavaScript TypeScript. IntelliJ, son lenguajes de la JVM, Java o Kotlin u otros lenguajes sofisticados. En el caso de Visual Studio, es C-sharp. Lamento tener que mencionarlo. Por lo tanto, no queríamos reescribir nuestro código para apuntar a todas esas plataformas, porque nuestro código contiene bastante lógica diferente, hacemos algunas cosas. Este es el mismo problema que nos dimos cuenta, que es el mismo problema que a menudo tienen las herramientas de los proveedores de lenguaje.

Por ejemplo, si desarrollas herramientas para el lenguaje Rust, quieres que esto se ejecute en todos tus editores. Y esos proveedores resuelven el problema utilizando el concepto de servidores de lenguaje, que básicamente es este proceso que puede ser iniciado por el editor, que contiene toda la lógica, y luego los editores se convierten en un cliente ligero que simplemente interactúa con el servidor de lenguaje. En nuestro caso, esto se llama agente, porque es elegante. Contiene bastante lógica común. Está escrito en TypeScript, se ejecuta en Node. Creo que para IntelliJ realmente lo compilamos a una distribución nativa, hacemos algo sofisticado con el paquete de Vercel. Por lo tanto, contiene todo el código que se encarga de crear la entrada que enviaremos Crea todo el código, esa telemetría, que se trata de la sincronización de configuraciones y todo eso. Luego hemos introducido un proxy que es un lugar para el código común, pero es un servicio web en la nube. Está lo más cerca posible de la IA. Y luego también tenemos IA en Azure esta vez. Por lo tanto, cambiamos nuestro alojamiento del backend. Estamos alojando la IA en Azure y creo que Microsoft anunció recientemente esta plataforma de IA que está en vista previa en este momento y que permite a cualquiera utilizar los grandes modelos de lenguaje de Open AI que están alojados en Azure. Y esto es realmente importante porque nos permite escalar en todo el planeta. Inicialmente, Open AI solo aloja sus modelos en una ubicación única. Azure está distribuido globalmente, por lo que podemos alojar la IA en cualquier centro de datos que queramos hacerlo. Probablemente te preguntes por qué tenemos dos lugares para el código común, el agente y el proxy.

4. Lógica y Codex en GitHub Copilot

Short description:

Parte de la lógica en GitHub Copilot está conectada con el editor y se ejecuta en tu máquina local, mientras que otra parte de la lógica se encuentra en la nube. Las características relacionadas con la seguridad y responsabilidad de la IA están en la nube, mientras que todo lo relacionado con el editor está en la máquina local. Codex es el modelo de IA utilizado en Copilot, basado en GPT-3 desarrollado por OpenAI. Opera en lenguaje natural y no requiere codificación especial ni árboles de sintaxis abstracta. Es un sistema probabilístico, lo que significa que intenta predecir la siguiente palabra más probable, pero no siempre es correcto. Esto requiere una mentalidad diferente al desarrollo de software tradicional.

Esta es una pregunta muy buena. Básicamente, parte de la lógica está más conectada con tu editor y, por lo tanto, es bastante natural que se ejecute en tu máquina local y parte de la lógica debe estar lo más cerca posible del modelo en la nube. Por ejemplo, cosas como las características de seguridad y responsabilidad de la IA, queremos tener eso en la nube y no en tu máquina local por diversas razones.

Y el agente, todo lo que está relacionado con tu editor, nuevamente, es más natural que esté en tu máquina local. No necesitamos sincronizar todo en la nube porque eso sería complejo.

Así que mencioné que no soy un científico de datos, no soy un experto en IA, pero permíteme hablar brevemente sobre Codex. Entonces, Codex es el nombre del modelo de IA que estamos utilizando y ¿qué es Codex? Permíteme ver mis notas. Codex es un modelo de inteligencia artificial de procesamiento de lenguaje natural basado en GPT-3 desarrollado por OpenAI. Sí, gracias Wikipedia, eso es realmente útil. Así que vayamos despacio aquí. En primer lugar, es un modelo que opera en lenguaje natural, como el inglés o cualquier otro idioma que comprenda, incluidos los lenguajes de programación. Pero lo que significa en principio es que simplemente pasamos nuestro contexto, nuestra entrada en forma de cadena. No hacemos ninguna codificación especial. No usamos árboles de sintaxis abstracta para representar tu código. Simplemente tomamos un archivo, lo enviamos y esperamos lo mejor.

En segundo lugar, este es un modelo de inteligencia artificial que, en principio, significa que es un sistema probabilístico. Enviamos algo y luego intenta averiguar cuál es la siguiente palabra más probable que aparecerá en el texto. Lo importante es que lo más probable no siempre significa que sea correcto. Es una suposición que intenta averiguar. Y también es probabilístico en una escala, cuando le enviamos un par de indicaciones, bueno, la misma indicación un par de veces, podemos obtener resultados diferentes. Así que esto es realmente interesante. Esto requiere un cambio de mentalidad para mí como alguien que trabaja con este sistema. Sabes, soy un desarrollador de software. Estoy acostumbrado a las funciones. Pruebas unitarias. Entrada. Misma salida. ¡Hurra! Aquí no podemos hacer eso, lo cual es realmente interesante.

5. Introducción a Copilot y Creación de Instrucciones

Short description:

GitHub Copilot es un modelo a gran escala entrenado en miles de millones de líneas de código. Utiliza GPT-3, un modelo de lenguaje entrenado en internet. Codex, la IA en Copilot, comprende lenguajes de programación y lenguaje natural. La creación de instrucciones es el proceso de preparar una cadena para enviar al modelo.

Además, es un modelo a gran escala. Ha sido entrenado en miles de millones de líneas de código. Esto significa que no podemos analizarlo fácilmente. No podemos entender fácilmente por qué sugiere algo. Solo podemos manipular la entrada y observar el resultado.

También mencioné en esta definición muy útil que se basa en GPT-3. GPT-3 es un gran modelo de lenguaje que ha sido entrenado en internet. Por eso Codex comprende no solo el código de lenguajes de programación, sino también el inglés o cualquier otro idioma, más o menos. Por lo tanto, puede entender comentarios y cosas así. Básicamente, significa que Codex es un adolescente que ha tenido mucho, mucho tiempo y ha leído todo internet y mucho código. Le dices algo y a veces te responde, y no sabes por qué.

Entonces, ¿cómo hacer que este adolescente, este modelo, haga algo útil para ti? Y esto nos lleva al proceso llamado creación de instrucciones. La creación de instrucciones es un nombre muy elegante para preparar una cadena que enviamos al modelo. Inicialmente, comenzamos con un enfoque bastante simple. Simplemente tomamos la posición del cursor en tu archivo. Tomamos el contenido del archivo desde el principio hasta la posición del cursor, lo enviamos al modelo, y funciona. Sorprendentemente, funciona lo suficientemente bien. Sin embargo, estábamos seguros de que podíamos hacerlo mejor.

6. Mejorando las Sugerencias de Copilot

Short description:

Cuanto más contexto podamos enviar a los modelos de lenguaje de IA, mejor será el resultado. Mejoras triviales como agregar marcadores de lenguaje pueden mejorar significativamente la respuesta. La detección de funciones hermanas ayuda a reordenar el código para obtener mejores sugerencias. Utilizar el contexto de otras pestañas abiertas en tu editor proporciona sugerencias de código relevantes. No accedemos directamente a tu disco duro, solo a los archivos abiertos en tu editor. Observar los resultados es un aspecto importante del proceso.

En principio, al trabajar con esos grandes modelos de lenguaje de IA, cuanto más contexto podamos enviar a ellos, mejor será el resultado. Por supuesto, el contexto debe ser útil. No es como si pudiéramos enviar cualquier cosa aleatoria. Será bueno si el contexto proviene de tus archivos.

Pero sí, cuanto más cosas le enviemos, mejor será el resultado. Así que comenzamos con mejoras bastante triviales. Agregamos marcadores de ruta y lenguaje, que es solo un comentario en la parte superior del archivo. Diciendo que esto es lenguaje JavaScript y el nombre de tu archivo es BlahTest para mi demo.js de JS Nation. Incluso así, la lección aquí es que incluso estas mejoras simples realmente hacen mejoras razonables en la respuesta, en la salida que hemos observado.

¿Por qué en este ejemplo en particular? El uso del marcador de nombre de lenguaje significa que el modelo tiene menos probabilidades de confundirse con qué lenguaje es, como todos los lenguajes de la familia C se ven iguales, y realmente, realmente no quieres ver esas sugerencias de C Sharp en tu código JavaScript, por eso colocamos el marcador de lenguaje. Así que ese es el primer paso. Sin embargo, todavía tenemos dos problemas importantes en nuestra implementación inicial. Miramos el código que está arriba de la posición del cursor, y, por supuesto, en la gran mayoría de los lenguajes de programación, puedes colocar tus funciones en cualquier orden, por lo que puede haber cosas útiles debajo de la posición del cursor. Así que introdujimos algo llamado detección de funciones hermanas. Es básicamente un proceso donde analizamos el archivo y buscamos las funciones del mismo nivel que la función que estás editando actualmente, por lo que si estás en una clase, miramos los otros miembros de la clase, si estás en el nivel superior, el nivel superior del módulo, miramos las funciones de nivel superior, y luego reordenamos las cosas. Por lo tanto, todas las funciones que esperamos que sean útiles están arriba de la posición del cursor o del punto donde enviamos las solicitudes, y hacemos eso en memoria. No es que no cambiemos tu archivo. Hacemos todo eso en el procesamiento en memoria de las solicitudes.

Y también, el consejo profesional aquí es no tener 1700 funciones de nivel superior en tu archivo. No me preguntes por qué lo sé, pero sí, no lo hagas. Y la última parte interesante es utilizar el contexto de otros archivos de tu proyecto. Por supuesto, nuevamente, en los lenguajes de programación, podemos crear tantos archivos como queramos. A menudo creamos muchos, muchos de esos archivos en el proyecto. Así que tratamos de averiguar qué código se parece a lo que estás escribiendo ahora mismo que existe en las otras pestañas abiertas en tu editor. Y esta es una parte importante. No miramos tu disco duro ni nada por el estilo directamente. Solo tenemos acceso a los archivos que están abiertos en tu editor como pestañas. Asumimos que esto es una señal de que podemos mirar este archivo, porque si los tienes abiertos, entonces en el IDE, eso puede sugerir que estás bien con trabajar en esos archivos. De acuerdo. Lo último, pero una cosa de la que quiero hablar, y tengo 28 segundos, así que será rápido, es observar los resultados.

7. Observando Resultados y Restricciones de Derechos de Autor

Short description:

El modelo en Copilot es probabilístico y sus respuestas varían incluso con la misma indicación. La observación de resultados se realiza a través de evaluaciones fuera de línea y experimentos con personas. Los usuarios están satisfechos incluso si las sugerencias no son 100% precisas, ya que proporcionan un punto de partida y una estructura para la resolución de problemas. Las restricciones de derechos de autor para el uso de Copilot en código propiedad de la empresa dependen de la empresa. Copilot crea sugerencias únicas y personalizadas, sin copiar fragmentos de código existentes.

Como mencioné, el modelo es probabilístico y, en primer lugar, sus respuestas son probabilísticas, pero también con la misma indicación devuelve respuestas diferentes. Eso significa que solo podemos observar esos resultados a gran escala. No podemos simplemente realizar pruebas unitarias al modelo, no podemos probar unitariamente las mejoras en la creación de la indicación, porque no sabemos si esto será exitoso para todos los casos. El espacio problemático de trabajar con herramientas para desarrolladores en general es que el código puede verse de manera muy diferente, hay toneladas de casos de uso en todas partes, por lo que debemos asegurarnos de ser lo más útiles posible para todos. Por lo tanto, tenemos dos partes para observar los resultados aquí. Una es un sistema de evaluación fuera de línea donde clonamos un par de miles de repositorios de Python de Internet. Tratamos de encontrar las funciones que están bien probadas, que tienen una buena cobertura de pruebas, y las funciones que están bien documentadas, que tienen documentación para esas funciones, eliminamos el cuerpo de esas funciones y tratamos de regenerar los resultados con el cuerpo utilizando Copilot, verificamos si las pruebas unitarias pasan nuevamente, lo cual es realmente interesante. La segunda forma de observar los resultados es realizar experimentos con personas. Por eso tenemos un sistema de telemetría bastante avanzado en Copilot. Si estás más interesado en la telemetría, mis colegas del equipo han publicado creo que la semana pasada o algo así, el documento técnico sobre cómo utilizamos la telemetría y cómo se ajusta a la medición de la satisfacción del usuario. También realizamos algunas pruebas de satisfacción del usuario en las que tuvieron que responder algunas encuestas sobre cómo se sienten. Lo interesante aquí es que, y esto fue asombroso para mí al principio, no importa realmente que las sugerencias sean súper precisas. Lo que parece es que los usuarios están realmente satisfechos, incluso si Copilot les da una sugerencia no 100 por ciento precisa, sino un punto de partida para que puedan pensar en el problema o el siguiente paso que les brinda una estructura para lo que hacen. Lo cual es realmente, realmente fascinante. También quería hablar un poco sobre el diseño de la experiencia del usuario, pero no tenemos tiempo para eso. Así que, gracias a todos por ver, y creo que ahora es el momento de las preguntas y respuestas. Bueno, muchas gracias, Krzysztof. Fue refrescante. Gracias por compartir. Vamos a pasar directamente a las preguntas de la audiencia. Primera pregunta de Hennoc. ¿Cuáles son las restricciones de derechos de autor para usar GitHub Copilot en código propiedad de la empresa? Esta es realmente una gran pregunta. Se hace con bastante frecuencia. En primer lugar, no soy abogado. No tomes nada de lo que diga como algún tipo de asesoramiento legal. En segundo lugar, lo que también es importante es que realmente depende de tu empresa, por lo que recomendaría hablar con alguien de tu empresa. Sin embargo, nuestra respuesta es que, en principio, Copilot no está copiando el código. Lo que Copilot está haciendo es crear una nueva sugerencia que es única, que está personalizada en tu contexto particular de lo que estás escribiendo. Copilot no es una máquina de copiar, no es una máquina de coincidencia de patrones que simplemente toma fragmentos de código existentes de su base de datos o lo que sea. Está tratando de encontrar nuevo código para tus problemas.

QnA

Copiado de Copilot, Precios y Personalización

Short description:

En casos muy raros, Copilot puede copiar código directamente de la memoria, pero solo para fragmentos de código conocidos. Se está trabajando en una solución. Copilot se convertirá en un producto de pago en verano, pero seguirá siendo gratuito para estudiantes y colaboradores verificados de código abierto. Actualmente, Copilot sugiere nuevo código, pero no elimina código. Se están explorando mejoras en las herramientas de desarrollo impulsadas por IA. Copilot aprende de los usuarios individuales y sugiere código personalizado basado en su estilo de codificación.

En casos muy raros, Copilot puede copiar código, pero es como el 0.1% de los casos en los que puede copiar el código directamente de la memoria. Esto ocurre solo para fragmentos de código muy conocidos. También estamos trabajando en la solución al problema que estará disponible pronto. Pronto. ¿Como una línea de tiempo de Tesla, o? No, como pronto. De acuerdo, genial.

La pregunta es de Catalin, ¿Copilot planea convertirse en un producto de pago? Sí. Actualmente, Copilot se encuentra en estado de vista previa técnica, donde las personas pueden usarlo de forma gratuita. Utilizamos este período de tiempo para mejorar masivamente el producto. Sin embargo, Satya Nadala, CEO de Microsoft, y Beale, durante su discurso principal, anunciaron que Copilot estará disponible en general este verano. Se convertirá en un producto de pago, pero estará disponible de forma gratuita para los estudiantes y para los colaboradores verificados de código abierto, lo que sea que eso signifique. Entonces, si hago trabajo de código abierto, ¿también puedo usarlo para mi trabajo en la empresa? Sí. De acuerdo. Y nuevamente, esto no es asesoramiento legal, consulta a tu empresa... Si tu empresa lo permite. Sí.

Siguiente pregunta de Allison, ¿Copilot puede sugerir qué escribir, pero también puede sugerir qué eliminar? No en este momento. Por ahora, sugerir nuevo código es nuestra principal user experience que brindamos. Por supuesto, estamos investigando diversas mejoras en las herramientas de desarrollo tooling impulsadas por IA en general. Creo que mencioné que trabajo en esta cosa llamada GitHub Next, y somos este equipo en GitHub que intenta descubrir cuáles serán los próximos diez años de las herramientas para desarrolladores y todas las aplicaciones de IA son algo que definitivamente investigamos todo el tiempo.

Una pregunta de un anónimo. ¿Copilot también aprende de mí como individuo? ¿Y me sugerirá código personalizado, que se ajuste a mi estilo de codificación? Sí, exactamente. Entonces, Copilot, como mencioné, analiza tu archivo actualmente abierto y otras pestañas en tu editor, que pueden ser tu propio código, tu propio código personal. No está de ninguna manera conectado a tu empresa, no está de ninguna manera conectado a tu repositorio incluso. Solo analiza el código que está en el editor, que está en el IDE para determinar cuáles son las sugerencias. Entonces, una pregunta de seguimiento para mí. Si quiero mejorar las sugerencias, ¿debo abrir más pestañas con mi código? Sí, esta es una forma de mejorar las sugerencias. Sí, exactamente. Genial. Así que una buena pregunta de un anónimo.

Usando CodePilot y Aprovechando las Herramientas para Desarrolladores

Short description:

Usar CodePilot u otras funciones del IDE no es hacer trampa. El objetivo es mejorar la vida, la productividad y la felicidad de los desarrolladores. No es necesario memorizar todo. Aprovechar estas herramientas es esencial para mantenerse al día con la industria y no perder tiempo.

¿Es hacer trampa si los desarrolladores usan CodePilot? Un anónimo es un desarrollador junior y piensa que es increíble, pero está preocupado de que serán menos desarrolladores si lo utilizan. ¿Es hacer trampa si los matemáticos usan calculadora? No lo creo. Tampoco creo que usar otras funciones del IDE en general sea hacer trampa. Sé que hay personas que dicen, oh, ni siquiera deberías usar el autocompletado tradicional porque de esta manera te convertirás en un mejor desarrollador si memorizas todas estas cosas. Esa no es mi posición. He estado desarrollando herramientas para desarrolladores que ayudan a los desarrolladores y reducen la barrera de entrada para los desarrolladores durante toda mi vida profesional. Así que no creo que sea hacer trampa. Creo que nuestro objetivo es mejorar tu vida, tu productivity y tu felicidad. El mundo va en esa dirección. Así que te quedarás atrás, porque tus colegas lo estarán usando. Sería una pérdida de tiempo. Última pregunta, de Mark Tang. ¿Tú... lo siento, necesito leerlo de nuevo. ¿Retroalimentas los cambios realizados en las sugerencias de código al IA? Entonces, si cambio la sugerencia, ¿el IA sabe que cambié la sugerencia y mejora? Sí, actualmente estamos recopilando esos data en nuestra telemetría, por lo que estamos comprobando si la sugerencia se mantuvo igual después de 30 segundos de estar en tu archivo o si la has cambiado. Sin embargo, no estamos utilizando esos data para alimentar directamente al IA. Entonces, tu código privado, si estás desarrollando algún código privado, nunca será una fuente de sugerencia para otras personas. Lo que hacemos es observar solo los data sobre el porcentaje de cambio, o algo así como la distancia de cadena, y cosas así para observar cuáles son los resultados. Como mencioné en la charla, necesitamos observar a gran escala. Entonces, necesitamos tener estos data para ver si estamos haciendo cosas útiles. Muy bien. Bueno, muchas gracias. Eso es todo el tiempo que tenemos para preguntas y respuestas. Vamos a tomar un pequeño descanso para tomar café ahora. Muchas gracias, Christoph. Christoph se dirigirá a la sala de oradores donde pueden continuar la conversación, y bueno, los invito a todos a inscribirse en la versión beta. Sí, definitivamente, por favor inscríbanse en la vista previa técnica. Es gratuito de usar. Inicialmente, había un largo período de espera cuando te inscribías en la vista previa técnica. Eso ya no es el caso. Estamos dejando entrar a las personas muy, muy rápidamente en estos días, así que, por favor, inscríbanse. Muy bien. Muchas gracias. Gracias. Gracias.

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

Modern Web Debugging
JSNation 2023JSNation 2023
29 min
Modern Web Debugging
Top Content
Few developers enjoy debugging, and debugging can be complex for modern web apps because of the multiple frameworks, languages, and libraries used. But, developer tools have come a long way in making the process easier. In this talk, Jecelyn will dig into the modern state of debugging, improvements in DevTools, and how you can use them to reliably debug your apps.
The Future of Performance Tooling
JSNation 2022JSNation 2022
21 min
The Future of Performance Tooling
Top Content
Our understanding of performance & user-experience has heavily evolved over the years. Web Developer Tooling needs to similarly evolve to make sure it is user-centric, actionable and contextual where modern experiences are concerned. In this talk, Addy will walk you through Chrome and others have been thinking about this problem and what updates they've been making to performance tools to lower the friction for building great experiences on the web.
pnpm – a Fast, Disk Space Efficient Package Manager for JavaScript
DevOps.js Conf 2022DevOps.js Conf 2022
31 min
pnpm – a Fast, Disk Space Efficient Package Manager for JavaScript
You will learn about one of the most popular package managers for JavaScript and its advantages over npm and Yarn.A brief history of JavaScript package managersThe isolated node_modules structure created pnpmWhat makes pnpm so fastWhat makes pnpm disk space efficientMonorepo supportManaging Node.js versions with pnpm
Beyond Virtual Lists: How to Render 100K Items with 100s of Updates/sec in React
React Advanced Conference 2021React Advanced Conference 2021
27 min
Beyond Virtual Lists: How to Render 100K Items with 100s of Updates/sec in React
Top Content
There is generally a good understanding on how to render large (say, 100K items) datasets using virtual lists, …if they remain largely static. But what if new entries are being added or updated at a rate of hundreds per second? And what if the user should be able to filter and sort them freely? How can we stay responsive in such scenarios? In this talk we discuss how Flipper introduced map-reduce inspired FSRW transformations to handle such scenarios gracefully. By applying the techniques introduced in this talk Flipper frame rates increased at least 10-fold and we hope to open-source this approach soon.
High-Speed Web Applications: Beyond the Basics
JSNation 2022JSNation 2022
30 min
High-Speed Web Applications: Beyond the Basics
Knowing how to run performance tests on your web application properly is one thing, and putting those metrics to good use is another. And both these aspects are crucial to the overall success of your performance optimization efforts. However, it can be quite an endeavor at times for it means you need to have a precise understanding of all the ins and outs of both performance data and performance tooling. This talk will shed light on how to overcome this challenge and walk you through the pitfalls and tricks of the trade of Chrome DevTools, providing you with a complete roadmap for performance analysis and optimization.
Debugging with Chrome DevTools
JSNation Live 2021JSNation Live 2021
11 min
Debugging with Chrome DevTools
Jecelyn will share some tips and tricks to help you debug your web app effectively with Chrome DevTools.

Workshops on related topic

React, TypeScript, and TDD
React Advanced Conference 2021React Advanced Conference 2021
174 min
React, TypeScript, and TDD
Top Content
Featured WorkshopFree
Paul Everitt
Paul Everitt
ReactJS is wildly popular and thus wildly supported. TypeScript is increasingly popular, and thus increasingly supported.

The two together? Not as much. Given that they both change quickly, it's hard to find accurate learning materials.

React+TypeScript, with JetBrains IDEs? That three-part combination is the topic of this series. We'll show a little about a lot. Meaning, the key steps to getting productive, in the IDE, for React projects using TypeScript. Along the way we'll show test-driven development and emphasize tips-and-tricks in the IDE.