summaryrefslogtreecommitdiff
path: root/reviews
diff options
context:
space:
mode:
authorKévin Le Gouguec <kevin.legouguec@gmail.com>2019-08-29 09:28:06 +0200
committerKévin Le Gouguec <kevin.legouguec@gmail.com>2019-08-29 09:29:07 +0200
commitaa6477e5e862fb34201daf9e084583bd56449ace (patch)
tree912806df7e1d81c0cb0f9c1e60bd56416f817c66 /reviews
parent64e5e4c663511cbb24e8075caabdab4a69456672 (diff)
downloadmemory-leaks-aa6477e5e862fb34201daf9e084583bd56449ace.tar.xz
Add notes on a Rust talk by Josh Triplett
Got hooked in by the definition of "systems programming".
Diffstat (limited to 'reviews')
-rw-r--r--reviews/talks.md61
1 files changed, 61 insertions, 0 deletions
diff --git a/reviews/talks.md b/reviews/talks.md
index 632ffa1..1a34141 100644
--- a/reviews/talks.md
+++ b/reviews/talks.md
@@ -79,3 +79,64 @@ Questions:
- Does he rely on naming conventions?
- Quite a lot.
+
+
+# Josh Triplett - Intel and Rust - The Future of Systems Programming
+
+:::: tags
+- C
+- Rust
+- systems programming
+::::
+
+## Systems programming and C
+
+Systems programming
+: > Anything that isn't an app
+
+ Platforms for other programs to run on top of: kernels, VMs, even
+ web browsers.
+
+Why did it take so long to move away from assembly for BIOS, firmware
+and bootloaders, despite C being readily available?
+
+- C had to have enough *compelling features* over assembly: "some
+ degree of type safety", more readable code…
+- C had to provide **feature parity**: developers had to feel
+ confident that they wouldn't be missing features from assembly.
+
+You could mostly do anything you did in C that you did in assemlby,
+and you had an "escape hatch" (the `asm` directive).
+
+The problems with C go beyond "buffer overflows".
+
+> Memory safety is the bare minimum requirement these days.
+
+**Usability and productivity go hand in hand with security:**
+
+> The less code you need to write to accomplish something, the less
+> chance you have of introducing bugs.
+
+One doesn't have to reach very far to find languages with more
+*compelling features* than what C offers. What does "parity with C"
+entail, though?
+
+## Rust
+
+Rust started out as a safe and performant language for complex
+applications, such as web browsers.
+
+Key feature #1: automatic memory management **without** a garbage
+collector.
+
+(Adding Rust to a codebase is jokingly refered to as "Oxidation")
+
+Key feature #2: safe concurrent programming.
+
+### Parity with C
+
+Rust can handle C functions, structures, unions and pointers.
+
+Soon in stable Rust™: varargs, smaller binaries, robust inline
+assembly (there already exist builtins for SIMD instructions),
+bfloat16, more structure layout shenanigans.