blob: 15fa7f049ff27e60d1556bb93c9072491c90d45e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
Notes for talk on Rust
======================
* Gauge audience knowledge level
* Who knows what Rust is, who has tried to write some, who is "Rust
curious"
* Disclaim C++ comparisons as being naïve
* Introduce basic Rust
* Rough history of Rust - Mozilla, replace C++ in Firefox
* C/C++ish syntax
* Some of the type system from ML/Haskell
* Systems programming language, from embedded to apps
* Fast, Safe, Easy, Pick Three
* What does 'Fast' mean in this
* Optimising compiler
* Monomorphisation rather than generics at runtime
* Zero-cost abstractions vs. C++
* What about 'Easy'
* What is 'safety' about
* Memory safety, 'fearless concurrency', etc.
* Ownership and borrowing
* Use the Vec example
* Lifetimes
* Data types
* Struct
* Enum
* Error handling
* Panic (remember to note that only the current Thread panics, unwinding
too)
* Result
* Traits
* Like haskell type classes
* Different from interfaces, but not entirely
* Can provide default implementations, have associated types, etc.
* Syntactical sugar
* Basic operators
* ?
* for loops
* Macros and proc-macros
* Walk through the iterator trait a bit
* High level
* Similar to Python's iterator protocol
* Compiles into as close to nothing as possible
* Software ecosystem
* Splitting into crates
* crates.io
* rustup and cargo
|