Thomas Dohmke explica cómo la IA está cambiando la forma en que programamos, trabajamos y aprendemos, e incluso el futuro de la propia innovación.

En los últimos quince años, GitHub se ha convertido en una parte indispensable del mundo de la programación. La plataforma, lanzada en 2007, es ahora utilizada por más de 100 millones de desarrolladores para colaborar, realizar un seguimiento de los cambios y almacenar su código.

Adquirido por Microsoft en 2018 por $7.5 mil millones, GitHub ahora está desarrollando una reputación por algo diferente: cambiar radicalmente la forma en que funciona la programación. El catalizador de esto es Copilot, una herramienta de IA que genera código tan fácilmente como ChatGPT de OpenAI produce sonetos. (De hecho, Copilot es alimentado por Codex de OpenAI, un gran modelo de lenguaje entrenado en código extraído de Internet).

A continuación, tenemos una entrevista con Thomas Dohmke que fue realizada por Freethink y traducida por nosotros. Está disponible originalmente aquí en inglés.

Entrevista con THOMAS DOHMKE

Al presionar la tecla Tab, un desarrollador que utiliza Copilot puede completar una línea, generar bloques de código e incluso escribir programas completos. Según GitHub, más de 10,000 organizaciones, desde Coca-Cola hasta Airbnb, se han suscrito a la versión empresarial de Copilot, y más de 30,000 empleados de Microsoft ahora programan regularmente con la ayuda de Copilot.

«Las habilidades del desarrollador serán descubrir ‘¿hasta qué punto debo ir para aprovechar la IA y sintetizar este código para mí?'»

THOMAS DOHMKE

Recientemente, Freethink conversó con Thomas Dohmke, CEO de GitHub, para conocer más sobre cómo Copilot promete reformular la programación como profesión y las cuestiones que el desarrollo impulsado por IA plantea sobre el futuro de la innovación en sí misma. También discutimos por qué programar con Copilot es tan divertido, cómo la IA cambiará la forma en que aprendemos y si Copilot puede solucionar los sistemas bancarios que aún ejecutan COBOL en mainframes.

Esta entrevista se ha editado para mayor concisión y claridad.

Freethink: ¿Qué cambios ves venir en el campo de la programación? ¿El desarrollo de software seguirá siendo el dominio de los expertos? ¿O crees que el desarrollo sin código impulsado por IA se volverá más común, hasta el punto de que lo que significa ser un ingeniero de software sea diferente?

Thomas Dohmke: Creo que la capacidad de pensar en sistemas, comprender la complejidad del software y ser capaz de enfrentar un problema grande, un desafío grande, una nueva función grande y descomponerlo en problemas más pequeños, jugará un papel cada vez más importante.

Hemos pasado de las tarjetas perforadas a cientos, miles, millones y probablemente ahora billones, si no es que hay algo más después de billones, de líneas de código. Como desarrolladores, necesitamos ser capaces de gestionar estos sistemas complejos que resuelven problemas grandes y complejos. Y debes ser capaz de descomponerlos en pequeñas unidades de construcción.

Las habilidades del desarrollador serán descubrir «¿hasta qué punto debo ir para poder aprovechar la IA y sintetizar este código para mí?» Al menos en un futuro cercano, aún tendremos que revisar todo este código fuente: comprender lo que hace y realizar revisiones de seguridad, revisiones de cumplimiento, verificar si hay una inyección de comandos, donde alguien intenta inyectar código malicioso en la base de código.

El desarrollador seguirá siendo el experto, comprendiendo el código y verificando si lo que ha sido sintetizado por la IA realmente corresponde a la intención del desarrollador. Esto probablemente cambiará en la próxima década: cuánto escribimos nosotros mismos y cuánto es simplemente sintetizado. Pero no creo que estemos cerca de un escenario en el que todo sea desarrollo sin código.

«La cantidad de distracciones no disminuye, pero puedes aprovechar mejor el tiempo creativo».

THOMAS DOHMKE

Freethink: ¿Qué observas en cuanto a cómo está cambiando el trabajo diario de los programadores gracias a Copilot?

Dohmke: En realidad, los desarrolladores no pasan la mayor parte del tiempo codificando en los días de hoy; entre dos y cuatro horas al día es el tiempo en el que un desarrollador escribe código. El resto del día hacen otras cosas, como reuniones, análisis de informes de errores. (O tal vez alguien en las reseñas de la tienda de aplicaciones está diciendo que la última versión tiene problemas y ni siquiera puedes reproducir el error).

Con Copilot, si solo tienes dos o cuatro horas al día para codificar, puedes aprovechar mejor ese tiempo. Puedes usarlo para mantenerte enfocado, hacer el trabajo y disfrutar del proceso.

La cantidad de distracciones no disminuye, ya sea Slack, Twitter, el teléfono móvil y los mensajes de WhatsApp. No desaparecen, pero puedes aprovechar mejor el tiempo creativo y concentrarte en el problema, porque si no estás constantemente alternando entre el editor y otras cosas, también tienes menos disparadores para distraerte. Por lo tanto, hemos observado que las personas se mantienen más enfocadas.

«Copilot trae de vuelta la diversión, trae de vuelta la creatividad. Trae de vuelta el flujo».

THOMAS DOHMKE

Freethink: ¿Cómo ha cambiado tu propio proceso de escribir software? No sé cuánto tiempo puedes dedicar a la codificación en la actualidad, pero estoy realmente interesado en cómo ha evolucionado tu propio proceso de codificación gracias a Copilot.

Dohmke: Para mí, principalmente son proyectos de pasatiempo. Pero lo primero que me viene a la mente es que Copilot trae de vuelta la diversión. A menudo, hay muchas distracciones y muchas otras cosas que podrías hacer. El fin de semana, nuestro tiempo lejos del trabajo, es de alguna manera una competencia por la capacidad de concentración: ¿quieres salir a caminar? ¿O quieres armar algunos juegos de Lego? ¿O quieres codificar?

Cuando encuentro una hora para escribir software, Copilot trae de vuelta la diversión, trae de vuelta la creatividad. Trae de vuelta el flujo, porque no necesitas alternar constantemente entre el editor, el navegador y los motores de búsqueda, y cosas como Stack Overflow o GitHub mismo, para encontrar esas tres líneas de código que necesitas, no sé, para hacer una esquina redondeada en la aplicación de tu iPhone que estás construyendo.

Así que creo que trae de vuelta esa sensación de «estoy construyendo mi gran idea brillante» que tuve en ese momento, en esa hora o dos que tengo en una mañana de domingo antes de que otras cosas se vuelvan prioritarias.

«Las startups entienden que incluso un aumento de productividad del 20-25% puede decidir su supervivencia».

THOMAS DOHMKE

Freethink: ¿Cómo crees que habría sido diferente tu propia experiencia como fundador si hubieras tenido acceso a una herramienta como Copilot cuando estabas creando tu primera startup?

Dohmke: Creo que habría hecho mi vida mucho más fácil. Como fundador de una pequeña startup, tienes que moverte rápidamente, porque esa es la única forma de sobrevivir. Entonces, tener una herramienta disponible que te mantenga en flujo, una herramienta que te permita llegar a un prototipo, llegar a una vista previa y finalmente ajustar el producto en el mercado, es increíblemente empoderador.

Hablo con muchas startups y soy inversor ángel en algunas de ellas, y todas están utilizando Copilot porque entienden que incluso un aumento de productividad del 20-25% puede decidir su supervivencia.

«La respuesta ha sido sorprendente. La gente nos ha dicho que ya no pueden desarrollar sin Copilot».

THOMAS DOHMKE

Freethink: Estoy interesado en saber qué datos han recopilado, ya sea de forma anecdótica o más formal, sobre cómo Copilot está cambiando la forma en que los programadores de GitHub y Microsoft trabajan.

Dohmke: Comenzamos a trabajar en Copilot en agosto de 2020 y luego lanzamos la primera versión previa interna a principios de 2021 para alrededor de 250 empleados de GitHub, o «Hubbers», y la respuesta que recibimos fue asombrosa. La gente estaba entusiasmada. Nos dijeron que ya no pueden desarrollar sin Copilot.

Medimos el Net Promoter Score, NPS [nota del editor: una medida de satisfacción del usuario], que varía de -100 a +100. Y obtuvimos un resultado de +73 en nuestra población de 250 probadores. Nunca hemos visto estos números en ningún otro cambio en el entorno de desarrollo. Normalmente, los desarrolladores dicen: «No toques mi sistema, sé lo que estoy haciendo, Thomas, ¿por qué estás introduciendo una nueva herramienta?».

Recibimos comentarios tremendamente positivos de nuestro equipo, y los números de retención, cuántas personas continuaron usando después del primer día o la primera semana, fueron increíblemente altos, más altos que cualquier otro producto que hayamos construido. Esperas cierta disminución: lanzas una nueva función dentro de la empresa y todos están entusiasmados el primer día, pero para el tercer día, todos vuelven a sus viejos hábitos. Y no hemos visto eso con Copilot, ya sea dentro de GitHub, dentro de Microsoft o realmente entre nuestros clientes.

«Casi la mitad del código, en promedio, es escrito por Copilot. Eso por sí solo es impresionante».

THOMAS DOHMKE

Freethink: ¿Tienen algún dato o estadística sobre cómo la comunidad más amplia de desarrolladores en GitHub está utilizando Copilot y cuál es el impacto en su productividad?

Dohmke: Cuando los clientes utilizan Copilot, seguimos la cantidad de veces que presionan la tecla Tab y cuánto código es escrito por Copilot en esos archivos. Y ese número ahora promedia el 46%, casi la mitad del código es escrito por Copilot en esos archivos en los que está habilitado. Eso por sí solo es impresionante.

Comenzamos a trabajar en Copilot hace tres años; se lanzó la versión previa hace casi dos años. Ese número ha ido aumentando constantemente desde su lanzamiento. Más temprano o más tarde, el 80% del código será escrito por Copilot. Y esto no significa, como discutimos, que el desarrollador será reemplazado. Significa que el desarrollador tendrá más tiempo para enfocarse en el 20% del código que está escribiendo.

Cuando utilizas Copilot, tu estilo cambia, porque te vuelves más explícito. Escribes comentarios de código y tal vez un pequeño ejemplo. Al escribir una función con una entrada y una salida, al proporcionar ejemplos de entradas y salidas, Copilot «tiene una idea» de lo que querías hacer y utiliza eso como contexto adicional para sintetizar el código.

«El grupo con Copilot fue un 55% más rápido. Esto va a cambiar la industria.»

THOMAS DOHMKE

De hecho, tenemos información de una encuesta cuantitativa realizada a 2000 desarrolladores sobre cómo se sienten al usar Copilot, y el 75% de esos desarrolladores afirman estar más satisfechos. Nos dicen que necesitan menos capacidad mental para completar el trabajo. Están gastando menos tiempo escribiendo el código básico que siempre debemos hacer como desarrolladores.

También llevamos a cabo un estudio cualitativo, en el que proporcionamos acceso a Copilot a 50 desarrolladores y tuvimos alrededor de 50 desarrolladores que no tenían Copilot, el grupo de control, por así decirlo, y les pedimos que construyeran un servidor web. El grupo con Copilot fue un 55% más rápido. Esto va a cambiar la industria.

Además de ser un 55% más rápidos, tuvieron una tasa de éxito más alta: 78% en comparación con el 70%.

«Creo que la forma en que aprendemos cambiará por completo.»

THOMAS DOHMKE

Freethink: ¿Cuál será el efecto de Copilot en el desarrollo de futuros programadores? Existe una tensión al aprender a programar entre frustrarse con cosas que parecen ser fáciles y el hecho de que al hacer esas cosas repetidamente, eventualmente adquirimos una comprensión más profunda de cómo funciona todo. Me gustaría saber qué efecto puede tener una herramienta como Copilot, por ejemplo, en un estudiante de secundaria que está aprendiendo a hacer una ordenación por burbuja y puede simplemente presionar la tecla de tabulación y tener el código apareciendo sin tener que hacerlo desde cero primero.

Dohmke: Creo que la forma en que aprendemos cambiará por completo, al igual que la forma en que enseñamos en las escuelas también cambiará por completo.

Creo que daremos menos importancia a saber quién fue el presidente en 1845 y nos centraremos más en cómo aprendemos. El profesor se convierte en un entrenador que ayuda a los niños de todas las edades a aprovechar la tecnología para explorar estos temas por sí mismos y a su propio ritmo. Creo que esto será increíblemente democratizador para los niños, especialmente en el desarrollo de software.

Es fácil olvidar aquí en Estados Unidos que el idioma más común en la programación es el inglés. Si creces aquí, es probable que tengas más facilidad para entender inglés que si creces en Brasil, China o Alemania. Eso, por sí solo, será liberador para los niños, ya que podrán hacer una pregunta a un agente de IA como Copilot en su idioma nativo. Copilot entenderá esos idiomas y aún sintetizará el código en el lenguaje de programación que el estudiante está aprendiendo, pero los alumnos podrán interactuar y hacer preguntas en su propio idioma.

Creo que el conocimiento tendrá menos importancia y saber cómo razonar, saber cómo explorar el contenido, saber cómo descubrir si el contenido proporcionado por la IA es realmente la respuesta correcta será crucial. Los profesores trabajarán con los niños para aprender a hacerlo. Y los estudiantes tendrán que descubrir si lo que la IA está proporcionando es realmente la respuesta al problema que están resolviendo, o si el modelo está «alucinando».

«Los niños pueden simplemente hacer una pregunta a un agente de IA, como Copilot, en su idioma nativo».

THOMAS DOHMKE

Freethink: Al menos en mi opinión, parece que en cualquier disciplina que elijas, ya sea medicina o ciencias de la computación, para realizar ese tipo de razonamiento de alto nivel, necesitas partir con algún conocimiento de contenido básico.

Dohmke: Si utilizas Copilot, te darás cuenta relativamente rápido de que aún necesitas tener ese conocimiento básico. No puedes escapar de eso. Puedes ir a ChatGPT o Copilot y preguntar «cómo construir GitHub», y te dará una respuesta muy abstracta.

Necesitas tener la habilidad de decir: «Ok, ¿cómo descompongo este problema realmente grande en problemas más pequeños?» Y para hacer eso, necesitas entender qué es una base de datos, qué es una máquina virtual, qué es un contenedor. Necesitas conocer todas estas cosas en ciencias de la computación para llegar realmente al punto en el que la IA pueda responder a tu pregunta.

«Seguimos luchando por los derechos de los desarrolladores de código abierto porque creemos que el código abierto es fundamental para alcanzar el progreso humano».

THOMAS DOHMKE

Profesores, si volvemos al ejemplo de la escuela, se darán cuenta de esto inmediatamente. Si un estudiante intenta hacer trampa para resolver su tarea, no solo necesitará proporcionar la respuesta, sino también mostrar cómo llegó a ella. Es como en la clase de matemáticas: muestra tu proceso de cómo usaste Copilot para construir algo.

Otra cosa es que ningún proyecto de software es igual, y hay una gran diferencia entre construir un sistema de punto de venta para un supermercado o construir una aplicación para iPhone que se ejecute en cada dispositivo individual, pero que aún pueda tener 100 millones de usuarios. Aún se necesita aprender sobre estos conceptos y cómo resolver estos problemas. Y creo que esa es una habilidad mucho más útil para nosotros como seres humanos que conocer todos los detalles del lenguaje de programación.

Freethink: Como alguien que siempre ha defendido el código abierto, ¿cuál es el papel que ves para el código abierto en este contexto?

Dohmke: El código abierto jugará un papel fundamental en la evolución de Copilot. El modelo proporcionado por OpenAI para Copilot fue entrenado con datos abiertos en internet. No solo código fuente, sino también otros documentos diversos. Esto permite que Copilot comprenda no solo lenguajes de programación, sino también lenguajes humanos. El código abierto proporciona conjuntos de datos para el entrenamiento de estos modelos.

Ahora hemos visto varios modelos de lenguaje grandes y de código abierto. Muchos de ellos se alojan en GitHub, ¡lo cual nos entusiasma! GitHub ha abrazado el ecosistema de código abierto que hemos brindado en los últimos 15 años. Básicamente, todos nuestros recursos se han puesto a disposición de forma gratuita para proyectos de código abierto, y queremos seguir apoyando este ecosistema. Seguimos luchando por los derechos de los desarrolladores de código abierto porque creemos que el código abierto es fundamental para alcanzar el progreso humano.

El modelo de colaboración que viene con el código abierto es probablemente el modelo de colaboración más abierto y sin fronteras que existe: desarrolladores de diferentes países trabajan juntos y no se preocupan por todos los demás conflictos que tenemos en este planeta.

«Los lenguajes caen en desuso. Pero también nunca dejan de ser útiles.»

THOMAS DOHMKE

La mayoría de las veces, cuando recibes una solicitud de pull request, no sabes quién es esa persona, cuál es su cargo, en qué ha estado trabajando, si ha asistido a la universidad o no. No te importa. No creo que si quieres contribuir con código al kernel de Linux, alguien te pregunte: «¿Realmente tienes una educación adecuada y cinco años de experiencia laboral?» Así es como funciona la colaboración de código abierto.

En GitHub, eso es lo que abrazamos y siempre abrazaremos como parte de nuestra misión de capacitar y permitir a los desarrolladores de código abierto. Creo que los modelos de lenguaje grandes desempeñarán un papel importante y nos ayudarán a acelerar el progreso juntos.

Freethink: ¿Qué papel crees que puede desempeñar Copilot en el desarrollo de nuevos lenguajes de programación? Los lenguajes surgen, caen en desuso; estoy curioso por saber qué efecto puede tener Copilot en eso.

Dohmke: Mencionaste que los lenguajes caen en desuso. Creo que eso es cierto. Pero tampoco dejan de ser útiles. El ejemplo más común aquí son los bancos e instituciones financieras que aún ejecutan COBOL en mainframes. Y no es solo un banco en algún lugar, es cualquier banco con el que he hablado en cualquier país del mundo que aún ejecuta COBOL en mainframes.

Eso es un problema, porque las personas que escribieron COBOL en los años 60 están, afortunadamente, todas jubiladas ahora y ya no necesitan mantener ese código para los bancos. Copilot jugará un papel en ayudar a las empresas a modernizar su base de código, y lo hará de varias maneras.

En primer lugar, Copilot puede explicar el código heredado al desarrollador que ahora necesita hacerse cargo. Puedes resaltar el código y decir: «Explícame este código». Y una vez que tengas una explicación, realmente puedes usar la explicación y el código para generar casos de prueba para ese código. El siguiente paso lógico es aprovechar la IA en un proceso iterativo con el «copiloto», el desarrollador, para reescribir todo en Python. Y como has generado las pruebas y has generado la descripción, que probablemente no existían en los años 60; gran parte de ese código no está documentado, puedes convertir esa antigua base de código en una nueva base de código.

«Tenemos un producto llamado Copilot Voice que te ayuda a programar con tu voz, en lugar de tus manos».

THOMAS DOHMKE

«Todos estamos luchando contra la deuda técnica, no solo de la generación anterior de desarrolladores, sino también de nuestra propia base de código de hace seis meses. La mayoría de los desarrolladores, cuando miran lo que escribieron hace seis meses, dicen: ‘Lo haría mucho mejor ahora que hace seis meses'. Veremos más iteración y, con suerte, menos carga que llevamos con nosotros.

Creo que otra forma será simplificar el aprendizaje de la programación, y los propios lenguajes de programación probablemente cambiarán para ser más humanos. En lugar de escribir mucho código, solo podría escribir muchos comentarios y luego sintetizar el resto del código. Y esos comentarios pueden estar en alemán, portugués brasileño, prácticamente cualquier idioma será comprendido por estos modelos para la síntesis de código.

El último punto es que tenemos una vista previa de un producto llamado Copilot Voice que te ayuda a programar con tu voz, en lugar de tus manos. Esto brindará acceso a personas con discapacidades que no pueden escribir todo el día debido a lesiones por esfuerzo repetitivo.

Freethink: Cuando estaba enseñando programación a estudiantes de secundaria, el mayor desafío para ellos era comprender lo que es diferente en el lenguaje de programación en comparación con el lenguaje natural. Lo que los frustraba era cómo las computadoras hacen exactamente lo que les dices, como un hermano molesto que hará algo obviamente incorrecto y luego dirá: ‘Bueno, técnicamente dijiste eso'. Con herramientas como Copilot, ¿crees que habrá una convergencia en la que la programación se vuelva más similar a cómo nos comunicamos personalmente?

Dohmke: Creo que eso ya es evidente. Cuando usas estos agentes de chat, no solo tienen la frase que acabas de escribir, también tienen el contexto de la conversación anterior. En el caso de Copilot Chat, realmente sabe lo que hay en tu editor, no solo en el archivo que tienes abierto, sino también en las pestañas adyacentes y en tu depurador. En el futuro, probablemente tendrán todo el repositorio o la carpeta de archivos disponible como contexto.

Hoy en día, ya puedes escribir un archivo HTML, una página web, y a medida que escribes, con la ayuda de Copilot, puedes decir: ‘Haz este texto en negrita' o ‘Centra esta área en la página'. Y luego te muestra cómo hacerlo y elimina la frustración del pasado cuando pensábamos que la computadora no entendía lo que queríamos. Bueno, ahora lo entiende».

«Uno de los mejores momentos al interactuar con Copilot es poder decirle que algo está mal.»

THOMAS DOHMKE

«Recientemente, en una conferencia, creé un juego de la Serpiente como demostración de Copilot. Dije: ‘Haz que el juego se vea más bonito', y él simplemente generó las hojas de estilo. Nunca dije que quería una hoja de estilo. Ni siquiera mencioné los conceptos de HTML o CSS. Copilot entendió eso por sí solo, teniendo en cuenta el contexto de lo que intentaba lograr.

Creo que uno de los mejores momentos al interactuar con Copilot es poder decir que algo está mal. Realmente puedes decir: ‘Esto no es lo que estaba buscando' o ‘Esto no funciona'.

Y luego él dice: ‘Oh, disculpa. Aquí tienes otra cosa que puedes intentar'. Así, posee este modo interactivo y no necesitas conocer la sintaxis exacta del lenguaje de programación. No necesitas saber todo lo que sería necesario para resolver el problema. Puedes explorar y llegar a la solución por ti mismo».

«Incluso si solo han sido entrenados en base a arte existente, pueden generar una categoría totalmente nueva de arte.»

THOMAS DOHMKE

Freethink: Por lo que entiendo, Copilot está construido sobre Codex de OpenAI, que es una especie de instantánea del código anterior a 2021. No sé si hay planes para conectar Copilot a Internet para que se actualice con más frecuencia, pero me intriga saber si ves alguna pérdida al no tener que escribir el código básico con tanta frecuencia. Cuando uno se adentra todo el tiempo, una persona entre cada 100.000 puede eventualmente decir: ‘Wow, aquí hay una forma de hacer esto mucho mejor'. Y luego esa solución se propaga por la comunidad de desarrolladores. Si las personas solo le piden a Copilot las mejores soluciones basadas en el código de ayer, ¿cómo ves que la propia innovación cambia?

Dohmke: El primer punto a considerar es que los modelos de lenguaje no tienen una biblioteca de fragmentos de código almacenados en ellos. Son redes neuronales que tienen miles de millones de parámetros que describen cómo predecir la probabilidad de algo. En términos de modelos de lenguaje, ese algo es la siguiente palabra. En términos de modelos de difusión, es como pasar de ruido a una imagen.

Si consideras estos modelos de difusión como un ejemplo visual, es evidente que pueden crear cosas nuevas que no existían antes. Incluso si solo han sido entrenados en base a arte existente, pueden generar una categoría totalmente nueva de arte. Puedes ir a Stable Diffusion y decir: ‘Renderiza el horizonte de Nueva York como lo pintaría un impresionista francés'. Y luego realmente renderiza el horizonte de Nueva York de hoy como si fuera pintado por Monet u otro impresionista francés.

No hay ninguna imagen en el conjunto de entrenamiento que se parezca realmente a eso. La imagen se genera en base a tu solicitud y, en última instancia, a partir del ruido.

Creo que lo mismo se aplica a los modelos de lenguaje. Pueden generar texto completamente nuevo, código completamente nuevo que nunca antes había existido y, como tal, pueden, en colaboración con el desarrollador, realmente crear innovación y nuevos algoritmos o código. Pero, como se puede inferir por el término ‘Copilot', creemos que hay un piloto involucrado que trabaja de manera iterativa con Copilot para lograr esa innovación.»