Expirado

A medida que la Inteligencia Artificial asume más trabajo de desarrollo de software, es posible que los desarrolladores trabajen más con modelos de entrenamiento que con herramientas de codificación. Y eso es empoderador.

En las últimas décadas, varios movimientos, paradigmas o avances tecnológicos, como quieras llamarlos, han sacudido el mundo del software, prometiendo entregar una gran cantidad de trabajo de programación a los usuarios finales o automatizar una mayor parte del proceso. Las herramientas CASE, 4GL, la programación orientada a objetos, la arquitectura orientada a servicios, los microservicios, los servicios en la nube , la plataforma como servicio, la computación sin servidor, el código bajo y sin código, teóricamente han eliminado las onerosas cargas del desarrollo de software. Y, potencialmente, amenazar la seguridad laboral de los desarrolladores. 

Sin embargo, aquí estamos. Los desarrolladores de software están más ocupados que nunca y la demanda de habilidades no deja de aumentar. 

"Recuerdo que cuando la nube comenzó a ser popular y las empresas migraban a Office 365, todos decían que los profesionales de TI pronto se quedarían sin trabajo", dice Vlad Catrinescu , autor de Pluralsight . "Adivina qué, todavía estamos aquí y más ocupados que nunca".

La pregunta es cómo evolucionará finalmente el trabajo de los desarrolladores. Existe la posibilidad de que la inteligencia artificial , aplicada al desarrollo y mantenimiento de aplicaciones, finalmente haga que la codificación de bajo nivel sea cosa del pasado. 

Matt Welsh , director ejecutivo y cofundador de Fixie.ai , predice que "la programación quedará obsoleta" en la próxima década más o menos. "Creo que la idea convencional de 'escribir un programa' se dirige a la extinción", predice en un artículo reciente publicado por la Association for Computing Machinery . "De hecho, para todas las aplicaciones excepto las muy especializadas, la mayoría del software, tal como lo conocemos, será reemplazado por sistemas de inteligencia artificial que están entrenados en lugar de programados". 

En situaciones en las que se necesita un "programa simple, después de todo, no todo debería requerir un modelo de cientos de miles de millones de parámetros que se ejecutan en un grupo de GPU, esos programas, en sí mismos, serán generados por una IA en lugar de codificados a mano. , agrega Welsh. 

Entonces, ¿cuáles serán exactamente los roles de los profesionales y desarrolladores de TI? Catrinescu cree que la generación emergente de soluciones de desarrollo automatizadas o de bajo código en realidad "faculta a los profesionales y desarrolladores de TI para trabajar en aplicaciones más desafiantes. Los departamentos de TI pueden enfocarse en aplicaciones empresariales y crear aplicaciones y automatizaciones complicadas que agregarán mucho valor a la empresa."

Hasta hace muy poco, "el enfoque del desarrollo se ha centrado en aprovechar mejor la ingeniería o en obtener una mayor reutilización de un grupo más amplio de escritores de código", relata Jared Ficklin, tecnólogo creativo en jefe y cofundador de argodesign . "Esto ha dado lugar a herramientas que facilitan la orquestación, lo que permite a los desarrolladores de aplicaciones normales usar una interfaz gráfica para orquestar soluciones de IA mediante módulos de código llamados habilidades, escritos por expertos en aprendizaje automático. De manera similar, esto permite que los expertos en la materia en el negocio organicen todo campañas utilizando una interfaz".

Estas herramientas habilitadas para el aprendizaje automático "ayudan a recopilar requisitos y aprovechar la ingeniería", continúa Ficklin. "Donde hay brechas, los escritores de códigos deben intervenir y cerrarlas. En todos estos casos, el departamento de TI aún maneja la arquitectura, ya que hay muchos puntos de interoperabilidad y seguridad que deben mantenerse".

Con el advenimiento y la rápida progresión de la IA y el aprendizaje automático , los modelos de entrenamiento pueden reemplazar la codificación en niveles muy fundamentales, predice Welsh: 

Los asistentes de codificación de IA como CoPilot solo están arañando la superficie de lo que estoy describiendo. Me parece totalmente obvio que, por supuesto, todos los programas en el futuro serán escritos en última instancia por IA, con los humanos relegados, en el mejor de los casos, a un papel de supervisión. Si algo he aprendido en los últimos años trabajando en IA es que es muy fácil subestimar el poder de los modelos de IA cada vez más grandes. No estoy hablando solo de cosas como que CoPilot de Github reemplace a los programadores. Estoy hablando de reemplazar todo el concepto de escribir programas con modelos de entrenamiento.

Un cambio completo lejos de la codificación abre nuevas formas de ver el desarrollo de aplicaciones, a roles comerciales más conceptuales y de alto nivel. "Cambios emocionantes vienen de direcciones sorprendentes", dice Ficklin.

"El mundo en general ha imaginado el low-code/no-code como una interfaz visual en la que mueves los nodos para unir el código. Eso es orquestación, y todavía requiere el conocimiento de cómo se une el código".

Fricklin ilustra este nuevo medio de desarrollar y actualizar aplicaciones en acción. "Uno de nuestros clientes actuales, Builder AI, ha adoptado el enfoque único de utilizar el análisis de IA de las conversaciones de voz para recopilar requisitos y luego diseñar y cumplir con esas experiencias", relata. "Incluso tienen un asistente de voz que se puede agregar a una llamada de zoom que escuchará a alguien que describe su aplicación móvil a un administrador de proyectos y automáticamente captura y enumera las funciones. Luego, un humano las edita y la IA luego las emparejará en un patrón de arquitectura para una aplicación. Donde existen módulos de código, se parchean, donde no los hay, los escritores de código entran y agregan un módulo. Con el tiempo, este proceso se automatizará cada vez más".

Esto significa más computación en tiempo real, continúa Ficklin. "Uno en el que la latencia, el renderizado y el ensamblaje del software se invoquen en tiempo real. Podrías imaginar pedirle a Alexa que te haga una aplicación para ayudarte a organizar tu cocina. La IA reconocería las funciones, elegiría los patrones correctos y en tiempo real, por aire entregue una aplicación a su teléfono móvil o tal vez a su computadora portátil".

 

Originalmente publicado en: https://www.zdnet.com/article/its-the-end-of-programming-as-we-know-it-again/#ftag=RSSbaffb68