¿El código generado por IA acelera la pesadilla del código de montaña?

Hoy en día, muchos programadores optan por utilizar la IA para ayudar en la programación, pero con la rápida popularidad del desarrollo de software de IA, las preocupaciones sobre la calidad del código se han vuelto cada vez más prominentes. Adam Tornhill, quien ha estado involucrado en la investigación de códigos durante mucho tiempo, dijo una vez que el principal desafío que enfrenta la programación asistida por IA es que puede generar fácilmente una gran cantidad de código que no necesita escribirse.

Según las últimas investigaciones, los resultados son realmente preocupantes. Además del problema de la eliminación de códigos tras repetidas modificaciones, la proporción de códigos duplicados también es cada vez más grave.

Desde que se lanzó su versión beta, GitHub Copilot ha conquistado rápidamente el campo de la codificación de IA. Según el director ejecutivo de la empresa, Thomas Dohmke, el software ha atraído a más de un millón de desarrolladores de suscripción de pago, lo que ha aumentado efectivamente la velocidad de las tareas de desarrollo en un 55%. Además, el 46% del volumen de código de los archivos habilitados para Copilot es generado por inteligencia artificial.

Según una investigación de la empresa de análisis para desarrolladores GitClear, después de recopilar datos sobre 150 millones de líneas de código modificado, se descubrió que dos tercios de los datos procedían de datos compartidos de forma anónima por empresas privadas, mientras que un tercio de los datos procedían de Google. Proyectos de código abierto de gigantes tecnológicos como Facebook y Microsoft.

La investigación se centra en procesar código que ha sido modificado, actualizado, eliminado, copiado y movido, al tiempo que elimina el "ruido" predefinido por GitClear, como el mismo fragmento de código enviado a múltiples ramas, líneas en blanco y otros artefactos sin sentido. . líneas de código.

Sin embargo, la investigación de GitClear se centró en la calidad del código en lugar de la cantidad de código, y descubrió que el asistente de IA proporcionaba principalmente "sugerencias para agregar código", pero rara vez proporcionaba sugerencias para actualizar, mover o eliminar código.

No es fácil medir con precisión la calidad del código. Los investigadores encontraron algunas tendencias, que muestran que la cantidad de adiciones, eliminaciones, actualizaciones y copiar y pegar código aumentó significativamente, pero la proporción de movimientos de código disminuyó. También encontraron un aumento significativo en las tasas de duplicación de códigos, del 3,3% en 2020 al 7,1% actual.

En términos generales, el movimiento del código es un criterio importante para los desarrolladores a la hora de refactorizar código. Específicamente, es necesario garantizar que la funcionalidad original no cambie mientras se mejora el diseño y la estructura del código.

Los investigadores especulan preliminarmente que esta tendencia puede estar relacionada con la rápida popularidad de la tecnología de codificación de IA, pero las razones específicas aún necesitan mayor verificación. Criticaron duramente los efectos negativos del uso excesivo de copiar y pegar código, afirmando: "Este uso sin sentido del código generado por IA tendrá un impacto desastroso en la capacidad de mantenimiento del código a largo plazo".

Sin embargo, la dependencia excesiva de copiar y pegar no es un problema nuevo. Los desarrolladores pueden hacer esto porque es más rápido y fácil simplemente copiar y pegar sin tener que ajustar y reutilizar el código existente. O podría deberse a una falta de comunicación entre varios desarrolladores o a un plagio excesivo de ejemplos de desarrollo y sitios web de preguntas y respuestas sobre codificación.

Los investigadores de GitClear no discutieron específicamente cómo resolver los problemas que encontraron, sino que recurrieron a "preguntas de investigación de seguimiento". Sin embargo, también sugieren que los líderes de ingeniería deberían "monitorear los datos enviados y considerar su impacto en el mantenimiento futuro del producto".

La investigación puede contribuir de alguna manera a apaciguar a los desarrolladores preocupados por ser reemplazados por herramientas de inteligencia artificial. Un estudio reciente de refactorización de códigos de IA realizado por la empresa de análisis de códigos CodeScene también concluyó que "la inteligencia artificial está lejos de poder reemplazar a los humanos en entornos de codificación".

Pero lo que sí es seguro es que el asistente de codificación con IA nunca desaparecerá, al contrario, como toda nueva herramienta, seguirá mejorándose y los desarrolladores aprenderán a optimizar sus ideas y mejorar su eficacia. De hecho, los desarrolladores actuales han comenzado a darse cuenta de la importancia de la calidad del código. Según un informe de encuesta realizado por GitHub y Wakefield Research, entre los programadores encuestados, cuando se les preguntó "¿Qué métricas se deben evaluar cuando se utiliza activamente la inteligencia artificial?", la "calidad del código" se consideró la pregunta más importante.

Investigaciones recientes muestran que no se puede ignorar el impacto negativo de la calidad del código en las empresas. Según estos estudios, normalmente los desarrolladores de una empresa pierden una media del 23% al 42% de su tiempo debido a deuda técnica y código deficiente. Este resultado es suficiente para llamar nuestra atención. Además, la investigación sobre las pérdidas de productividad entre los desarrolladores de software debido a la deuda técnica señala que los desarrolladores a menudo tienen que introducir nueva deuda técnica porque las empresas han estado sacrificando la calidad del código por ganancias a corto plazo, como nuevas funciones.

Por lo tanto, mejore la legibilidad y mantenibilidad del código, céntrese en la solidez y optimización del rendimiento del código y garantice la seguridad del código. El cumplimiento del código con normas y mejores prácticas, como convenciones de nomenclatura, convenciones de anotaciones y estilo de código unificado, siguen siendo problemas que los desarrolladores deben superar. Para cumplir con estos requisitos, los desarrolladores deben tener sólidas habilidades de codificación, buen espíritu de trabajo en equipo y utilizar el asistente de codificación de IA correcto para ayudarlos a lograr de manera eficiente una producción de código de alta calidad.

Tomemos como ejemplo FuncGPT (Función Hui) lanzada por Feisuan, que integra años de programación de big data en el sitio y se somete a millones de líneas de capacitación de código para ayudar a los desarrolladores a generar funciones de alta calidad en tiempo real a través del lenguaje natural. Código de función Java legible. El código generado se puede copiar directamente a IDEA. En términos de calidad del código, debido a que FuncGPT (Función Hui) tiene poderosas capacidades de procesamiento del lenguaje natural, puede comprender con precisión las descripciones de los usuarios y los requisitos de funciones, lo que reduce los costos de comunicación de desarrollo y la dificultad de comprensión. Al mismo tiempo, debido a las mejores prácticas En codificación y entrenamiento conjunto de máquinas a gran escala, se reducen los errores causados ​​por la negligencia humana y los errores gramaticales, por lo que se garantiza la calidad del código generado. Múltiples pruebas internas han demostrado que, en comparación con modelos grandes como ChatGPT en el mercado, el código generado por FuncGPT (FuncGPT) es de mayor calidad y más fácil de usar directamente para los desarrolladores.

En la actualidad, es comprensible que las empresas introduzcan herramientas auxiliares de inteligencia artificial para lograr "reducción de costos y aumento de la eficiencia", pero debemos utilizarlas con cuidado para aprovechar al máximo las ventajas y evitar desventajas. Permitir que la programación asistida por IA ayude mejor a los desarrolladores requiere los esfuerzos conjuntos de todas las partes.

Google donó 1 millón de dólares a la Fundación Rust para mejorar la interoperabilidad entre Rust y C++. El proyecto del motor web "Servo", abandonado por Mozilla, renacerá en 2024. El padre del lenguaje Go resume los factores de éxito: la mascota es indispensable jQuery 4.0 .0 beta lanzado diariamente en código abierto: "Pequeño pero hermoso" Tauri es compatible con Android e iOS; el código abierto Pkl Google Bard de Apple pasó a llamarse Gemini, se lanzó oficialmente la aplicación independiente gratuita Vite 5.1 y un sistema de galería de herramientas de construcción front-end PicHome 2.0.1 lanzado Se lanza el conjunto de herramientas Java Hutool-5.8.26, les deseo todo lo mejor. Se lanza el gran modelo de código abierto MaLA-500, que admite 534 idiomas.
{{o.nombre}}
{{m.nombre}}

Supongo que te gusta

Origin my.oschina.net/u/4868096/blog/11013335
Recomendado
Clasificación