La inclusión de Rust en Linux 6.1 ya esta en progreso
Tal y como Linus Torvalds había prometido en la última Open Source Summit, cumpliendo con su palabra y sin detalles que puedan retrasar la inclusión, ahora impulsaría la inclusión de Rust para Linux en la versión 6.1 del kernel.
Este cambio llega con un hito que después de 31 años, Linux aceptará un segundo lenguaje para el desarrollo del kernel. Con ello surgen de nuevo los debates relacionados giran en torno a la posibilidad de desechar C a favor del lenguaje Rust dadas las ventajas que presenta. Sin embargo, una pequeña aclaración: por el momento, Rust solo obtiene una API oficial para permitir el desarrollo de módulos o pilotos separados.
Sobre la cuestión de la posibilidad de descartar el lenguaje C, el creador del lenguaje C enumera una serie de razones por las que es probable que fracasen las iniciativas que van en esta dirección:
La primera de ellas es la cadena de herramientas del lenguaje C
El lenguaje C no es solo el lenguaje en sí, sino también todas las herramientas de desarrollo desarrolladas para este lenguaje. ¿Quieres hacer un análisis estático de tu código fuente? – Hay mucha gente trabajando en este tema para C. ¿Herramientas para detectar pérdidas de memoria, carreras de datos y otros errores? Hay muchos, incluso si su idioma está mejor equipado.
Si desea apuntar a una plataforma poco conocida, es probable que esté utilizando C. El estado de C como la lingua franca de la computación hoy en día hace que valga la pena escribir herramientas para ella, y se escriben muchas herramientas.
Si alguien tiene una cadena de herramientas de trabajo, ¿por qué arriesgarse a cambiar el idioma? Una «mejor C» debería generar mucha productividad adicional para motivar el tiempo dedicado a configurar una nueva cadena de herramientas. Queda por ver si esto es posible.
Las incertidumbres de un nuevo lenguaje
Antes de que un idioma haya alcanzado la madurez, es probable que tenga errores y se modifique significativamente para abordar los problemas semánticos del idioma. ¿Y el lenguaje es incluso consistente con el anuncio? Puede ofrecer algo como «tiempos de compilación excepcionales» o «más rápido que C», pero estos objetivos resultan difíciles de lograr cuando el lenguaje agrega el conjunto completo de funciones.
¿Y los mantenedores? Claro, se puede bifurcar un lenguaje de código abierto, pero dudo que muchas empresas estén interesadas en usar un lenguaje que podrían verse obligados a mantener más adelante. Apostar por un nuevo idioma es un gran riesgo.
¿El lenguaje aborda los puntos débiles reales de C? Resulta que la gente no siempre está de acuerdo en cuáles son los puntos débiles de C. La asignación de memoria, la gestión de matrices y cadenas suelen ser complicadas, pero con las bibliotecas adecuadas y una buena estrategia de memoria, se pueden minimizar. ¿Acaso el lenguaje no aborda problemas que a los usuarios avanzados realmente no les importan? Si es así, su valor real podría ser mucho menor de lo esperado.
Falta de desarrolladores experimentados para un nuevo idioma
Se menciona que un nuevo idioma naturalmente tendrá un grupo mucho más pequeño de desarrolladores experimentados. Para cualquier empresa mediana o grande, este es un gran problema. Cuantos más desarrolladores estén disponibles para una empresa, mejor estará.
Además, si la empresa tiene la experiencia de reclutar desarrolladores de C, no sabe cómo reclutar para este nuevo lenguaje.
La noticia de la próxima inclusión de Rust para Linux en la versión 6.1 del kernel llega en medio de un cambio en la visión de Linus Torvalds sobre el lenguaje Rust.
El soporte de Rust para el desarrollo del kernel de Linux continúa y se considera «un paso importante para poder escribir controladores en un lenguaje más seguro».
Rust de Mozilla Research es el tipo de lenguaje de programación que aquellos que escriben código para sistemas básicos de entrada/salida (BIOS), gestores de arranque, sistemas operativos, etc. tener un interés.
En opinión de observadores informados, es el futuro de la programación de sistemas en lugar del lenguaje C. De hecho, los expertos opinan que ofrece mejores garantías de seguridad del software que el C/ C++.