I’ve recently finished The Rust Programming Language Book while on my
holidays. While I’ve heard that programming in Rust is pretty much a fight with
the borrow checker, I didn’t have a clear idea what this could really mean.
Well, now I know. The borrow checker is friend and foe at the same time. I’m
still far away from grasping all concepts mentioned in the book, but I was able
to produce my very first (useful!) program. It’s a rewrite of a Python script
which transforms CSV exports from my bank account into a CSV format which I can
import in Homebank. It’s interesting to see a language, which forces
you to be very explicit about your error handling. My first job made me switch
from Java, which forces you to declare every (well, let’s say most) possible
Exception in a method, to C#, a language which does not care about any explicit
exception declarations. One could argue which approach is “better”, but Rust
takes error handling on a whole different level, which is interesting, hard and
insightful. It makes me aware of problems, which I’ve ignored in other
languages. I’m not sure if I’ll keep trying to write hobby projects in Rust, but
it sure was a breath of fresh air.