notifications Notificaciones

Marcar todas como leídas

Ver más

2888 veces ha sido leído este artículo

Rust el lenguaje de programación

Lo lees en 3 Min.

Rust el lenguaje de programación.

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

A primera instancia me llamó la atención por su nombre; ¿Rust? ¿Qué no su equivalente en inglés es 'Oxidación'/'Óxido'?, que nombre tan poco amigable, pensé. Investigue un poco más acerca de, 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 (Como 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. Aquí me gustaría contarles un breve resumen de lo que se trata.

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.20.

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

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

De hecho actualmente se están desarrollando dos sistemas operativos con este lenguaje.

Su sintaxis es parecida a la de C y C++. Veamos unos ejemplos.

Comencemos con el clásico Hola Mundo.

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

Si, en este lenguaje si 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 como estamos acostumbrados con otros lenguajes, como Python o Ruby. Eso quiere decir que somos nosotros los desarrolladores los que 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 el momento de compilado.

Algo interesante, es que por default todas las variables son inmutables

Con Rust, nosotros podemos trabajar programación concurrente; Pocos son los lenguajes que nos permiten trabajar directamente con nuestro procesador y asignar tareas a realizar. Con este lenguaje, nosotros 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 de paquetes tiene por nombre Cargo. Con Cargo nosotros podemos crear nuestros proyectos, utilizar librerías de terceros, así que cómo crear y dar de altas las nuestras;

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 en Rust y tal cual un engrane lo coloques 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, en la mayoría del tiempo que estamos codificando, sentiremos que estamos trabajando con un lenguaje de alto nivel.

Pudiese seguir hablando y colocando más código sobre Rust pero me gustaría que ustedes también las descubrieran por su cuenta mediante la práctica.

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 nuevas cosas, 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.

Recomendaciones

Qué es un Inode en UNIX

Lo lees en 3 Min.

Cuando administramos un servidor, es importante ir paso a paso conociendo detalles del sistema op...

 

emojis con ruby on rails

Lo lees en 1 Min.

Como agregar al tu producto! def approved! payed! set_subscription end def payed! ...

 

Python Annotations

Lo lees en 1 Min.

Este es un artículo tiene como objetivo describir los #223467 Annotations de Python 3 ?????????...

 

Inyector de dependencias en Angular

Lo lees en 3 Min.

El patrón de la inyección de dependencias es parte fundamental del funcionamiento y desarrollo de...