I’ve recently finished reading the The Rust Programming Language Book while on vacation. While I’ve heard that programming in Rust is pretty much a fight with the borrow checker, I haven’t had 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.