Imagen para el post 65.jpg
La IA lo automatiza todo, ¿y podría reemplazar a los programadores? Foto: Midjourney

Un grupo de investigadores acaba de publicar un mapa completo de los desafíos que enfrenta la inteligencia artificial (IA) en el campo del desarrollo de software y propuso una hoja de ruta de investigación para seguir avanzando en el campo.

Imagine un futuro donde la IA se encarga silenciosamente de las tediosas tareas del desarrollo de software: refactorizar código complejo, migrar sistemas heredados y rastrear errores de carrera, para que los ingenieros de software humanos puedan centrarse por completo en la arquitectura de sistemas, el diseño y los problemas creativos que las máquinas aún no pueden resolver. Los recientes avances en IA parecen haber acercado mucho esa visión.

Sin embargo, un nuevo estudio realizado por científicos del Laboratorio de Ciencias de la Computación e Inteligencia Artificial del MIT (CSAIL) y otros institutos de investigación asociados ha demostrado que, para hacer realidad ese futuro, primero debemos afrontar los desafíos muy reales del momento actual.

“Mucha gente dice que los programadores ya no son necesarios porque la IA lo ha automatizado todo”, comentó el profesor Armando Solar-Lezama, profesor de ingeniería eléctrica e informática en el MIT, investigador sénior del CSAIL y autor principal del estudio. “En realidad, hemos logrado avances muy significativos. Las herramientas que tenemos ahora son mucho más potentes que antes. Pero para alcanzar todo el potencial de la automatización, aún queda un largo camino por recorrer”.

El profesor Armando Solar-Lezama argumenta que la idea predominante actual simplifica la ingeniería de software a una tarea similar a la de un estudiante de programación: recibir una pequeña asignación de función y escribir código para gestionarla, o realizar una tarea similar a la de LeetCode. Sin embargo, la realidad es mucho más compleja: desde la refactorización de código para optimizar el diseño hasta migraciones a gran escala de millones de líneas de código de COBOL a Java que alteran fundamentalmente la plataforma tecnológica de una empresa.

La medición y la comunicación siguen siendo problemas desafiantes.

La optimización de código a escala industrial, como la optimización del núcleo de la GPU o las mejoras multicapa en Chrome V8, sigue siendo difícil de evaluar. Los benchmarks actuales se centran principalmente en problemas pequeños y complejos. La métrica más práctica disponible actualmente, SWE-Bench, simplemente requiere que un modelo de IA corrija un error en GitHub, lo que equivale a un ejercicio de programación de bajo nivel, con cientos de líneas de código, con potencial de fugas de datos e ignorando una serie de otros escenarios reales, como la refactorización asistida por IA, la programación hombre-máquina o la reescritura de sistemas de alto rendimiento con millones de líneas de código. Hasta que los benchmarks se amplíen para abarcar escenarios de mayor riesgo, medir el progreso, y por lo tanto, impulsarlo, seguirá siendo un desafío abierto.

Además, la comunicación entre humanos y máquinas también es una barrera importante. El autor principal, Alex Gu, estudiante de posgrado, afirmó que, actualmente, interactuar con la IA es como un hilo de comunicación muy fino. Cuando le pide a la IA que genere código, suele recibir archivos grandes y desestructurados junto con algunos casos de prueba simples y rudimentarios. Esta brecha también se evidencia en la incapacidad de la IA para utilizar eficazmente herramientas de software familiares para los humanos, como depuradores y analizadores estáticos.

Un llamado a la acción de la comunidad.

Los autores sostienen que no existe una solución mágica para estos problemas y piden esfuerzos a escala comunitaria: crear datos que reflejen el proceso de desarrollo real de los programadores (qué código se conserva, cuál se descarta, cómo se refactoriza el código con el tiempo, etc.), herramientas de evaluación comunes para la calidad de la refactorización, la durabilidad de los parches y la precisión en las transiciones del sistema; y crear herramientas transparentes que permitan a la IA expresar la incertidumbre e invitar a la intervención humana.

El estudiante de posgrado Alex Gu ve esto como un llamado a la acción para las comunidades de código abierto a gran escala, algo que ningún laboratorio puede lograr por sí solo. Solar-Lezama prevé que el progreso provenga de pequeños pasos que se refuercen mutuamente —«resultados de investigación que aborden secuencialmente partes del problema»—, transformando así la IA de una «herramienta de recomendación de código» a un verdadero aliado en la ingeniería.

¿Por qué es importante? El software es ahora la base de las finanzas, el transporte, la atención médica y todas las actividades cotidianas. Pero los esfuerzos humanos para desarrollarlo y mantenerlo de forma segura se están convirtiendo en un cuello de botella —compartió Gu—. Una IA capaz de gestionar el trabajo pesado sin crear errores ocultos permitiría a los programadores centrarse en la creatividad, la estrategia y la ética. Pero para lograrlo, debemos comprender que completar un fragmento de código es solo la parte fácil; lo difícil reside en todo lo demás.

(Adaptado de MIT News)

Fuente: https://vietnamnet.vn/hanh-trinh-dai-cua-ai-trong-ky-thuat-phan-mem-tu-dong-hoa-2426456.html