Rust
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.
source: imgur.com
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).
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.
Comentarios
Publicar un comentario