Blog Post

Educator Developer Blog
3 MIN READ

Why you should consider teaching Rust in Uni

Chris_Noring's avatar
Chris_Noring
Icon for Microsoft rankMicrosoft
Jun 17, 2022

> For educators. It might be tempting to tutor students on C++ a fast and performant language and something that teaches your students about memory management. In general, it's good to consider memory and speed when coding. In the last couple of years, Go as well as Rust has become popular in the space of system programming but also used for the Web, especially with WASM (web assembly). More and more jobs exist on Rust and major companies like us are starting to use it. It's not a beginner language though and have a specific way of dealing with memory via ownership, but it's worth considering.

 

 

 

Resource

Why Rust and where it shines

If you are considering Rust, you most likely have a few different applications in mind that requires speed and effective usage of memory like:

  • Game engines, game engines sure demands both resources and speed.
  • Websites and tools, possibly more the tooling than the websites.
  • Operating systems, most operating systems at its core tend to be built-in high-performance languages.
  • Microcontrollers. Close to the hardware.

The sales pitch that really sells Rust though is:

  • High speed and resource usage. It combines best-in-class speed with a very low resource usage.
  • Nice approach to garbage collection and safety. Rust solves problems associated with C/C++ such as garbage collection and safety.
  • Strong typing system means high-safety. High safety through its strong type system.
  • Ergonomics. Rust makes systems programming accessible by combining power with ergonomics.
  • Cargo for packages and managing code projects. Great features like Cargo for managing projects.
  • Testing built-in. Easy to test your code with no extra libraries.

Those all sounds good, but let's dive into it and learn to code in it and see what it has to offer.

Install Rust

There're a few different ways to install Rust. The recommended way is to use rustup.

If you feel like evaluating the language first, check out the playground that enables you to write code, compile and run it with no install.

Exercise - Your first Rust program

Given that you've installed Rust, you will have access to the compiler rustc, an executable you use via the command line.

  • Create a file main.rs
  • Give it the following content:

    fn main() {
      println!("Hello world");
    }
    
  • Compile program with rustc

   rustc main.rs
 
  • Run program:
   ./main
 

Here's the output:

   Hello world
 

The code line by line

It wasn't much code, but you now have a working application. So, what did you do?

  • Entrypoint, you defined an entry point to the application a method main(). This is you telling Rust where to start the program execution. You used the keyword fn to define a function, followed by the function name "main" and curly braces:

    fn main() {}
    
  • Printing to the console. You used the print macro, println! and give it a string literal "Hello world".

   fn main()
   {
     println!("Hello world");
   }

That's it, that's all you needed for a program in Rust. Next, let's look at using variables.

Variables and interpolation

You use variables in Rust to store values that you want to refer later to in code. There are different variable types you can work with, but for now, let's learn how to create a variable and use our println! macro.

You create a variable by typing:

let name = "Chris";
 

The above creates a variable name that you can refer later to in code.

You can now print name with the println!() macro like so:

println!("Hi {}", name);
 

The curly braces {} interpolates your variable name and you end up with "Hi Chris" where you to compile and run the code.

Let's actually do that next.

Exercise - modify your code

Now that you learned about defining a variable and printing it, lets modify your existing code.

  1. Change app.rs to this code:

    fn main() {
      let name = "Chris";
      println!("Hi {}", name);
    }
    
  2. Compile the program with rustc:

   rustc main.rs
 
  1. Run the program:
   ./main # it's an exe file on windows
 

You now see "Hello Chris"

Congratulations, you've now started your journey to become a programmer in Rust, or as it's also called, a Rustacean.

Summary

You learned about Rust, why and where to use it. Additionally, you've created a program in it and you're now ready to learn more about Rust. Welcome Rustacean 🙂

Published Jun 17, 2022
Version 1.0
  • These days with Azure, there's no such thing as non-Microsoft, we support all technologies and programming languages, we want you to succeed in the cloud regardless of what you use. What we don't support officially, you can use via containers. Look at custom handler with Azure Functions, it enables you to run Go or Rust or whatever programming language as long as it supports HTTP primitives. 

     

    Rust is something we use ourselves. .NET is another great technology we use. 

     

    Hope that clarifies?

  • Reza_Ameri's avatar
    Reza_Ameri
    Silver Contributor

    I am wondering why the Microsoft space promoting non-Microsoft technology.

    Learning and having knowledge of any programing language including Java, Python, C/C++ is helpful. 

    However, I expect to have more discussion on how Microsoft programming language would help educators.

    For example, in case you know how to write code in C#, you could develop for Windows, Android, iOS, Web, IoT. This is something very valuable but universities don't care.

    I hope Microsoft would focus on promoting their own programming language first and then promote other languages.

  • Reza_Ameri's avatar
    Reza_Ameri
    Silver Contributor

    Learning any new language is helpful whether it is C/C++ C# RUST, Java, etc.

    However, what surprise me is inside the Microsoft community, it would have been better to promote the power of Microsoft technologies and then discuss about other languages.

    For example, if you know C#, you could write code for Windows, Android, iOS, web application and it is powerful language but there isn't much discussion about it.

    I believe educator should also focus on .NET too.