Learning Rust as a JavaScript Developer
2 min read

Learning Rust as a JavaScript Developer

I recently decided to learn the Rust programming language. This is an introductory post on why I decided to learn Rust and how I'm going about it.

## Why I decided to learn Rust

I've been curious about Rust for quite a while. In late 2017, Mozilla released Firefox Quantum, an update to the browser that was about twice as fast as the previous version. I was curious to know what had changed. Turns out, Mozilla had incorporated a large portion of their experimental Servo engine into Firefox. Servo is written in Rust and is designed to take advantage of Rust's memory safety and concurrency features. Servo also uses GPU acceleration to render web pages.

My interest in Rust only grew when I found out last year that Rust has been the most loved programming language, 5 years running, according to the Annual Stack Overflow Developer Survey.

Another reason was that I was actually looking to learn something that is not centered around JavaScript. I had dabbled in some Python with Deep Learning but I didn't use Python much outside of that. Most of what I learned in the past 5 years was in JavaScript. I wanted to branch out of this ecosystem.

Rust also compiles to WebAssembly, so I can still build applications for the web (which I love doing). WebAssembly is already paving the way for the next generation of web applications. Figma uses it for their multiplayer server, Dropbox uses Rust for optimizing it's file storage. There are many more companies using [Rust in production](https://www.rust-lang.org/production/users).

## What I'm doing differently this time

The first time I used JavaScript was actually on the job as a Junior Web Developer. Every thing I learned after that was around JavaScript and was required by my work.

I'm taking a different approach to learning Rust. After getting the basics down, I'm diving straight into building breakable toys. I believe solving my own problems using something I'm learning is the best way to get better at it. I've a few ideas that will be perfect for Rust. Since Rust is usually called a systems programming language, some of what I learn will be around this area. I'm excited to learn about that as well.

The Rust-for-web ecosystem is still in its infancy. It's growing steadily and it's exciting to see this again. When this was happening in JavaScript land, I was hesitant to participate. This time around, I'm diving into becoming an active participant in growing this ecosystem. That means, building and contributing to open source projects

I usually write about web development here, so I hope you don't mind me writing about systems programming, Rust and whatever I build with Rust.