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

  • Eager Eagle@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    edit-2
    14 hours ago
    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
    • SufferingSteve@feddit.nuOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      13 hours ago

      :D mostly, there are still a few nice tools written in go that is quite useful, I just hope they will be replaced by rust software soon. Following the iroh project quite closely, I’m guessing someone will rewrite syncthing using that or p2panda soon.

      But yeah, the rust Cli tools are just godsent compared to everything else. Ripgrep, fd-files, helix are used daily by me. Started using smartcat recently but I feel dirty knowing that Ollama is actually Go software…