
La cuestión de cuanto IA generativa puede ayudar a los programadores es un tema de debate candente. El propio David Gewirtz de ZDNET ha encontrado De sus experimentos de primera mano se desprende que ChatGPT de OpenAI «puede escribir código bastante bueno». Al mismo tiempo, algunos estudios han encontrado grandes modelos de lenguaje como GPT-4 están muy por debajo de los de los codificadores humanos en su nivel general de calidad del código.
También: El CEO de Pinecone busca darle a la IA algo parecido al conocimiento
Pero algunos argumentan que el debate sobre si la IA funciona o no como codificador puede no tener sentido. Dicen que la esencia de la ayuda a la codificación a través de la automatización radica en cambiar la naturaleza del trabajo de un programador.
«Si me preguntas cuál es el gran cambio, lo que pasó con el mundo de la IA generativa es que hemos creado otra capa de abstracción encima de la IA», dijo Inbal Shani, director de producto de GitHub, el sitio para desarrolladores propiedad de Microsoft. en una entrevista reciente con ZDNET.
Esa capa de abstracción, es decir, el lenguaje natural, se utilizó inicialmente solo para completar el código. «Esa es la capa básica que hemos visto», dijo. El poder de la capa de abstracción, sostiene Shani, es que puede ampliarse a muchos más usos de la IA más allá de la finalización del código.
También: Cómo usar ChatGPT para escribir código
GitHub presentó su versión de asistencia de código, GitHub Copilot, en junio de 2021. Este año ha sido «un año de transformación» para la IA en la programación, dijo Shani. Como dijo el director ejecutivo de Microsoft, Satya Nadella anunciado en octubreGitHub tiene más de un millón de clientes de pago que utilizan Copilot y más de 37.000 organizaciones que lo utilizan.
Shani citó a usuarios destacados de Copilot como Accenture, que ha puesto a cientos de desarrolladores en Copilot. «Han visto que se ha utilizado mucho para reducir lo que llamamos código repetitivo, el código repetitivo que a los desarrolladores no necesariamente les gusta escribir, pero que tienen que hacerlo porque es parte de sus bases».
Accenture ha retenido el 88,5% del código escrito por Copilot, afirmó Shani. «Así que esto significa que copiloto pudo proporcionar respuestas de alta precisión y alta fidelidad a sus desarrolladores para que elijan conservar ese código y no tener que reescribirlo».
Según una medida de productividad, la cantidad de solicitudes de extracción completadas a tiempo, cuando se fusiona un código nuevo con la fuente principal de un proyecto, ha aumentado en un 15 % como resultado del uso de Copilot en Accenture. Además, «han visto que los desarrolladores son más propensos a pasar por el proceso de compilación», la tarea de convertir el código en un binario en ejecución.
También: Microsoft tiene más de un millón de usuarios de pago de Github Copilot: CEO Nadella
«A veces, los desarrolladores se abstienen» de realizar compilaciones, señaló. «Dicen, no confío, necesito realizar pruebas nuevamente, pero usar Copilot me ayudó a generar esa confianza para implementar más código en producción».
La perspectiva de esos pequeños cambios (más solicitudes de extracción, más compilaciones, menos escritura de código repetitivo) tiene beneficios cualitativos inmediatos en la forma en que cambia el día del desarrollador.
«Si podemos aumentar la tasa de construcción de manera consistente, eso básicamente ayudará a los desarrolladores a pasar menos tiempo esperando las compilaciones, a tener más tiempo para concentrarse en la arquitectura, etc.», dijo Shani.
«Un descubrimiento impactante que me ocurrió es que los desarrolladores tienen menos de dos horas al día para escribir código», dijo Shani. «Necesitan hacer muchas cosas relacionadas con el ciclo de vida del desarrollo de software, pero no con la codificación: construyen, escriben pruebas, participan en reuniones, necesitan interactuar con otras personas, necesitan escribir relaciones públicas. [pull requests]».
También: ¿Puede la IA codificar? Sólo en pequeños pasos
Al automatizar algunas de esas tareas, o partes de ellas, existe la posibilidad de que «estamos dando más ancho de banda para que los desarrolladores inviertan en otras áreas».
Nada de esto se ha cuantificado todavía completa y rigurosamente en términos de aumento de la productividad, admitió Shani. «Creo que estamos en medio de eso», dijo sobre el proceso de medir la productividad. Copilot y los de su calaña «no se han adoptado durante el tiempo suficiente para que podamos obtener datos reales y sustanciales que podamos decir: así es como hemos cambiado vidas para siempre».
Las definiciones son complicadas para la productividad, señaló. «Puedes escribir código realmente malo muy rápido», por lo que acelerar el código mediante la finalización del código «no es necesariamente un indicador de éxito».
Más bien, dijo Shani, «el trabajo que tenemos en curso es: ¿Qué es realmente el tiempo para valorar? ¿Cuál es ese impacto? ¿Cómo medimos el impacto de estas herramientas que hemos ido adoptando a lo largo del camino? Eso todavía está en curso».
Otro elemento importante que se debe medir de alguna manera es «cómo definir la felicidad de los desarrolladores», dijo Shani. «Es muy importante que los desarrolladores sean reconocidos y, en este momento, el reconocimiento en algunas empresas proviene de medir cuántas líneas de código estoy escribiendo». Pero la verbosidad de un programador puede no ser el mejor indicador de lo bueno que es un programador, señala.
Uno de los elementos más profundos de la nueva capa de abstracción que está tomando forma en la IA es la reducción de la necesidad de cambiar entre diferentes herramientas.
«Normalmente, si estoy buscando algo que no sé escribir, voy a algún tipo de motor de búsqueda», explicó Shani. «Copilot pudo reunir todo eso en el mismo entorno». La interfaz, el mensaje «está ahí mismo en su IDE [integrated development environment],» de modo que «no necesita ir a diferentes herramientas, no necesita copiar y pegar, no necesita hacer todo eso; básicamente te quedas donde escribes tu código».
Como resultado, dijo, «los desarrolladores están contentos porque tienen menos cambios de contexto entre herramientas».
Copilot está encontrando su camino hacia otras áreas del equipo de programación. Un gran usuario de Copilot, la empresa de comercio electrónico Shopify, está utilizando Copilot para realizar entrevistas de codificación y evaluar a los nuevos empleados, dijo Shani. También utiliza Copilot para la incorporación de nuevos programadores, como «programador par» o educador para poner al día a los nuevos codificadores.
En aquellos casos en los que Copilot y herramientas similares aún no producen los resultados deseados, mucho puede deberse a la curva de aprendizaje de la ingeniería rápida, dijo Shani. «Aún es necesario saber cómo hacer la pregunta correcta», dijo.
«Cuanto más haces una pregunta más amplia [at the prompt]más general será la solución que obtendrá y que no necesariamente será aplicable a su situación», mientras que «cuanto más sepa cómo hacer las preguntas correctas, mejor obtendrá una respuesta de Copilot».
También: Probé las nuevas habilidades de codificación de Google Bard. No salió bien…otra vez
Microsoft está trabajando con clientes como Accenture en «esa gestión de cambios», dijo, sobre cómo escribir un «mensaje adecuado» y «cómo pensar en la pregunta que le hace a Copilot para obtener la respuesta correcta que sea aplicable».
Todavía hay mucho por desarrollar en el propio Copilot que probablemente tendrá un impacto importante en su utilidad y precisión. El programa está ganando gradualmente la capacidad de volverse «personalizado» para un desarrollador individual. «Un aspecto en el que estamos trabajando es cómo podemos ayudar a estos modelos a comprender su estilo de codificación», dijo Shani, «para comprender cuáles de estos elementos son críticos para usted como desarrollador de software y ajustar las recomendaciones que le damos».
En febrero, GitHub pondrá a disposición de forma generalizada una versión empresarial de Copilot. «Se trata específicamente de modelos más personalizados para empresas que quieran tener su propia versión de esa implementación», dijo Shani.
Dentro de la edición empresarial, «tendrá la capacidad de resumir las relaciones públicas o agregar comentarios al código usando Copilot, o buscar sus documentos y obtener el documento que está buscando». También se pondrá mayor énfasis en el manejo de pruebas y pruebas de estrés por parte de Copilot.
También: Bill Gates predice que pronto se producirá un «boom tecnológico masivo» gracias a la IA
La idea general es «centralizar todo con el mismo tipo de modelo de flujo de IA», dijo Shani, «en todo el desarrollo de software, desde el inicio hasta la producción».
Advanced Micro Devices, el fabricante de chips, es uno de los clientes beta de la edición empresarial, específicamente para ajustar los modelos internos de IA generativa de AMD. «Tenemos una larga lista de espera de más clientes que quieren entrar», señaló. «Lo estamos sometiendo a muchas pruebas rigurosas y queremos obtener muchos comentarios de los clientes que actualmente están en nuestro programa beta antes de sentirnos seguros de compartirlo».
Puede sonar extraño hablar de felicidad de los desarrolladores, dado que algunos han sugerido que la automatización del código mediante IA puede eliminar trabajos de programación. Sin embargo, ese no es el caso, insiste Shani. «No va a reemplazar a los desarrolladores, no en los próximos cinco o diez años, diría yo», dijo. «Estoy en el campamento que dice nuncaporque simplemente vamos a evolucionar como desarrolladores».
Shani, quien antes de llegar a GitHub hace un año dirigió el producto Elastic Containers en Amazon AWS, ha estado trabajando con IA durante más de dos décadas. Ella recuerda su propio viaje personal como codificadora de Fortran a C++, de Java a Python. «En todo momento, todo el mundo estaba enloquecido: oh, Dios mío, esto les va a quitar el trabajo a los desarrolladores».
También: La IA está adquiriendo un papel cada vez mayor como asistente de desarrollo y pruebas
Pero «Hemos visto un mayor aumento en el número de desarrolladores porque ahora hemos reducido la barrera para poder escribir más software».
Al mismo tiempo, la evolución de los copilotos de IA es «la misma que la revolución industrial que condujo a fábricas que ampliaron la producción de alimentos para satisfacer la demanda», como lo ve Shani. «Eso es lo que está sucediendo ahora: hay más demanda de software, por lo que hay más demanda de desarrolladores de software».
Si la generación de código se puede automatizar con precisión y si la capa de abstracción puede ahorrar en el cambio de contexto, ¿podrían Copilot y los de su calaña realmente acortar el tiempo de desarrollo de los proyectos?
En el libro El mes del hombre mítico, El programador Fred Brooks observó cómo simplemente agregar recursos a un gran proyecto de programación no sólo no aceleraba el proyecto, sino que muchas veces empeoraba las cosas.
Aún no está claro si la IA ayudará drásticamente a la programación y gestión de proyectos o si reducirá el esfuerzo total requerido para un gran proyecto de programación.
«No sé si el concepto de muchos meses se convertirá en segundos», afirmó Shani. «Las cosas aún tardarán el tiempo adecuado en madurar, pero creo que el camino para llegar allí será más sencillo y más eficiente si podemos alcanzar el valor que estamos buscando en un período de tiempo más corto».