Rust es un nuevo lenguaje de programación que tuvo su versión 1.0 en 2015:
- Rust es un lenguaje compilado estáticamente con un papel similar al de C++
- rustc usa LLVM como backend.
- Rust admite muchas plataformas y arquitecturas:
- x86, ARM, WebAssembly, …
- Linux, Mac, Windows,…
- Rust se utiliza para una amplia gama de dispositivos:
- firmware y cargadores de arranque,
- pantallas inteligentes,
- teléfonos móviles,
- escritorios,
- servidores.
Rust encaja en la misma área que C++:
- Alta flexibilidad.
- Alto nivel de control.
- Se puede programar para dispositivos muy limitados, como teléfonos móviles.
- No tiene runtime, ni recolección de basura.
- Se centra en la fiabilidad y la seguridad sin sacrificar el rendimiento.
Pasemos al programa Rust más simple posible, un programa clásico de Hello World:
fn main() {
println!("Hello 🌍!");
}
$ cargo run
Compiling hello_cargo v0.1.0 (/home/emanuel/Projects/rust/hello_cargo)
Finished dev [unoptimized + debuginfo] target(s) in 0.26s
Running `target/debug/hello_cargo`
Hello 🌍!
Lo que ves:
- Las funciones se introducen con fn.
- Los bloques están delimitados por llaves como en C y C++.
- La función principal es el punto de entrada del programa.
- Rust tiene macros higiénicas, println! es un ejemplo de esto.
- Las cadenas Rust están codificadas en UTF-8 y pueden contener cualquier carácter Unicode.
Puntos clave:
- Rust es muy parecido a otros lenguajes en la tradición C/C++/Java. Es imperativo (no funcional) y no intenta reinventar las cosas a menos que sea absolutamente necesario.
- Rust es moderno con soporte completo para cosas como Unicode.
- Rust usa macros para situaciones en las que desea tener una cantidad variable de argumentos (sin sobrecarga de funciones).
- Las macros que son "higiénicas" significa que no capturan accidentalmente identificadores del ámbito en el que se utilizan. Las macros de Rust son en realidad solo parcialmente higiénicas.