The article has some bugs. Alphabets in India (for as far back as we have written records, e.g. Pali) were all LTR until Muslim rule was established at which point some people began to write Hindi using the Persian/Arab script (giving rise to Urdu, a very close sister language to Hindi).
Also network order is big endian because most of the machines back then were big endian, most notably the PDP-10 which was the common research machine in that era. Big endian offered simplicity in implementation (remember the earlier models of these machines were mostly hand made, even if made in a factory, with only a few semiconductors; the ALUs and instruction decoding was all done with wires, not traces). Bytes weren't necessarily 8 bits wide and while it was trivial (easier than in C actually) to do pointer arithmetic, a "pointer cast" is a weird way to think of it.
So the article is full of the assumption that the world is basically a PDP-11. I think the obsession with such machines has held computing back as much as it has sped it up.
How is the PDP-10 big endian if it has no byte addressable memory? I would agree that culturally it's in the big endian camp because bits are numbered MSB to LSB, but I see no technical reason.
Bytes are very much addressable, they are simply not limited to only being 8 bits. The 8-bit convention was uncommon when these machines were designed -- I think it was only on some IBM machines at the time. Remember the 10s, like several contemporary machines, had 36-bit words with an 18-bit address space (yes Gordon Bell specifically designed them with Lisp in mind)
As for the technical reason, consider wiring up the arithmetic unit by hand (work it out on a piece of paper). If you don't have an architecture book handy, look at Ken Sheriff's walkthrough of the Z80 die and consider some of the extra complexity (less of an issue of course for an MPU that was an IC) to handle little endian arithmetic ops (routing carry and such).
Not sure I get your point. The PDP-10 has no notion of bytes in the arithmetic unit, it's all words (and hence there's no endianness). The byte instructions are handy ways to load/store parts of words, sure, but I feel like they're more similar to modern bitfield instructions and feel rather tacked on (they were optional in the KA10 even) rather than being a central part of the architecture.
Come to think of it though, byte pointers move right in the word as they're incremented. Guess you could count that as big endian.
Comments
The article has some bugs. Alphabets in India (for as far back as we have written records, e.g. Pali) were all LTR until Muslim rule was established at which point some people began to write Hindi using the Persian/Arab script (giving rise to Urdu, a very close sister language to Hindi).
Also network order is big endian because most of the machines back then were big endian, most notably the PDP-10 which was the common research machine in that era. Big endian offered simplicity in implementation (remember the earlier models of these machines were mostly hand made, even if made in a factory, with only a few semiconductors; the ALUs and instruction decoding was all done with wires, not traces). Bytes weren't necessarily 8 bits wide and while it was trivial (easier than in C actually) to do pointer arithmetic, a "pointer cast" is a weird way to think of it.
So the article is full of the assumption that the world is basically a PDP-11. I think the obsession with such machines has held computing back as much as it has sped it up.
How is the PDP-10 big endian if it has no byte addressable memory? I would agree that culturally it's in the big endian camp because bits are numbered MSB to LSB, but I see no technical reason.
Bytes are very much addressable, they are simply not limited to only being 8 bits. The 8-bit convention was uncommon when these machines were designed -- I think it was only on some IBM machines at the time. Remember the 10s, like several contemporary machines, had 36-bit words with an 18-bit address space (yes Gordon Bell specifically designed them with Lisp in mind)
As for the technical reason, consider wiring up the arithmetic unit by hand (work it out on a piece of paper). If you don't have an architecture book handy, look at Ken Sheriff's walkthrough of the Z80 die and consider some of the extra complexity (less of an issue of course for an MPU that was an IC) to handle little endian arithmetic ops (routing carry and such).
Not sure I get your point. The PDP-10 has no notion of bytes in the arithmetic unit, it's all words (and hence there's no endianness). The byte instructions are handy ways to load/store parts of words, sure, but I feel like they're more similar to modern bitfield instructions and feel rather tacked on (they were optional in the KA10 even) rather than being a central part of the architecture.
Come to think of it though, byte pointers move right in the word as they're incremented. Guess you could count that as big endian.