Benefits of Rust
Estas son algunas de las ventajas competitivas de Rust:
-
Compile time memory safety - whole classes of memory bugs are prevented at compile time
- No hay variables no inicializadas.
- No hay errores double free.
- No hay errores use-after-free.
- No hay punteros
NULL
. - No se olvidan las exclusiones mutuas bloqueadas.
- No hay condiciones de carrera de datos entre hilos.
- No se invalidan los iteradores.
-
No undefined runtime behavior - what a Rust statement does is never left unspecified
- Se comprueban los límites de acceso a los arrays.
- Se define el desbordamiento de enteros (panic o wrap-around).
-
Modern language features - as expressive and ergonomic as higher-level languages
- Enumeraciones (Enums) y coincidencia de patrones.
- Genéricos
- Sin overhead de FFI.
- Abstracciones sin coste.
- Excelentes errores de compilación.
- Gestor de dependencias integrado.
- Asistencia integrada para pruebas.
- Compatibilidad excelente con el protocolo del servidor de lenguaje.
Do not spend much time here. All of these points will be covered in more depth later.
Asegúrate de preguntar a la clase en qué lenguajes tienen experiencia. Dependiendo de la respuesta puedes destacar diferentes características de Rust:
-
Experiencia con C o C++: Rust elimina una clase completa de errores de runtime mediante el borrow checker. Obtienes un rendimiento similar al de C y C++, pero no tienes problemas de seguridad en la memoria. Además, obtienes un lenguaje moderno con elementos como la coincidencia de patrones y la gestión de dependencias integrado.
-
Experiencia con Java, Go, Python, JavaScript, etc.: Consigues la misma seguridad en la memoria que en éstos lenguajes, además de una sensación similar a la de un lenguaje de alto nivel. También consigues un rendimiento rápido y predecible como en C y C++ (sin recolector de memoria residual), así como acceso a hardware de bajo nivel (si lo necesitas).