Lo que están provocando las herramientas de programación con IA

¿Las herramientas de programación con IA están provocando que los desarrolladores codifiquen cada vez peor?
Muchas personas usan loops dobles en lugar de métodos optimizados porque asumen que lo que genera ChatGPT está bien.
En los últimos años, la IA ha entrado con fuerza en casi todos los ámbitos de la tecnología, y la programación de software no ha sido ninguna excepción: herramientas como GitHub Copilot o Cursor, basadas en modelos de lenguaje avanzados, han transformado la forma en que los desarrolladores de software escriben código.
Eso está dando pie a un creciente debate sobre si esta clase de herramientas están provocando una degradación de las capacidades de los programadores.
A favor: Productividad
Uno de los argumentos más sólidos a favor del uso de herramientas como Copilot es que estas incrementan la productividad de los programadores al automatizar tareas repetitivas y reducir el tiempo que se dedica a la escritura de código.
Usuarios experimentados aseguran que, cuando se emplea correctamente, Copilot es una excelente herramienta que ahorra tiempo, especialmente para generar código repetitivo, o para sugerir soluciones rápidas a problemas comunes.
Según este punto de vista, los programadores experimentados ven en estas herramientas un apoyo que les permite concentrarse en las partes más complejas y creativas del desarrollo, mientras la IA se encarga de los detalles más tediosos. De esta manera, Copilot no reemplaza las habilidades del desarrollador, sino que las complementa.
En contra: Dependencia y degradación de habilidades
A pesar de estos beneficios, una crítica recurrente es que la dependencia de la IA puede debilitar habilidades fundamentales de los programadores, especialmente entre los desarrolladores más jóvenes o menos experimentados.
En palabras de programadores que trabajan con compañeros de trabajo novatos, el uso excesivo de Copilot impide el desarrollo de la capacidad de resolver problemas de manera autónoma y está generando profesionales que simplemente copian y pegan código generado sin entenderlo del todo
Existe temor de que los nuevos programadores se vuelvan más pasivos y menos propensos a abordar los problemas de manera innovadora porque simplemente esperan a que la inteligencia artificial lo resuelva todo.
En contra: "Technical debt as a service"
Otra preocupación central es la calidad del código generado por la IA. Aunque puede producir soluciones rápidas, estas no siempre son las mejores desde el punto de vista de la arquitectura del software.
Algunos programadores han comenzado a referirse a esta tendencia como "technical debt as a service", haciendo referencia a la acumulación de problemas futuros debido a decisiones de programación poco óptimas que deben corregirse más adelante.
"El hecho de que herramientas como Copilot generen tanto código genérico es problemático, ya que el coste de la programación no está en la creación, sino en el mantenimiento". Tengamos en cuenta que la IA no tiene una comprensión completa del contexto o de los objetivos del proyecto, lo que podría llevar a generar soluciones que, aunque funcionales, no sean las más óptimas. Pero es que, incluso cuando la IA pueda generar código eficiente, no siempre es el más limpio o comprensible.
En otras palabras, cuando la IA genera código insuficientemente eficiente o comprensible, los desarrolladores tienen que dedicar tiempo a revisarlo, depurarlo y mejorarlo a largo plazo, lo que puede crear más problemas de los que resuelve.
A favor: Aprendizaje acelerado
Hay programadores que consideran que estas IAs cuando se utilizan correctamente, pueden no tener precio como herramienta educativa, pues estarían revolucionando la forma en que los programadores aprenden, permitiendo un acceso instantáneo a explicaciones y ejemplos que antes habrían requerido búsquedas extensas en Google o Stack Overflow.
Quienes aprovechen la IA de manera correcta podrán aprender más rápido y entregar mejores resultados.
Entonces, ¿herramienta o reemplazo?
Uno de los puntos en los que la mayoría de los participantes en este debate parecen coincidir es que Copilot y otras IA no deberían ser vistas jamás como un reemplazo de las habilidades del programador, sino como una herramienta que facilita sólo ciertos aspectos de su trabajo. Sin embargo, es esencial que los programadores sigan desarrollando sus capacidades de resolución de problemas y comprensión profunda del código.