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.
This slide should take about 3 minutes.

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