diff --git a/rust-intro.org b/rust-intro.org index b1419f7..ef3b0e3 100644 --- a/rust-intro.org +++ b/rust-intro.org @@ -31,7 +31,7 @@ ** Abstract #+BEGIN_CENTER #+LaTeX:\includegraphics[width = 0.5\textwidth]{img/Bruine_roest_op_tarwe_(Puccinia_recondita_f.sp._tritici_on_Triticum_aestivum).jpg} - [fn:1] + [fn:rust_fungus] #+END_CENTER *** Rust, the language @@ -43,7 +43,7 @@ of idiomatic C++ - A well designed language and ecosystem -** Strengths and Weaknesses[fn:2] +** Strengths and Weaknesses[fn:strengths] *** Things Rust does measurably really well (Strengths) - Compiled code [[https://benchmarksgame-team.pages.debian.net/benchmarksgame/which-programs-are-fastest.html][about same performance as C / C++]], and excellent [[https://dl.acm.org/doi/10.1145/3136014.3136031][memory and energy efficiency]]. @@ -52,28 +52,28 @@ - Strong type system prevents [[https://doc.rust-lang.org/nomicon/races.html][data races]], brings [[https://blog.rust-lang.org/2015/04/10/Fearless-Concurrency.html]['fearless concurrency']] (amongst others). - Seamless C interop, and [[https://doc.rust-lang.org/rustc/platform-support.html][dozens of supported platforms]] (based on - LLVM).[fn:4] + LLVM).[fn:gcc] - [[https://insights.stackoverflow.com/survey/2021#technology-most-loved-dreaded-and-wanted]["Most loved language"]] for 6 years in a row. - Modern tooling: ~cargo~ (builds just work), ~clippy~ (450+ code quality lints), ~rustup~ (easy toolchain management). -** Strengths and Weaknesses[fn:3] +** Strengths and Weaknesses[fn:weaknesses] *** Points you might run into (Weaknesses) - - Steep learning curve[fn:5] compiler enforcing (esp. memory) + - Steep learning curve[fn:survey] compiler enforcing (esp. memory) rules that would be "best practices" elsewhere. - Missing Rust-native libs in some domains, target platforms - (esp. embedded), IDE features.[fn:5] + (esp. embedded), IDE features.[fn:survey] - Longer compile times than "similar" code in other - languages.[fn:5][fn:6] + languages.[fn:survey][fn:compiler_speed] - No formal language specification, can prevent legal use in some - domains (aviation, medical, ...).[fn:7] + domains (aviation, medical, ...).[fn:specification] - Careless (use of ~unsafe~ in) libraries can secretly break safety guarantees. ** Problems and security Rust tries to conquer #+BEGIN_CENTER #+LaTeX:\includegraphics[width = 0.8\textwidth]{img/compiler_complaint.png} - [fn:8] + [fn:xkcd_dangling_pointer] #+END_CENTER - Dangling pointers / memory safety @@ -405,12 +405,12 @@ - esp32 * Footnotes -[fn:1] [[https://commons.wikimedia.org/wiki/File:Bruine_roest_op_tarwe_(Puccinia_recondita_f.sp._tritici_on_Triticum_aestivum).jpg][Wikimedia]] -[fn:2] Copied list from: [[https://cheats.rs/#tab-hello-3][cheats.rs]]. -[fn:3] Copied list from: [[https://cheats.rs/#tab-hello-4][cheats.rs]]. -[fn:4] Work on GCC: [[https://rust-gcc.github.io/][rust-gcc]] and [[https://news.ycombinator.com/item?id=27775544][gcc rust backend]]. -[fn:5] [[https://blog.rust-lang.org/2020/04/17/Rust-survey-2019.html#why-not-use-rust][Rust survey]] -[fn:6] [[https://news.ycombinator.com/item?id=23538220][The Rust compiler isn't slow; we are]] -[fn:7] [[https://people.mpi-sws.org/%7Ejung/thesis.html][Understanding and Evolving the Rust Programming Language]] -[fn:8] https://xkcd.com/371/ -[fn:9] [[https://areweideyet.com/][areweideyet.com]] +[fn:rust_fungus] [[https://commons.wikimedia.org/wiki/File:Bruine_roest_op_tarwe_(Puccinia_recondita_f.sp._tritici_on_Triticum_aestivum).jpg][Wikimedia]] +[fn:strengths] Copied list from: [[https://cheats.rs/#tab-hello-3][cheats.rs]]. +[fn:weaknesses] Copied list from: [[https://cheats.rs/#tab-hello-4][cheats.rs]]. +[fn:gcc] Work on GCC: [[https://rust-gcc.github.io/][rust-gcc]] and [[https://news.ycombinator.com/item?id=27775544][gcc rust backend]]. +[fn:survey] [[https://blog.rust-lang.org/2020/04/17/Rust-survey-2019.html#why-not-use-rust][Rust survey]] +[fn:compiler_speed] [[https://news.ycombinator.com/item?id=23538220][The Rust compiler isn't slow; we are]] +[fn:specification] [[https://people.mpi-sws.org/%7Ejung/thesis.html][Understanding and Evolving the Rust Programming Language]] +[fn:xkcd_dangling_pointer] [[https://xkcd.com/371/][xkcd.com/371]] +[fn:areweideyet] [[https://areweideyet.com/][areweideyet.com]]