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.


Software Development Link to heading

Languages Link to heading

Rust Link to heading

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 Link to heading

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-compilation easier as well as enabling the use of Zig on the projects to slowly replace C without requiring a rewrite.

Frontend Development Link to heading

Frontend really needs it’s own section because of how many unique things there are about it. Namely that it’s all running in a browser so it’s either Web Assembly or Javascript.

React Link to heading

  1. Learn more at ↩︎

  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