Skip to main content

Oxidation

Lights

I have mained Python since 2006, and it has helped me hold down two jobs, and earn a Software Engineering MSc. But that training showed me I need to add another tool to my toolbox. A statically-typed compiled language with no garbage collection.

I chose Rust. In the summer of 2019 after finishing my first year, I skimmed the Rust Book. The Ownership concept was new to me, but overall I liked the feel of the language, Cargo, and that there seemed to be no gotchas. Once I understood something, it worked and interacted with the rest of the components as expected. The language felt solid, well engineered. Then when I commenced my second year in September later that year, I stopped learning it.

Today I’ve re-started the process, with the aim of making it my main. I’m not “switching” from Python, as it’s indispensible when it comes to data work, but I feel Rust will help me create more value long term. I’ll study the Rust Book, and make something (probably using Vulkan), and have it done and up on GitHub by the end of March.

Twende!

Update 2023-02-14

Six weeks end tomorrow since I started learning Rust. I have so far finished the book and started making a thing, but I know enough now to see where it fits in my stack. Some points:

  • Rust is not difficult. After all this time in tech, I define difficult as difficult to use, not learn. Rust is moderately difficult to learn, but once I started getting it, everything feels solid and works as expected.
  • Rust is not yet “powerful” (yet). I define powerful by the amount of value in terms of ecosystem, the answer to the question “what mature libraries/frameworks are available?”.
  • Finally, where Rust fits in my stack; speeding up Python hot-paths via PyO3.

This is as I see things right now, we’ll see what I’ll think of it in 6 months.

So will Rust become my main? No. Most of my work right now is web back-end, and Python has always been powerful, and these days is fast enough, and thanks to this project is getting faster by the release.