From Python to Rust

I work with Python and SQL for analytics, some DS, and DE for personal projects. Python is the default language for data and it works well.

Still, I wanted to learn something new. Something that forces me to think differently. After starting to use more Polars for any data wrangling as an alternative to Pandas and watching the Rust for Python data engineers talk by Karim Jedda in EuroPython2023, I chose Rust.

What attracted me to Rust is the combination of performance and safety. There is no garbage collector, but the language enforces strict rules that give strong guarantees around memory and concurrency. That makes the learning curve steeper, but also more rewarding. At the same time, there is growing interest in Rust for data workloads. It feels fast, reliable, and close to the system, while also coming with modern tooling like cargo and crates that make it enjoyable to work with. More importantly, Rust is appearing in production systems at companies that care deeply about efficiency and reliability, which makes it feel like a good long term investment.

Another reason is that I want to improve my software engineering practices. Python lets you move fast, but Rust makes you slow down and think carefully. I expect this will help me write more robust code and understand programming at a deeper level.

For this journey, my main resources will be The Rust Book, the YouTube channel Let’s Get Rusty, and the website Data with Rust, which is focused on data use cases. I want to discover Rust overall, but particularly how it can be applied in data engineering.

I see Python as the language that lowers the barrier to ideas, and Rust as the language that raises the ceiling of performance. They complement each other more than they compete.