Aunque ya existen muchos lenguajes de pro­gra­ma­ción, como C++, Pascal o Java, no dejan de de­sa­rro­llar­se otros nuevos que aspiran a ser más sencillos, más seguros o más rápidos. Rust cumple estos tres objetivos a la vez y, por lo tanto, está teniendo mucho éxito. Según una encuesta a los usuarios de la pla­ta­fo­r­ma de de­sa­rro­lla­do­res Stack Overflow, Rust fue el lenguaje de pro­gra­ma­ción más popular de 2019.

¿Qué es Rust?

El lenguaje de pro­gra­ma­ción Rust fue creado en 2010 por Mozilla. Al principio, solo se trataba de un pa­sa­tie­m­po al que un de­sa­rro­lla­dor dedicaba sus ratos libres. Más adelante, este lenguaje se utilizó para de­sa­rro­llar un nuevo motor de re­n­de­ri­za­do para Firefox y, ac­tua­l­me­n­te, es un proyecto de código abierto mantenido por una comunidad muy activa que aún recibe apoyo económico de Mozilla.

Este lenguaje de pro­gra­ma­ción se sitúa entre los lenguajes de bajo nivel C y los lenguajes muy ab­s­tra­c­tos, como Java. De hecho, Rust es un lenguaje de pro­gra­ma­ción de sistemas, es decir, un lenguaje que se utiliza para im­ple­me­n­tar apli­ca­cio­nes o sistemas ope­ra­ti­vos que están ín­ti­ma­me­n­te re­la­cio­na­dos con Windows, Linux o macOS. Al mismo tiempo, Rust se utiliza para programar apli­ca­cio­nes web ―es decir, a una escala mucho menor.

Ca­ra­c­te­rí­s­ti­cas de Rust

La mayor ventaja de Rust frente a otros lenguajes de pro­gra­ma­ción es la seguridad, que se garantiza, entre otras cosas, mediante un buen sistema de gestión de errores. Si se produce un error que no puede co­rre­gi­r­se durante la co­m­pi­la­ción, se inicia la macro “panic!”, que efectúa una limpieza y emite un mensaje de error para que no se produzcan daños.

La gestión del al­ma­ce­na­mie­n­to de este lenguaje también se considera ex­tre­ma­da­me­n­te segura. La ventaja de Rust es que garantiza la seguridad de la memoria sin un re­co­le­c­tor de basura. Durante muchos años, la memoria fue un blanco habitual de los hackers en muchos lenguajes de pro­gra­ma­ción. Si se llena una memoria, se produce un error en el sistema y, por lo tanto, una brecha que puede ser explotada. Un re­co­le­c­tor de basura asegura que los objetos in­ne­ce­sa­rios des­apa­re­z­can de la memoria. Sin embargo, esto ralentiza la ejecución del código. El co­m­pi­la­dor Rust vuelve obsoleto el re­co­le­c­tor de basura, ya que comprueba si puede haber errores en la memoria en tiempo de co­m­pi­la­ción.

Si te preguntas si estas sólidas medidas de seguridad provocan una bajada del re­n­di­mie­n­to, la respuesta es que no: Rust es un lenguaje de pro­gra­ma­ción de sistemas, al igual que C/C++, por lo que ofrece la misma velocidad de ejecución. Por un lado, esto se debe a la ausencia de un re­co­le­c­tor de basura. Por el otro, las llamadas ab­s­tra­c­cio­nes de costo cero aseguran una alta velocidad durante el tiempo de ejecución. Este concepto, en realidad, solo indica que el lenguaje permite programar de manera abstracta sin afectar el re­n­di­mie­n­to.

Por ello, se considera que Rust es una co­m­bi­na­ción de los lenguajes de pro­gra­ma­ción de alto y bajo nivel. Al igual que C/C++, Rust está muy cerca del hardware, lo que garantiza una alta velocidad, pero puede pro­gra­mar­se con relativa facilidad, lo que ca­ra­c­te­ri­za el resto de lenguajes de alto nivel.

Por último, tanto los pro­gra­ma­do­res con menos co­no­ci­mie­n­tos, como los pro­fe­sio­na­les, pueden aprender a utilizar Rust rá­pi­da­me­n­te. En términos de uso, el lenguaje apenas difiere de las al­te­r­na­ti­vas más conocidas. Una gran ventaja es su elaborado sistema de emisión de mensajes de error: donde otros lenguajes de pro­gra­ma­ción solo generan avisos crípticos, Rust pro­po­r­cio­na consejos apli­ca­bles para so­lu­cio­nar los errores.

Consejo

Rust es uno de los lenguajes de pro­gra­ma­ción ex­tre­ma­da­me­n­te co­m­pa­ti­bles con We­bA­s­se­m­bly. Asimismo, Rust se utiliza para de­sa­rro­llar apli­ca­cio­nes web rápidas.

Sintaxis de Rust: ejemplo

A primera vista, la sintaxis de Rust es muy similar a la de C o C++, otros lenguajes de pro­gra­ma­ción de sistemas. Como es habitual en este tipo de lenguajes, Rust también incluye funciones, bucles, consultas, co­n­s­ta­n­tes y variables. Los corchetes se utilizan de manera distinta en algunos casos, siguiendo la sintaxis de lenguajes más antiguos, pero la base sigue siendo la misma. Por supuesto, Rust también tiene sus pa­r­ti­cu­la­ri­da­des:

  • Las nuevas funciones se definen con el comando fn.
  • El lenguaje funciona con macros, que se di­s­ti­n­guen por el signo de ex­cla­ma­ción al final del término.
  • Las variables pueden de­te­r­mi­nar­se con let; para que la in­fo­r­ma­ción pueda mo­di­fi­car­se, debe pe­r­mi­ti­r­se ex­pre­sa­me­n­te con mut.
  • Rust también sigue un modelo especial de propiedad (ownership).

En la sintaxis de Rust, el concepto de propiedad se refiere a la relación de una variable con su valor. La pa­r­ti­cu­la­ri­dad es que un valor solo puede pe­r­te­ne­cer a una variable. Si se pasa el valor a otra variable, la anterior ya no será válida:

fn main() {
    let hello = String::from(“Hello, world!”);
    let hello1 = hello;
    println!(“{}”, hello);
}

La sintaxis de este código no es correcta: el contenido de “hello” se pasó a “hello1” y, por lo tanto, no se puede volver a llamar en la macro. En su lugar, se debe escribir la nueva variable en el último comando, que generará la salida correcta.

fn main() {
    let hello = String::from(“Hello, world!”);
    let hello1 = hello;
    println!(“{}”, hello1);
}
En resumen

Rust es un lenguaje sencillo que pro­po­r­cio­na más seguridad y re­n­di­mie­n­to. Este lenguaje de pro­gra­ma­ción moderno no presenta una sintaxis to­ta­l­me­n­te nueva, sino que se basa en las ca­ra­c­te­rí­s­ti­cas de C/C++, aunque también ofrece algunas novedades muy in­te­re­sa­n­tes. Comenzar a uti­li­zar­lo no es difícil, es­pe­cia­l­me­n­te si ya conoces otros lenguajes.

Si te apetece probarlo, puedes dar tus primeros pasos con nuestro tutorial de Rust.

Ir al menú principal