No solo es Linux, también Apple y Microsoft han mostrado cierto interés en Rust
En publicaciones anteriores hablamos sobre el interés que han demostrado los desarrolladores del Kernel de Linux sobre Rust y sobre todo su implementación dentro del Kernel (puedes consultar la publicación aquí).
Pero Rust ya no es solo cosa de Linux, ya que Apple parece estar cada vez más interesado en usar Rust para programación de bajo nivel, ya que si revisamos los requisitos para poder ingresar a la empresa de la manzana los requisitos son los siguientes.
- – 3-5 años de experiencia con C.
- – Experiencia con Rust deseable y una gran ventaja.
- – Experiencia laboral con networking de bajo nivel.
- – Experiencia con sistemas operativos tipo Unix.
- – Clara capacidad de comunicación.
Y es que aun que C se ha impuesto a los trabajadores de programación de sistemas por varias razones. Con motivo de la edición 2019 del Open Source Technology Summit, Josh Triplett menciono algunas cosas tales como:
«Primero, como lenguaje evolucionado, C permite a los desarrolladores ganar en usabilidad y productividad; eso es menos líneas de código para realizar las mismas tareas en comparación con el ensamblador. También es un nivel de rendimiento cercano al del ensamblador. Entonces, cambiar a C no induce pérdidas en cuanto a las posibilidades que ofrece el ensamblador.»
Sin embargo, durante la edición 2019 de Linux Security Summit, los investigadores de seguridad identificaron uno de los mayores defectos que arrastra el lenguaje C son los problemas relacionados con la gestión de la memoria: desbordamientos de búfer, asignaciones no liberadas, acceso a áreas de memoria no válidas o liberadas, etc.
Según cifras del diccionario Common Vulnerabilities and Exposure (CVE), el 15,9% de las 2288 vulnerabilidades que han afectado al kernel de Linux en 20 años están relacionadas con desbordamientos de búfer. Durante su lanzamiento en la Open Source Technology Summit, el ingeniero de Intel volvió a este detalle agregando que «los desarrolladores necesitan un lenguaje evolucionado que proporcione respuestas a los problemas que no se pueden resolver en C y que presenta algunas características interesantes. »
Fue en este contexto que surgió Rust y el ingeniero sintió que “Rust es el futuro de la programación de sistemas y C el nuevo ensamblador”, tomándose la molestia de explicar cómo.
La comunidad de Linux se ve abocada a pensar en cómo integrar el soporte de Rust.
“Necesitamos adoptar el mismo enfoque de soporte que los compiladores y verificar la disponibilidad de varios indicadores de compilación en la etapa de configuración”, dijo Linus Torvalds.
El lanzamiento del creador del famoso kernel de código abierto en principio marca su acuerdo con el principio del creciente soporte para el lenguaje Rust dentro de Linux.
Por su parte Microsoft está migrando a Rust en detrimento de C/C ++ que la compañía ya no considera aceptable para configurar las llamadas aplicaciones de sistema.
Y la razón es sencilla, ya que Rust ofrece mejores garantías en términos de seguridad del software que el par C/C ++.
Por tanto, las iniciativas encaminadas a hacer un uso más extenso del lenguaje se multiplican entre los editores. Este año, por ejemplo, Microsoft anunció la llegada de un nuevo miembro en la familia de herramientas de proyección de lenguaje que incluye C++/WinRT: Rust/WinRT.
Es una proyección de lenguaje Rust completamente estándar para las API de Windows Runtime, implementada como una biblioteca basada en archivos de encabezado y diseñada para brindarle acceso de primera clase a la API de Windows moderna.
Windows Runtime (WinRT) constituye la base de las aplicaciones de la Plataforma universal de Windows (UWP). Se basa en las API del Modelo de objetos componentes (COM) bajo el capó y está diseñado para ser accesible a través de proyecciones de lenguaje.
WinRT también se puede utilizar para cosas como controladores, que se prestan a código nativo de alto rendimiento. Microsoft admite principalmente este caso de uso con C ++ / WinRT. Pero desde el jueves, Rust se unió a C ++ con Rust / WinRT. Buenas noticias para los desarrolladores de Rust.
Esto se debe a que estas proyecciones de lenguaje toman los metadatos que describen las diferentes API y proporcionan enlaces naturales para el lenguaje de programación de destino. Como puede imaginar, esto facilita a los desarrolladores la creación de aplicaciones y componentes para Windows utilizando el idioma de su elección.
Luego, puede usar estas API de Windows para crear aplicaciones de escritorio, aplicaciones de almacenamiento o algo más exclusivo, como un componente, servicio NT o controlador de dispositivo.