===============
What Is Rust?
===============

---------------
What Is Rust?
---------------

- Rust is a new(er) programming language

   - First stable release in 2015 (1.0)
   - Modern design to solve older language problems

-  Statically compiled 

   - :toolname:`rustc` uses LLVM as its backend

-  Rust supports many platforms and architectures

   -  Linux, Windows, VxWorks...
   -  x86, ARM ...   

--------------------------------
What Kind of Language Is Rust?
--------------------------------

Rust fits in the same area as other systems languages (Ada, C++, ...)

-  High flexibility
-  High level of control
-  Can be scaled down to very constrained devices such as
   microcontrollers
-  Has no runtime or garbage collection
-  Focuses on reliability and safety without sacrificing performance

-------------------------------
Things to Consider About Rust
-------------------------------

- Very much like other languages in the Ada/C++/Java tradition

  - Similar syntax
  - Statically typed

- Modern with full support for things like Unicode

- Macros provide powerful flexibility and safety

   - Varying numbers of arguments
   - Easy way to automate repetitive code
   - Checked at compile time

- Multi-paradigm

   - Imperative - you tell the compiler *how* to perform a task
   - Functional (to a degree) - you tell the compiler *what* you want the result to be
   - Powerful OOP features (like encapsulation)
