summaryrefslogtreecommitdiff
path: root/notes.md
diff options
context:
space:
mode:
authorDaniel Silverstone <dsilvers@digital-scurf.org>2019-01-22 17:36:35 +0000
committerDaniel Silverstone <dsilvers@digital-scurf.org>2019-01-22 17:36:35 +0000
commit86c4fc54c118e2cd8b806cbf3669f7e10d580145 (patch)
treeb2359909e910cec621ea4b9c61489f129af48264 /notes.md
downloadrust-talk-86c4fc54c118e2cd8b806cbf3669f7e10d580145.tar.bz2
Initial commit
Diffstat (limited to 'notes.md')
-rw-r--r--notes.md47
1 files changed, 47 insertions, 0 deletions
diff --git a/notes.md b/notes.md
new file mode 100644
index 0000000..15fa7f0
--- /dev/null
+++ b/notes.md
@@ -0,0 +1,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