Sábado, 28 Mayo 2022 17:43

Cómo la IA facilita la vida de los desarrolladores y ayuda a todos a aprender a desarrollar software

Escrito por Evelyn Alas

Desde que Ada Lovelace, una erudita a menudo considerada la primera programadora de computadoras, propuso en 1843 usar agujeros perforados en tarjetas para resolver ecuaciones matemáticas en una computadora mecánica nunca antes construida, los desarrolladores de software han traducido sus soluciones a problemas en instrucciones paso a paso que las computadoras pueden entender.

Eso ahora ha comenzado a cambiar, según Kevin Scott, director de tecnología de Microsoft.

Hoy en día, las herramientas de desarrollo de software impulsadas por inteligencia artificial permiten a las personas crear soluciones de software a través de utilizar el mismo lenguaje que usan cuando hablan con otras personas.

Estas herramientas impulsadas por IA traducen el lenguaje natural a los lenguajes de programación que entienden las computadoras.

“Eso te permite, como desarrollador, tener la intención de lograr algo en tu cabeza que puedes expresar en lenguaje natural y esta tecnología lo traduce en un código que logra la intención que tienes”, dijo Scott. “Esa es una forma diferente de pensar sobre el desarrollo que la que hemos tenido desde el comienzo del software”.

Este cambio de paradigma está impulsado por Codex, un modelo de aprendizaje automático de la empresa de investigación y desarrollo de IA OpenAI que puede traducir comandos de lenguaje natural en código en más de una docena de lenguajes de programación.

Codex desciende de GPT-3, el modelo de lenguaje natural de OpenAI que se entrenó en petabytes de datos de lenguaje de Internet. Codex fue entrenado sobre los datos de este idioma, así como del código de los repositorios de software de GitHub y otras fuentes públicas.

“Hace que la codificación sea más productiva en términos de eliminar el trabajo no tan divertido y también te ayuda a recordar cosas que podrías haber olvidado y te ayuda con el enfoque para resolver problemas”, dijo Peter Welinder, vicepresidente de productos y asociaciones de OpenAI, sobre Codex.

Según Scott, el aumento de la productividad que aporta Codex al desarrollo de software cambia las reglas del juego. Permite a los desarrolladores realizar muchas tareas en dos minutos que antes tomaban dos horas.

“Y a menudo, lo que hacen las herramientas es que te ayudan a pasar de manera muy rápida por las partes menos interesantes de tu trabajo para que puedas llegar a las partes más interesantes, lo que hace que la experiencia cualitativa de crear sea mucho más placentera, estimulante y divertida”, dijo.

La IA y el código se unen

Microsoft y OpenAI formaron una asociación en 2019 para acelerar los avances en IA, incluido el desarrollo conjunto de algunas de las supercomputadoras de IA más poderosas del mundo, y entregárselas a los desarrolladores para crear la próxima generación de aplicaciones de IA a través del servicio Azure OpenAI.

La subsidiaria de Microsoft, GitHub, también trabajó con OpenAI para integrar Codex en GitHub Copilot, una extensión descargable para programas de desarrollo de software como Visual Studio Code.

La herramienta utiliza Codex para extraer contexto del código existente de un desarrollador para sugerir líneas de código y funciones adicionales. Los desarrolladores también pueden describir lo que quieren lograr en lenguaje natural, y Copilot se basará en su base de conocimientos y contexto actual para encontrar un enfoque o una solución.

GitHub Copilot, lanzado en una vista previa técnica en junio de 2021, hoy sugiere alrededor del 35% del código en lenguajes populares como Java y Python generado por las decenas de miles de desarrolladores en la vista previa técnica que usan de manera regular GitHub Copilot.

GitHub Copilot pasará a disponibilidad general este verano, para brindar esta capacidad de codificación asistida por IA a millones de desarrolladores profesionales, anunció Microsoft hoy en su conferencia de desarrolladores Build.

“Mucho software tiene marcos comunes y piezas de andamiaje. Copilot hace un trabajo increíble al hacer todo eso por ustedes para que puedan concentrar su energía y su creatividad en las cosas que tratan de resolver de manera única”, dijo Julia Liuson, presidenta de la división de desarrolladores de Microsoft, que incluye GitHub.

A medida que más desarrolladores experimentan con Codex y GitHub Copilot, surgen más pistas sobre el potencial del desarrollo asistido por IA, según Welinder. Por ejemplo, la documentación en lenguaje natural dentro de la mayoría de los programas de software es escasa. Los usuarios de GitHub Copilot crean esta documentación de manera predeterminada a medida que usan la herramienta.

“Obtienes un montón de comentarios en el código solo por la naturaleza de decirle a Copilot qué hacer”, dijo. “Documentas el código sobre la marcha, lo cual es alucinante”.

Estos comentarios, a su vez, sirven como herramienta de enseñanza para otros desarrolladores, quienes a menudo estudian otros programas para aprender a resolver problemas específicos en sus propios programas. La capacidad de Codex para traducir del código al lenguaje natural es otra forma en que los desarrolladores pueden aprender mientras programan, lo que reducirá la barrera de entrada a la codificación, agregó Welinder.

De código bajo a ningún código

Mientras tanto, las herramientas de código bajo y sin código impulsadas por IA, como las disponibles a través de Microsoft Power Platform, están preparadas para permitir que miles de millones de personas desarrollen las aplicaciones de software que necesitan para resolver sus problemas únicos, desde un audiólogo que digitaliza formularios en papel simple para transformar la prevención de pérdida de la audición en Australia, a una herramienta que alivia la carga del trabajo de ingreso manual de datos de los empleados de una empresa familiar y una solución de nivel empresarial que procesa miles de millones de dólares en solicitudes de condonación de préstamos por Covid-19 para pequeñas empresas.

Hoy en día, los cientos de millones de personas que se sienten cómodas en trabajar con fórmulas en Microsoft Excel, un programa de hoja de cálculo, podrían incorporar con facilidad estas habilidades a Power Platform, donde pueden crear este tipo de aplicaciones de software, según Charles Lamanna, vicepresidente corporativo de aplicaciones y plataforma de negocios en Microsoft.

“Uno de los grandes impulsos que hemos llevado a cabo es pasar al siguiente nivel, pasar de cientos de millones de personas que pueden usar estas herramientas a miles de millones de personas que pueden usar estas herramientas”, dijo. “Y la única forma en que creemos que podemos hacer eso es pasar de un código bajo a ningún código mediante el uso de desarrollo impulsado por IA”.

Para hacer esto, el equipo de Lamanna primero integró GPT-3 con Microsoft Power Apps para una función llamada Power App Ideas, que permite a las personas crear aplicaciones a través de lenguaje conversacional en Power Fx, un lenguaje de programación de código abierto para el desarrollo de código bajo con sus orígenes en Microsoft Excel.

El próximo paso, anunciado en Build, es una característica llamada diseño rápido de Power Apps, que aprovecha los modelos de inteligencia artificial de Azure Cognitive Services para convertir dibujos, imágenes, archivos de diseño PDF y Figma en aplicaciones de software.

“Lo hemos hecho para que podamos hacer reconocimiento de imágenes y asignarlo a las construcciones que existen dentro de una aplicación. Entendemos qué es un botón, qué es una agrupación, qué es un cuadro de texto y generamos una aplicación de manera automática, basada en esos dibujos sin que tengas que entender y conectar todos estos componentes diferentes”, dijo Lamanna.

https://youtu.be/LCCZ_kW14T4

Esta transición de código bajo a ningún código en la parte posterior de la IA sigue una tendencia general de que el cómputo se vuelva más accesible con el tiempo, agregó. Las computadoras personales eran raras hace 40 años, las hojas de cálculo eran poco comunes hace 30 años, el acceso a Internet era limitado hace 20 años, por ejemplo. Hasta hace poco, la edición de videos y fotos estaba reservada para expertos.

El desarrollo de software también debería volverse más accesible, dijo Lamanna.

“Si queremos que todos sean desarrolladores, no podemos planear enseñarles a todos cómo escribir código Python o JavaScript. Eso no es posible. Pero es posible si creamos las experiencias correctas y las ponemos frente a suficientes personas que pueden hacer clic, arrastrar y soltar y usar conceptos que son familiares para crear soluciones sorprendentes”, dijo.

Desarrolladores para el futuro basado en software

GitHub Copilot, así como las ofertas de código bajo y sin código disponibles a través de Power Platform, son la primera fase del desarrollo impulsado por IA, según Liuson. Ella imagina modelos y herramientas impulsados por IA que ayudarán a los desarrolladores de todos los niveles de habilidad a limpiar datos, verificar el código en busca de errores, depurar programas y explicar qué significan los bloques de código en lenguaje natural.

Estas características son parte de una visión más amplia de herramientas impulsadas por IA que podrían servir como asistentes que ayuden a los desarrolladores a encontrar soluciones de manera más rápida a sus problemas y ayudar a cualquier persona que quiera crear una aplicación a pasar de una idea en su cabeza a una pieza de software que funcione.

“Como desarrolladores, todos tenemos días en los que nos hemos tirado de los pelos y decimos: ‘¿Por qué no funciona esto?’ Y consultamos con un desarrollador más senior que nos indica la dirección

correcta”, dijo Liuson. “Cuando Copilot pueda decir, Oye, aquí están las cuatro cosas diferentes que son comunes con este patrón de problema, eso será enorme”.

Esta nueva era de desarrollo de software asistido por IA puede conducir a una mayor productividad, satisfacción y eficiencia de los desarrolladores y hacer que el desarrollo de software sea más natural y accesible para más personas, según Scott.

Por ejemplo, un gamer podría usar el lenguaje natural para programar personajes que no son jugadores en Minecraft para realizar tareas como construir estructuras, lo que liberaría al jugador para atender otras tareas más apremiantes. Los diseñadores gráficos pueden utilizar el lenguaje natural para crear escenas 3D en el motor de representación de gráficos Babylon.js. Los profesores pueden usar herramientas de creación y colaboración en 3D como FrameVR para crear un mundo de metaverso como un paisaje lunar con vehículos de exploración y una bandera estadounidense.

“Puedes describirle al sistema de IA lo que quieres lograr”, dijo Scott. “Puede tratar de descubrir qué es lo que quisiste decir y mostrarte parte de la solución y luego puedes refinar lo que te muestra el modelo. Es este ciclo iterativo el que fluye de manera libre y es natural”.

Estas herramientas, agregó Scott, también engrosarán las filas de los desarrolladores en un mundo que será impulsado cada vez más por el software.

“Debido a que el futuro depende tanto del software, queremos un conjunto amplio e inclusivo de personas que participen en su creación”, dijo. “Queremos que personas de todo tipo de antecedentes y puntos de vista puedan usar la tecnología más poderosa que puedan encontrar para resolver los problemas que tienen, para ayudarlos a construir sus negocios y crear prosperidad para sus familias y sus comunidades.”

Contenido relacionado

 Conozcan más sobre GitHub Copilot

 Consulten la función de diseño rápido en Power Apps

 Lean: Azure OpenAI Service ayuda a los clientes a acelerar la innovación con grandes modelos de IA; Microsoft amplía la disponibilidad

 Lean: El nuevo servicio OpenAI de Azure combina el acceso a modelos de lenguaje GPT-3 potentes con las capacidades empresariales de Azure

 Lean: De la conversación al código: Microsoft presenta sus primeras funciones de producto con tecnología GPT-3