Skip Navigation

Confession

I have been programming in Rust for about 8 years now. I love the language. But I feel I have some confessions I must make.

  1. I don't know if I use tabs or spaces in my final code. I just assume that it all get solved correctly by cargo fmt. I don't even understand that people have been arguing about this for real? I vaguely remember this being important in C and C++, but I am hoping I never go back to those dark days.
  2. I never do linebreaks, not even when adding my semicolons. I hit ":w" and if shit doesn't move around on my screen, I fucked up somewhere.
  3. The only lifetime I ever use is '_, 'a or 'static otherwise I give up
  4. Wtf is the 'de lifetime in serde deserialize??
  5. Rocket is the best web server
  6. I actively chose software written in Rust over other software, even if it's not better, and I argue that it is.

Okay, got that of my chest. Never dared telling anyone this before. Feels scary

11 comments
  • Number 4 hit home for me. I've been just trying random shit until it compiles. When it compiles it usually works without understanding what the fuck is going on

    Programming rust on an off for 2 years or so

    1. What are you talking about, it's always better.

    But seriously, I don't have much Rust proficiency and I still pick software in Rust because 1. installing and updating rust itself and things installed with it is a bliss; and 2. the CLI experience of Rust programs tends to be much better than alternatives.

    Contrasting that with installing something with Go, which is a common alternative for things written in Rust:

    • First, I need Go. So if I chose to install it via another package manager - perhaps with the exception of pacman - I may end up with an out of date version that may cause issues when compiling newer code. I had this happen a few times.
    • If I chose to build it myself, first I need an older version of Go to compile a newer Go. Very fun.
    • If I chose to install it via their website, it's a manual .tar.gz download and extraction of an executable that doesn't self-update, so next time I not only have to repeat this, but I need to remember it.
    • Then there's the gvm project, which promises to resolve some of this friction, and it was my method of choice, but I'm not sure it's maintained anymore and I always have to look up their commands because of things like: gvm list works, but to list versions for download it's gvm listall instead of gvm list --all)

    Now for Rust:

    • curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs/ | sh
    • optional cargo install cargo-update to update everything else with cargo install-update -a
11 comments