arrow_back Volver
Inicio keyboard_arrow_right Artículos keyboard_arrow_right Artículo

Rust el lenguaje de programación

Eduardo Ismael Garcia

Full Stack Developer at Código Facilito.

av_timer 4 Min. de lectura

remove_red_eye 66938 visitas

calendar_today 25 Agosto 2017

Rust el lenguaje de programación.

Hace ya varios meses indagando sobre "nuevos" lenguajes de programación que se están haciendo populares, encontré uno en particular, Rust.

A primera instancia me llamó la atención por su nombre; ¿Rust? ¿Qué no su equivalente en inglés es 'Óxido'? ¿Corrosión?, que nombre tan poco amigable, pensé. 🤔 Investigue un poco más acerca de, realice un par de ejercicios, un clasico hola mundo, y listo, lo deje en el olvido.

Pasado un tiempo asiste a un evento de tecnología, donde tuve la oportunidad de platicar con Brian Anderson, uno de los desarrolladores de Rust. En la conversación me explicaba ciertas cosas del lenguaje, algunos datos curiosos, por ejemplo, porque la mascota es un cangrejo, cuando es buena idea usar Rust, cuando no, entre otras cosas.

Con todo lo que me contó, y lo que aprendí ese día, decidí aprender el lenguaje. Así que en esta ocasión me gustaría contarles un breve resumen sobre Rust.

Antes de comenzar quiero comentar que por tercer año consecutivo Rust se encuentra como el lenguaje de programación más querido según la última encuentas de desarrollo de Stack Overflow.

Acerca de

Rust es un lenguaje de programación desarrollado por los ingenieros de mozila. Podríamos catalogarlo como un lenguaje muy nuevo; Estamos hablando que la versión 1.0 estuvo disponible a principios del 2015; Actualmente estamos en la versión 1.32.

Al igual que C , Java o C++, Rust es un lenguaje compilado.

Rust está diseñado para desarrollar software de sistemas, donde la interacción con el usuario es practicamente nula; Excelente para aplicaciones con el modelo cliente-servidor o para cosas más internas en nuestra empresa. Uno que otro demonio por allí.

Algo interesante de Rust es que actualmente se están desarrollando dos sistemas operativos con dicho lenguaje.

Rust tiene una sintaxis muy parecida a la de C y C++. Veamos unos ejemplos.

Comencemos con el clásico Hola Mundo.

fn main() {
    println!("Hola Mundo!");
}

Sí, en este lenguaje usaremos puntos y comas.

Ahora veamos un código, un poco más complejo.

pub fn fibonacci_reccursive(n: i32) -> u64 {
 if n < 0 {
  panic!("{} Wow, esto es un número negativo!", n);
 }
 match n {
  0 => panic!("Lo sentimos, cero no es un valor válido"),
  1 | 2 => 1,
  3 => 2,
  _ => fibonacci_reccursive(n - 1) + fibonacci_reccursive(n - 2)
 }
}

Tomate un par de minutos en analizar el código. Si crees comprenderlo en su mayoría, ya casi lo tienes.

Spoiler: Al igual que con Ruby, las funciones siempre retornará el valor de la última línea de código.

Rust no cuenta con un recolector de basura. Esto quiere decir que somos nosotros los desarrolladores quienes debemos de estar al pendiente del uso de memoria; Pero no nos preocupemos, no estamos solos en esta tarea. Rust literalmente nos hace escribir código de la manera correcta. Si algo está mal (Declarar una variable y no usarla, acceder a variables fuera de su contexto etc..) Rust nos lo indicará en al momento de compilar el proyecto.

Algo interesante de Rust, es que, por default todas las variables que declaremos serán inmutables, eso quiere decir que son constantes no variables. 🤔

Pocos son los lenguajes que nos permiten trabajar directamente con nuestro procesador y asignar tareas a realizar. Con Rust, podemos hacer esto de una forma segura. La creación de Threads, sincronización y acceso a datos concurrentes es posible mediante el uso de librerías estándares (Rust viene con baterías incluidas).

Al igual que con Python, Rust cuenta con su propio manejador de paquetes; Este manejador tiene por nombre Cargo. Con Cargo nosotros podemos crear nuestros propios proyectos, utilizar librerías de terceros, así cómo crear y dar de altas nuestras propias librerías. 😎

Es bastante fácil contribuir a la comunidad.

Comunidad que cabe mencionar cada día está creciendo más y más.

Rust es nuestros proyectos

Rust está diseñado para que puedes integrarlo en proyectos que ya estén en producción.

Basta con que escribas (o re escribas) algún proceso de alto impacto utilizando Rust y tal cual un engrane lo integres es tú proyecto.

Por ejemplo, existen Gemas que utilizán código Rust.

Sin duda Rust nos ofrece ventajas de un lenguajes de bajo nivel, sin embargo, cuando nos encontremos desarrollando sentiremos que estamos trabajando con un lenguaje de alto nivel.

Pudiese seguir hablando y colocando más código de Rust, pero me gustaría que descubran por ustedes mismos esta tecnología. En tus tiempo libre puedes ir practicar con este lenguaje.

Para recapitular (y ver, uno que otro punto, que no mencione adrede) puede ver el siguiente vídeo.

¿Deberíamos aprender Rust?

Mi respuesta es sí, Pero solo cuando tengamos conocimientos sobre otros lenguajes de programación como C o C++.

Si eres nuevo en esto de la programación yo te aconsejaría que Rust no fuera tu primer lenguaje; Su curva de aprendizaje es a considerar y puede que te des algunos golpes en la cabeza, los cuales, te quiten las ganas de seguir en este maravilloso mundo de la programación.

Pero, si ya conoces los conceptos, toma un par de horas al día e invierta las aprendiendo este lenguaje. Comienza a desarrollar tus propias aplicaciones. Quizás, en una de esas, puedas agregar valor algún proceso tedioso o desarrolles una nueva librería (La comunidad te lo va a agradecer).

Aquí un link por donde puedes comenzar.

Mi conclusión

Siempre estemos abierto a la posibilidad de aprender cosas nuevas, nunca nos quedemos en nuestra zona de confort.

Si al final del día Rust no te convence y quieres regresar a tus lenguajes preferidos, te puedo garantizar que por lo menos tu tiempo no habrá sido desperdiciado y habrás aprendido un par de cosas nuevas sobre concurrencia y seguridad.

PD: Aquí pueden ver la mascota.