Un estudio demuestra que Rust facilita la llegada de nuevos desarrolladores a proyectos de código abierto
Hace pocos días, se dio a conocer la noticia sobre los resultados de una investigación en la cual demuestran que Rust tiene el potencial de atraer y facilitar la llegada de nuevos contribuyentes a proyectos de código abierto, reconociendo al mismo tiempo reducir las vulnerabilidades.
El estudio fue realizado por miembros de la Universidad de Waterloo, Canadá, a través del estudio del proyecto Oxidation de Mozilla, los autores revelan que el lenguaje Rust reduce significativamente la probabilidad de que nuevos contribuyentes introduzcan vulnerabilidades en el código, en comparación con C++.
Además de ello, se menciona que la investigación también evalúa las vulnerabilidades de Rust en proyectos de código abierto y mide la efectividad del algoritmo SZZ para identificar confirmaciones que inducen errores.
Y es que no es de extrañar que Rust ya este dentro del top de lenguajes de programación preferido por muchos, asi como también de ser uno de los más recomendados para quienes inician en el mundo de la programación.
Para quienes aún desconocen de Rust, deben saber que este es un lenguaje de programación compilado de múltiples paradigmas diseñado y desarrollado por Mozilla Research desde 2010. Fue diseñado para ser «un lenguaje práctico, concurrente y confiable», que admita modelos puramente funcionales, de actores, procedimentales y orientados a objetos en ciertos aspectos. Debido a la política de Mozilla, Rust se desarrolla de forma totalmente abierta y solicita comentarios y contribuciones de la comunidad. El diseño del lenguaje se mejora gradualmente gracias a los comentarios del equipo y la mayoría de las contribuciones provienen de la comunidad.
El grupo de investigadores mencionan en su publicación titulada «Grading on a Curve: How Rust can Facilitate New Contributors while Decreasing Vulnerabilities«, que los nuevos contribuyentes son esenciales para los proyectos de código abierto, ya que sin ellos, el proyecto eventualmente se atrofiará y se volverá inactivo, o sus contribuyentes experimentados sesgarán las direcciones futuras del proyecto.
Sin embargo, los nuevos contribuyentes también pueden correr un mayor riesgo de introducir código vulnerable. Para proyectos que necesitan implementaciones seguras y una comunidad fuerte y diversa de contribuyentes, este conflicto es un tema que siempre se ha tenido que tener en cuenta. Es por ello que se menciona en la investigación, que una de las vías previstas para conseguir este objetivo, de reducir las posibilidades de introducir código vulnerable, consiste en reescribir elementos de código C o C++ en Rust, un lenguaje diseñado para aplicarse a los mismos dominios que C y C++, pero con mayores garantías de seguridad.
Para determinar si Rust puede ayudar a evitar que nuevos contribuyentes introduzcan vulnerabilidades y, por lo tanto, aliviar la carga de los mantenedores, examinamos el proyecto Oxidation de Mozilla, que reemplazó componentes del navegador web Firefox con equivalentes escritos en Rust.
Los investigadores se basaron en la recopilación de los datos disponibles de estos proyectos para derivar parámetros para las curvas de aprendizaje de una nueva aplicación, y que además fue utilizaron para estimar la proporción de cambios que introducen vulnerabilidades de nuevos contribuyentes de una manera que sea directamente comparable.
Descubrimos que, a pesar de las preocupaciones sobre la usabilidad, los nuevos contribuyentes a proyectos Rust tienen aproximadamente 70 veces menos probabilidades de introducir vulnerabilidades que los nuevos contribuyentes a proyectos C++.
El estudio revela que la tasa de nuevos contribuyentes aumentó en general después del cambio a Rust, lo que implica que esta disminución en las vulnerabilidades de los nuevos contribuyentes no es el resultado de un grupo más pequeño de desarrolladores más capacitados, y que Rust puede, de hecho, facilitar la llegada de nuevos contribuyentes a los proyectos de código abierto.
Al mismo tiempo, mencionan que realizaron un análisis cualitativo de las vulnerabilidades de Rust en estos proyectos y con base en ello llevaron a cabo una medida de la efectividad del algoritmo SZZ común para identificar confirmaciones que inducen errores a partir de sus correcciones.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.