Hay mucha angustia por el hecho de que los desarrolladores de software “perdan sus trabajos” debido a la IA, sean reemplazados por una versión más inteligente de ChatGPT, Copilot de GitHub, Codey de Google o algo similar. Matt Welsh ha estado hablando y escribiendo sobre el fin de la programación como tal. Se pregunta si los modelos de lenguajes grandes eliminan la programación tal como la conocemos, y le emociona saber que la respuesta es “sí”: eventualmente, si no en el futuro inmediato. Pero ¿qué significa esto en la práctica? ¿Qué significa esto para las personas que se ganan la vida escribiendo software? Sin duda, algunas empresas valorarán la IA como una herramienta para reemplazar el esfuerzo humano, en lugar de aumentar las capacidades humanas. Los programadores que trabajan para esas empresas corren el riesgo de perder sus empleos debido a la IA. Si trabaja para una de esas organizaciones, lo siento por usted, pero es realmente una oportunidad. A pesar de los despidos tan publicitados, el mercado laboral para programadores es excelente, es probable que siga siendo excelente y probablemente sea mejor encontrar un empleador que no lo vea como un gasto que debe minimizarse. Es hora de aprender algunas habilidades nuevas y encontrar un empleador que realmente lo valore. Aprende más rápido. Excavar más hondo. Ver más lejos. Pero el número de programadores que serán “reemplazados por la IA” será pequeño. He aquí por qué y cómo el uso de la IA cambiará la disciplina en su conjunto. Hice un estudio muy poco científico sobre la cantidad de tiempo que los programadores realmente dedican a escribir código. Bien, simplemente escribí «¿Cuánto tiempo dedica un desarrollador de software a codificar?» en la barra de búsqueda y miré los primeros artículos, que daban porcentajes que oscilaban entre el 10% y el 40%. Mi propio sentido, tras hablar y observar a muchas personas a lo largo de los años, se sitúa en el extremo inferior de ese rango: entre el 15% y el 20%. ChatGPT no hará que el 20% del tiempo que los programadores dedican a escribir código desaparezca por completo. Todavía tienes que escribir indicaciones, y todos estamos en el proceso de aprender que si quieres que ChatGPT haga un buen trabajo, las indicaciones deben ser muy detalladas. ¿Cuánto tiempo y esfuerzo ahorra eso? He visto estimaciones de hasta el 80%, pero no las creo; Creo que entre un 25% y un 50% es más razonable. Si dedica el 20% de su tiempo a codificar y la generación de código basada en IA lo hace un 50% más eficiente, entonces en realidad solo recuperará alrededor del 10% de su tiempo. Puedes usarlo para producir más código; todavía tengo que ver a un programador que no haya trabajado lo suficiente o que no se haya enfrentado a una fecha de entrega imposible. O puede dedicar más tiempo al “resto del trabajo”, el 80% del tiempo que no dedicó a escribir código. Parte de ese tiempo se gasta en reuniones inútiles, pero gran parte del “resto del trabajo” consiste en comprender las necesidades del usuario, diseñar, probar, depurar, revisar el código, descubrir qué es lo que el usuario realmente necesita (que no le dijeron). la primera vez), refinar el diseño, crear una interfaz de usuario eficaz, realizar auditorías de seguridad, etc. Es una lista larga. Ese “resto del trabajo” (particularmente la parte de las “necesidades del usuario”) es algo en lo que nuestra industria nunca ha sido particularmente buena. El diseño (del software en sí, las interfaces de usuario y la representación de datos) ciertamente no va a desaparecer, y no es algo en lo que la generación actual de IA sea muy buena. Hemos recorrido un largo camino, pero no conozco a nadie que no haya tenido que rescatar un código que se describe mejor como una «masa hirviente de bits». Pruebas y depuración: bueno, si has jugado mucho con ChatGPT, sabes que las pruebas y la depuración no desaparecerán. Las IA generan código incorrecto y eso no terminará pronto. La auditoría de seguridad será cada vez más importante, no menos; Es muy difícil para un programador comprender las implicaciones de seguridad del código que no escribió. Dedicar más tiempo a estas cosas (y dejar los detalles de enviar líneas de código a una IA) seguramente mejorará la calidad de los productos que entregamos. Ahora, adoptemos una visión a muy largo plazo. Supongamos que Matt Welsh tiene razón y que la programación tal como la conocemos desaparecerá, no mañana, sino en algún momento dentro de 20 años. ¿Realmente desaparece? Hace un par de semanas, le mostré a Tim O’Reilly algunos de mis experimentos con las indicaciones de Ethan y Lilach Mollick para usar la IA en el aula. Su reacción fue «Este mensaje es realmente programación». El tiene razón. Escribir un mensaje detallado realmente es simplemente una forma diferente de programación. Todavía le estás diciendo a una computadora lo que quieres que haga, paso a paso. Y me di cuenta de que, después de pasar 20 años quejándome de que la programación no había cambiado significativamente desde la década de 1970, ChatGPT de repente dio el siguiente paso. No es un paso hacia algún nuevo paradigma, ya sea funcional, orientado a objetos o hiperdimensional. Esperaba que el siguiente paso en los lenguajes de programación fuera visual, pero tampoco lo es. Es un paso hacia un nuevo tipo de programación que no requiere una sintaxis o semántica definida formalmente. Programación sin tarjetas perforadas virtuales. Programación que no requiere que usted dedique la mitad de su tiempo a buscar los nombres y parámetros de las funciones de la biblioteca que ha olvidado. En el mejor de los mundos posibles, eso podría reducir el tiempo dedicado a escribir código a cero, o cerca de él. Pero el mejor de los casos sólo ahorra el 20% del tiempo de un programador. Además, en realidad no elimina la programación. Lo cambia, posiblemente haciendo que los programadores sean más eficientes y definitivamente dándoles más tiempo para hablar con los usuarios, comprender los problemas que enfrentan y diseñar sistemas buenos y seguros para resolver esos problemas. Contar líneas de código es menos importante que comprender los problemas en profundidad y descubrir cómo resolverlos, pero eso no es nada nuevo. Hace veinte años, el Manifiesto Ágil apuntó en esta dirección, valorando: Las personas y las interacciones por encima de los procesos y herramientas El software de trabajo por encima de la documentación integral La colaboración del cliente por encima de la negociación de contratos Responder al cambio por encima de seguir un plan A pesar de 23 años de “prácticas ágiles”, la colaboración con el cliente siempre ha sido defraudada . Sin interactuar con clientes y usuarios, Agile rápidamente colapsa en una serie de rituales. ¿Liberar a los programadores de la sintaxis realmente les permitirá tener más tiempo para colaborar con los clientes y responder a los cambios? Para prepararse para este futuro, los programadores necesitarán aprender más sobre cómo trabajar directamente con los clientes y diseñar software que satisfaga sus necesidades. Esa es una oportunidad, no un desastre. Los programadores han trabajado durante demasiado tiempo bajo el estigma de ser unos tontos a los que no se les puede ni se les debe permitir hablar con los humanos. Es hora de rechazar ese estereotipo y crear software como si las personas importaran. La IA no es algo que deba temer. Al escribir sobre el nuevo complemento Code Interpreter de OpenAI (que ahora se está implementando gradualmente), Ethan Mollick dice: «Mi tiempo se vuelve más valioso, no menos, ya que puedo concentrarme en lo que es importante, en lugar de hacerlo de memoria». La IA es algo que se debe aprender, probar e incorporar a las prácticas de programación para que los programadores puedan dedicar más tiempo a lo que es realmente importante: comprender y resolver problemas. El punto final de esta revolución no será una línea de desempleo; Será un mejor software. Lo único que hay que temer es no lograr esa transición. La programación no va a desaparecer. Va a cambiar y esos cambios serán para mejor.

Source link