5 ms·
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 t
by aqueueaqueue 2y ago
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"?
- IshKebab 2y agoNo, it's because it doesn't make any sense to do that. It would add a ton of complexity for no benefit.
- robertlagrant 2y agoIt 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.
- IshKebab 2y agoIndexing/addressing is not counting though. Look at a ruler. It doesn't start at 1.
- robertlagrant 2y agoYes, 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.
- IshKebab 2y ago> 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.
- robertlagrant 2y agoI 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".
- IshKebab 2y ago> 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.
- robertlagrant 2y ago> 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.
- aqueueaqueue 2y agoThanks that made it click. While I understand the CS concepts, I have never really thought about the developer UX before.