Published .

Rust 🦀

For some time I've wanted to learn a performant, strongly typed, low-level language, and in 2024 I decided that language is Rust.

I've chosen Rust as it's different enough from JavaScript, both in terms of how it's written and how it's used, yet it can also interoperate with JS via WebAssembly. So it's something new, but it can also serve my core competency.

I've been bothered for a while by TypeScript. I'm not sure where it fits. I think JavaScript still has its place as the default way websites are augmented with code. I believe TypeScript seeks to address perceived shortcomings of JS in ways that are better addressed by other tools like WASM, and by continuing to iterate upon JS directly.

The way I figure it, I can maximise the benefits of types using a language built with them in mind from the ground up. A language that isn't held back by what it must compile down to. I could go on at length about this, but this post is supposed to be about Rust.

I want this post to act as the hub for all the Rust projects I have worked on and what I'm working on at the moment.

Advent of Code 2024 🎄

I started the 2024 Advent of Code in JS, but switched to Rust after a few days. Some of the native features of Rust like enumerations and match expressions, hardly the most unique or groundbreaking, made some of the problems easier to reason about for me.

Also, my Advent of Code solutions tend not to be most efficient as my maths background is a bit weak, so using a performant language like Rust serves to compensate for some of that.

You can check out my solutions here if you're interested.

WASM Game of Life 🧬

There's a fantastic book on the Rust website that covers getting started with compiling Rust to WebAssembly. The book's tutorial covers building Conway's Game of Life, and you can find my implementation of it here.