Introduction to Rust: having your cake and eating it too

Type: 
Workshop (120 mins)
Location: 
Workshop Room (Room 316B)
Time: 
15:30
Abstract: 

Are you a low-level systems programmer who needs the flexibility of C but hates seeing the words “segmentation fault” a million times a day?

Are you an application developer who loves the ease of use and expressiveness of high-level languages but would also love the performance of a compiled language?

“Uh, no, not really…”, you say…

You should take a look at Rust!

Rust, in the words of its developers, is “a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety”. Rust draws on modern language design principles and “zero-cost” abstractions that make it easy to do interesting things while keeping performance overhead to a minimum and guaranteeing memory safety. Even though it’s a very new language, a number of organisations and projects are already using Rust in production.

In this workshop, we’ll introduce you to some Rust basics:

  • What’s Rust good for, and where might you want to use it?
  • Setting up the Rust compiler
  • Basic Rust syntax, semantics and data structures
  • Where to find packages and libraries
  • Where to go further in the Rust community

By the end of this workshop, you’ll have enough Rust knowledge to start using Rust for your next (awesome, high performance, totally memory safe) hobby project, and you’ll know where to learn more.

This workshop will assume a reasonable knowledge of at least one imperative or object-oriented language, such as C, Java or Python. It will be hard to follow along without some prior programming experience.

Presenters: 
Russell CurreyIBMRussell Currey
Andrew DonnellanIBMAndrew Donnellan
Biography: 

Russell is a software engineer with a third degree black belt in memejitsu.

Andrew is also a software engineer, with no black belts in anything.

At IBM Canberra, alongside their real jobs as Linux kernel developers, they maintain snowpatch, a continuous integration tool written in Rust.