← Back to context

Comment by scott_w

4 months ago

Yes, I think you are. The challenges people describe with Rust look more difficult than remembering to start from 0 instead of 1…

I don't think so. One based numbering is barring few particular (spoken) languages the default. You have to had to change your counting strategies when going from regular world to 0 based indices.

Maybe you had the luck of learning 0 based language first. Then most of them were a smooth ride.

My point is you forgot how hard it is because it's now muscle memory (if you need a recap of the difficulty learn a program with arbitrary array indexing and set you first array index to something exciting like 5 or -6). It also means if you are "fighting the borrow checker" you are still at pre-"muscle memory" stage of learning Rust.

  • > Maybe you had the luck of learning 0 based language first. Then most of them were a smooth ride.

    Given most languages since at least C have 0-based indexing... I would think most engineers picked it up early? I recall reading The C Programming Language 20 years ago, reading the reason and just following what it says. I don't think it's as complex as the descriptions people put forward of "fighting the borrow checker." One is "mentally add/subtract 1" and another is "gain a deep understanding of how memory management works in Rust." I know which one I'm going to find more challenging when I get round to trying to learn Rust...

    • > Given most languages since at least C have 0-based indexing.

      As I mentioned I started Basic on C64, and schools curriculum was in Pascal. I didn't learn about C until I got to college.

      > One is "mentally add/subtract 1" and another is "gain a deep understanding of how memory management works in Rust."

      In practice they are, you start writing code. At first you trip on your feet, read stuff carefully, then try again until you succeed.

      Then one day, you wake up and realize I know 0 indices and/or borrow checker. You don't know how you know, you just know you don't make those mistakes anymore.

      8 replies →