Hacker News new | past | comments | ask | show | jobs | submit login

Yeah but why wasn't that converted to human 1 based indexing at the machine code level or assembly in early machines?

Maybe because they didn't want to "hide the bicycle gears"?




No, it's because it doesn't make any sense to do that. It would add a ton of complexity for no benefit.


It does make some sense: if I have some apples, and I ask a child to count them, they'll address each one starting with the number 1, not the number 0.


Indexing/addressing is not counting though. Look at a ruler. It doesn't start at 1.


Thanks that made it click.

While I understand the CS concepts, I have never really thought about the developer UX before.


Yes, indeed. But when indexing to an element in an array you aren't measuring from a zero (well, in memory you are, but not conceptually). You're conceptually pointing at an apple.


> But when indexing to an element in an array you aren't measuring from a zero (well, in memory you are, but not conceptually).

Yes you are!! In memory, and conceptually. You're conceptually moving your finger 0 spaces from the start of the apple array.


I think maybe it's just hard to unlearn the offset mentality. Of course you can convert a direct index mentality to an offset mentality, but I don't think anyone is pointing at the first item in a row of items and thinking "that's a zero offset from the start of the number of items". They're thinking, "That's item number 1".


> They're thinking, "That's item number 1".

Yeah that's because the distinction between indexing and counting is pretty much irrelevant to every day use, and to maths where you can just hand-wave syntax. So people are very used to doing it "wrong".

That's what most of the issue with this debate is. Indexing from 1 is wrong, but people are soooo used to it they just can't get over what they think is the "normal" way.


> Yeah that's because the distinction between indexing and counting is pretty much irrelevant to every day use

No it's not. Telling the time or measuring something is 0-indexed. But identifying a thing in a list is 1-indexed.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: