Los Principios de Rust son algo más que ideas para sentirse bien. Son una parte clave de por qué los desarrolladores siguen dando a Rust la corona.
A pesar de su nombre, el lenguaje de programación Rust nunca ha parecido tan brillante y nuevo. Ya en 2016, la encuesta anual de desarrolladores de Stack Overflow coronó a Rust como el lenguaje de programación "más querido". Volvieron a votar su amor en 2017, 2018, 2019, 2020 y 2021. Es de suponer que cuando llegue 2022, esa devoción por Rust persistirá.
Más noticias de Rust:
- Linux 6.0 llega con mejoras de rendimiento y viene más Rust
- Linus Torvalds : podría fusionarse con Rust
- Rust : ha actualizado como versión Rust de Coreutils para el kernel de Linux
- Cómo instalar Rust y Cargo en Ubuntu y otras distribuciones de Linux
1. ¿Qué es Rust?
Rust es un lenguaje de programación compilado, de propósito general y multiparadigma que está siendo desarrollado por Fundación Rust. Es un lenguaje de programación multiparadigmático que soporta programación funcional pura, por procedimientos, imperativa y orientada a objetos.
Rust ha tenido éxito, en parte significativa, porque su comunidad no ha estado dispuesta a sacrificar los principios centrales de lo que significa Rust. Como me dijo una vez el director de tecnología de Oso, Sam Scott, Rust es "programación de sistemas con barandillas". Esos barandales resultan ser críticos para el desarrollo y la adopción de Rust. Están preservados por los Principios Rustaceanos y señalan el camino de cómo será Rust en el futuro, incluso mientras evoluciona.
2. Características de RUST
A continuación, te mencionamos algunas de las características de este novedoso lenguaje de programación:
- Ejecución dinámica de seguridad (errores y registros).
- Orientado a Objetos.
- Interfaz simple.
- Gestión automática de guardado.
- Inmutable.
- Compilación nativa y estática.
- Multiplataforma.
- Control de la memoria explícita.
- Permite cadenas UTF8.
- Multiparadigmático.
- Concurrente.
No es que la comunidad de Rust se duerma en los laureles. No, en todo caso, Niko Matsakis, codirector del proyecto de lenguaje de programación Rust; Shane Miller, presidente de la Fundación Rust; y otros miembros clave de la comunidad Rust están trabajando duro para asegurar que Rust siga siendo querido durante años, incluso décadas. Una de las formas de hacerlo es a través de los Principios Rustaceos.
Aunque los Principios Rustaceos podrían ser descartados como lemas que se desechan cuando los ideales blandos se encuentran con la brutal realidad, en realidad funcionan como sólidas guías para el desarrollo de Rust a largo plazo.
3. Principios de comportamiento para Rust
Al construir Rust, la comunidad de Rust ha desarrollado los "Principios Rustaceanos" para equilibrar las prioridades de desarrollo que a veces compiten entre sí. Estos son:
- "Fiable: Si se compila, funciona".
- "Performante: El código idiomático se ejecuta eficientemente".
- "Con apoyo: El lenguaje, las herramientas y la comunidad están aquí para ayudar".
- "Productivo: Un poco de esfuerzo hace mucho trabajo".
- "Transparente: Puedes predecir y controlar los detalles de bajo nivel".
- "Versátil: Puedes hacer cualquier cosa con Rust".
Los principios son "mayormente complementarios" porque, como señala Matsakis, "Estas propiedades están frecuentemente en tensión entre sí." ¿Qué ocurre cuando hacer que Rust sea fiable entra en conflicto con hacer que funcione bien? Cuando dos principios entran en conflicto, señala, "tendemos a dar ventaja a los objetivos que vienen antes en la lista sobre los que vienen después". En otras palabras, la fiabilidad es más importante que la versatilidad. Aun así, "aunque el orden es importante, hay que subrayar que para que el Rust tenga éxito tenemos que lograr todos estos sentimientos a la vez".
4. El Futuro
Para aquellos que miran al futuro de Rust (actualmente en la versión 1.54, pero que evoluciona rápidamente), la lista y su orden de principios ofrecen una gran guía para lo que se puede esperar de la comunidad Rust en el futuro. Quizá merezca la pena ver un ejemplo concreto para ver cómo se desarrolla esto en la práctica.
El papel de Rust en Linux seguirá siendo muy limitado por ahora, pero son varios los desarrolladores que están impulsando su uso por ejemplo en el desarrollo de controladores (drivers) de dispositivos.
Estamos pues ante un lenguaje de programación que parece tener un futuro brillante y que podría acabar siendo la verdadera joya de una Mozilla que inexplicablemente se ha desentendido parcialmente del proyecto.
Ahora el propio Linus Torvalds, anuncia que Rust se incluya en el próximo núcleo de Linux. Por lo tanto el futuro de Rust ya es una realidad tiene mucho que ofrecer para la comunidad desarrolladora y un futuro prometedor.
5. Es fiable
Como se detalla en los principios, la fiabilidad de Rust "suele estar reñida con la sensación de productividad y apoyo". ¿Por qué? Porque Rust se basa en la comprobación cruzada en todo el sistema para garantizar la coherencia general. Este principio garantiza que los desarrolladores puedan invertir una gran confianza en los sistemas construidos con Rust, pero lo hace a expensas de otros principios. Un gran ejemplo de cómo la comunidad lidió con el equilibrio de los diferentes principios se describe en la redacción de la eventual adopción de la regla "Truncar en la caída a menos que se copie".
¿Cómo construyen los rustenses la fiabilidad en Rust? De dos maneras principales.
- En primer lugar, Rust se basa en la seguridad de tipo. Esto significa que "el código de Rust está libre de 'comportamiento indefinido', que es el término que los autores de compiladores utilizan para referirse a cosas como segfaults, carreras de datos y accesos a memoria fuera de los límites". La comunidad de Rust nunca aceptará APIs "casi seguras". No basta con que el código funcione mientras todos hagan cosas racionales y razonables. El código tiene que funcionar. Debido a que esto puede rallar contra el principio de productividad, Rust trabaja duro para ofrecer documentación informativa y mensajes de error para tratar de mitigar el potencial de carga de otros principios de desarrollo de Rustacean.
- La segunda forma en la que Rust ayuda a ofrecer fiabilidad es mediante la consideración de todos los casos. ¿Qué significa esto? "Rust no oculta las condiciones de error y anima a listar todas las posibilidades explícitamente (o reconocer que algo se elude)". Así es como Rust logra este subprincipio: "Rust... adopta el enfoque pionero en los lenguajes funcionales de devolver un enum. El enum de resultados permite señalar un error de una manera que obliga a considerar el error. Aún así, la forma más común de manejar un error es propagarlo a su llamador, y para sentirse productivo, es importante que esta operación sea concisa. El operador ? de Rust se añadió para restaurar la productividad al tiempo que se asegura que las rutas de error siguen siendo visibles para los usuarios y no se pasan por alto por completo."
Como puede ser evidente, cosas como los grandes mensajes de error no son realmente una función del lenguaje en sí, sino más bien del comportamiento de la comunidad que ayuda a garantizar la fiabilidad general de Rust. En otras palabras, algunos de estos principios se expresan en el código, mientras que otros se transmiten a través del comportamiento de la comunidad. Como tal, quizás no es sorprendente que los Principios Rustaceanos delineados por la comunidad de Rust también incluyan una sección sobre "cómo [ser] Rustaceano":
- "Ser amable y considerado"
- "Aportar alegría al usuario"
- "Dar la cara"
- "Reconocer los conocimientos de los demás"
- "Empezar en algún sitio"
- "Sigue adelante"
- "Reenviar el mensaje"
- "Confiar y delegar".
Rust ha tenido éxito, en parte significativa, porque su comunidad no ha estado dispuesta a sacrificar los principios centrales de lo que significa Rust. Como me dijo una vez el director de tecnología de Oso, Sam Scott, Rust es "programación de sistemas con barandillas". Esos barandales resultan ser críticos para el desarrollo y la adopción de Rust. Están preservados por los Principios Rustaceanos y señalan el camino de cómo será Rust en el futuro, incluso mientras evoluciona.
Más noticias relacionadas:
- Rust : veremos mucho más del lenguaje en Linux
- Cómo instalar Rust y Cargo en Ubuntu y otras distribuciones de Linux
- La inserción de Rust en el Kernel de Linux sera financiada por Google