hpr3426 :: Rust 101: Episode 0 - What in Tarnishing?
BlacKernel teaches you what rust is and how it is different from Python or C.
Hosted by BlacKernel on Monday, 2021-09-20 is flagged as Clean and is released under a CC-BY-SA license.
rust, programming, raii, python, c.
3.
The show is available on the Internet Archive at: https://archive.org/details/hpr3426
Listen in ogg,
spx,
or mp3 format. Play now:
Duration: 00:22:28
Programming 101.
A series focusing on concepts and the basics of programming
Talking Points
- What is Rust?
- " Garbage Collection " - Resource Acquisition Is Initialization (RAII)
- Strict Typing with Type Inference
- Reference pointers
- Immutable by default
- Unsafe Mode
- Why use Rust over Python?
- Speed
- Compiled
- Help from compiler
- Smaller binary size
- Useful in high throughput/embedded applications
- Logically consistent
- Why use Rust over C?
- Safe by default
- Easier to read
- Forces you to write good code
- Arrays without stupidity++ and built in vectors
- Option<T> and Result<T> or a match {} made in heaven
Show Notes
Strict Typing
fn main() {
// Type declared with var: <T> syntax
let penguin_one: &str = "gentoo";
// Type &str is inherited from "gentoo"
let penguin_two = "gentoo";
// Will not panic if they are the same
assert_eq!(penguin_one, penguin_two);
}
Reference Pointers
Wrong Way:
fn print_u8_vector(vec: Vec<u8>) {
println!("{:?}", vec);
}
fn main() {
let penguin_ages: Vec<u8> = vec!(2, 4, 6);
print_u8_vector(penguin_ages);
// This line will throw an error
println!("{}", penguin_ages[0]);
}
Correct Way:
fn print_u8_vector(vec: &Vec<u8>) {
println!("{:?}", vec);
}
fn main() {
let penguin_ages: Vec<u8> = vec!(2, 4, 6);
print_u8_vector(&penguin_ages);
// This line will print '2'
println!("{}", penguin_ages[0]);
}
Immutable By Default
Wrong Way:
fn main() {
let my_num = 2;
// This line will throw an error
my_num = my_num + 1;
println!("{}", my_num);
}
Correct Way:
fn main() {
let mut my_num = 2;
my_num = my_num + 1;
// This line will print '3'
println!("{}", my_num);
}
Unsafe Code
Hello World Program in C in Rust:
extern "C" {
fn printf(input: &str);
}
fn main() {
unsafe {
printf("Hello, World!");
}
}
- Important Links:
- Rust Programming Language Homepage
- Rust Playground
- Ben Eater: Comparing C to machine language <WARNING: YouTube Hosted>
- Wikipedia Pages:
Contact Me
Email: izzyleibowitz at pm dot me
Mastodon: at blackernel at nixnet dot social