This page is part of my digital garden.

This page might be unfinished or have typos. These pages are meant as part of a public living notebook to be edited over time. For more, visit the page explaining the concept of a digitial garden.

Programming

Software Development

Languages

Rust

Rust1 is becoming a very popular language. I personally want to write everything in Rust because it provides a lot of the security of runtime memory safe languages (e.g. Python, Javascript (V8), Go) without the runtime overhead. It also provides a bunch of features which none of those languages have like Algebraic Types and pattern matching2.

Here is an in-depth article explaining how rust’s memory safety works. Like, what is it actually protecting and how does it work?

Example of converting C programs to rust over time using TinyVM as the example. Using Cargo to build the C program and then replacing the C functions and structs with rust ones then disabling that part of the C code you can eventually replace the whole C program piece by piece. You can also write tests to ensure that before and after the change the code works the same.

Zig

Zig is another language which is attempting to replace C (like Rust), but does not have all the same safety features.

One of the main contributors suggests replacing the build systems of C projects with Zig to make cross-compiliation easier as well as enabling the use of Zig on the projects to slowly replace C without requiring a rewrite.


  1. Learn more at https://rustlang.org ↩︎

  2. Python is adding support in 3.10 I think, but I won’t be able to use 3.10 in my daily work for a while so it doesn’t affect me yet. ↩︎

Last updated on