Introduction

A yearly event called "Advent of Code" brings together a group of developers online in December to attempt to solve the same 25 code challenges. While some are more relaxed and use it as an opportunity to learn a new programming language, others strive to be the first to solve the problem, gaining points and rising to the top of the scoreboard.

There, you'll see the same difficulties addressed in virtually infinite ways and over an infinite spectrum of performance. Some solutions to the identical problem will take many seconds, or perhaps a minute or two, to run to completion, but others will be finished in milliseconds. Given the various skill levels of the developers involved, this is understandable.

Things get more interesting when you try to rewrite the same answer in several languages. Even when running in the milliseconds range, the same solution within the same language can sometimes be improved by 1.606.240%.

I've been a casual participant in this event since it began in 2015, but I've never been especially enthused about it. Every time I tried a new language, I gave up after a short while and went back to JavaScript/TypeScript to perfect my muscle memory and finish the event the old-fashioned way.

But something was different for me back in 2019. For a while, I'd hear about this new kid in town, but I never paid much attention to it because, at least in my industry, all the other kids on the block were a lot cooler. When you work primarily on the Web and are old enough to have witnessed several significant changes in the way developers build software and the types of things they can build, you can become a bit of an old dog that is incapable of learning any new tricks. But I reasoned that if a new language can make an old dog like me sit up and pant, it must be something exceptional.

Make no mistake about it. This isn’t a Rust (or WebAssembly) tutorial; I'm just here to get you excited and possibly send you on a new journey of joy and discovery. Sometimes all we need is a little push or a new bone to nibble on, and we might learn a trick or two.

fn main() {
    println!("Hello, world!");
}

What is Rust?

If you want your code to be compiled by the Rust compiler, Rust is the language to use. Also, Rust is a language in which you strive to convince the compiler that your code is correct and fail miserably. Ha, ha! The Rust compiler is notorious for being quite picky, which can be irritating at times, but it ensures that your code is as efficient and safe as possible.

Go ahead and Google it; you will see the same things being repeated over and over again; that it’s a blazingly fast, reliable and memory-efficient programming language, that it’s been voted the most loved programming language for many years in a row by those nice guys at StackOverflow. You’ll learn how an amazing Mozilla team was behind it and how it’s now used at FacebookAppleAmazonMicrosoft, Google and even Linux for systems infrastructure, encryption, virtualization, and more low-level programming. Some consider it a modern substitute for languages such as C++ or C, with an emphasis on code safety and concise syntax.

Now, why would a naive Web developer want anything to do with such a tool?

Perhaps the Mozilla team's engagement sparked my curiosity? They did, after all, create Firefox, the Web thingamajig. They also made that Firebug awhile back and MDN is an awesome resource for developers, by developers. They make Web things, so this must be somehow useful for Web.

To be continued, just getting the blog pipelines working...