Las herramientas de codificación como GitHub Copilot pueden ayudar a los desarrolladores a crear código un 55% más rápido, según GitHub. ¡Viva! ¿Bien? Bueno, tal vez no. GitClear analizó 153 millones de líneas de código modificado entre enero de 2020 y diciembre de 2023 y ahora espera que la rotación de código (“el porcentaje de líneas que se revierten o actualizan menos de dos semanas después de su creación”) se duplique en 2024. En otras palabras, “ El código generado durante 2023… se parece [that of] un colaborador itinerante”, como si contratara a un contratista a corto plazo más preocupado por generar código detallado que por garantizar su mantenibilidad. El código inflado crea pesadillas de seguridad, entre otros problemas, como lo capta Bert Hubert. Esto no quiere decir que los desarrolladores no deban utilizar asistentes de IA. Más bien, es una indicación de que se debe tener cuidado para garantizar que la dependencia excesiva de la IA no haga que nuestras máquinas y el código que las ejecuta sean estúpidos. Todo el mundo lo está haciendo. No habría mucha necesidad de preocuparse si la IA generativa (genAI ) no se puso en uso el año pasado. Esa adopción conlleva cosas buenas y malas, como destaca el creador de Datasette, Simon Willison. «En los últimos 24 a 36 meses», escribe, «nuestra especie ha descubierto que se puede tomar un corpus de texto gigante, pasarlo por una pila de GPU y utilizarlo para crear un nuevo y fascinante tipo de software». Ese software puede mejorar significativamente nuestras vidas, continúa, si aprendemos a dominarlo. Afortunadamente, los modelos de lenguajes grandes (LLM) son “en realidad bastante fáciles de construir” y requieren sólo unos cientos de líneas de código Python. La parte complicada de los LLM no es el código utilizado para escribirlos, sino los datos utilizados para entrenarlos. En 2023, aprendimos nuevas formas de evitar que se descarrilen (“alucinen”) con la generación de recuperación aumentada (RAG) y otros medios. Eso es lo bueno. En el lado malo del libro mayor, también nos estamos dando cuenta de lo inestables que pueden ser. Después de todo, saber cómo solicitar un LLM sigue siendo un arte oscuro (sin coherencia). Como señala Wilison: «Las cosas que a veces hay que hacer para que los modelos se comporten son a menudo increíblemente tontas». Esto se aplica menos a la creación de software que, por ejemplo, a pedirle a ChatGPT que escriba un trabajo final. Pero sigue siendo cierto que conseguir que un LLM haga un trabajo en particular es un ejercicio de jugar con perillas (indicaciones) para obtener lo que desea. La peor parte del software generado por IA (y del software actual en general) es el exceso de peso. “Cuanto más [code] tienes… cuantos más riesgos corres”, argumenta Hubert. De alguna manera, hemos intentado solucionar este problema haciendo que sea problema de otra persona ejecutar nuestro software. “Ahora el software se considera (con razón) tan peligroso que le decimos a todo el mundo que no lo ejecute por sí mismo”, afirma Hubert. La clave es escribir menos código. Un software más eficiente es un software más seguro. “El mundo envía demasiado código”, declara Hubert, “la mayor parte procedente de terceros, a veces sin intención y la mayor parte sin inspeccionar. Debido a esto, existe una enorme superficie de ataque llena de código mediocre”. La IA agrava el problema. Instalar gatesCode review, tanto automatizado por máquinas como ejecutado por personas, es la respuesta. Se podría argumentar que, claro, los asistentes de codificación crean código inflado y menos fácil de mantener, pero la IA también minimiza la necesidad de que las personas lo mantengan. Suena aceptable, ¿verdad? Equivocado. La superficie de ataque ampliada permanece. Podría decirse que la respuesta a este enigma sobre la calidad del código es la misma de siempre: revisiones de código. El origen del código importa menos que el proceso mediante el cual los equipos de desarrollo pasan a producción. Como lo expresó recientemente uno de mis colegas: «El buen código se elabora tanto mediante buenos procesos como mediante buenos desarrolladores». Ese proceso depende de que los desarrolladores no eludan su responsabilidad de aprender los conceptos básicos del desarrollo de software. Existe el riesgo de que personas con menos experiencia Los desarrolladores se saltarán los temas más difíciles de ingeniería de software, como estructuras de datos y algoritmos, sistemas distribuidos, redes, etc. Esto los coloca en una posición débil para realizar revisiones de código efectivas. Mi esperanza es que ambos desarrolladores aprovechen las nuevas oportunidades que brinda la IA. herramientas al tiempo que profundizan sus raíces en los elementos esenciales que les ayudarán a utilizar las herramientas de IA de forma eficaz y no dejarse acostumbrar por ellas. Esta esperanza se hará realidad a medida que los líderes de desarrollo insistan en revisiones sólidas del código, que a su vez, elevan el listón de los involucrados en la codificación. proceso, ya sea humano o máquina.Copyright © 2024 IDG Communications, Inc.

Source link