@b0rk @mjd I know that in the days of printing terminals and paper tape, the ASCII "backspace" and "delete" control codes had two clearly distinct functions.

Backspace meant literally back up the print head or tape punch one space. It *didn't* erase anything, and it was common to "overprint" two or more characters in the same space (a vestige of this survives today, some programs will emit a letter, ^H, and then _, and expect the letter to be underlined).

Delete, on the other hand, meant cross out the character at the *current* print head position. That's why it's all by itself at the high end of the ASCII range: its encoding is all-bits-1, which is all seven holes punched on a 7-bit paper tape, so if you back up your tape punch and punch DEL it completely destroys whatever used to be there.

I do not know how we got from there to how it is today.