Big or little endian

Big or little endian, which is best?

A better question to ask is:

Are you focusing on text-strings or on the bit order of (multi byte) numbers?

If you are focusing on text-strings it feels natural to display the data LTR.

If you are focusing on the bit order of numbers it feels natural to display the data RTL.

Texts...

...like for example "abcd" is typically displayed LTR in most writing systems.

And if one is to place the individual characters in memory it feels natural to put the "a" in the lowest address, and display the data LTR.

Byte address 0 1 2 3
Byte value "a" "b" "c" "d"

Numbers...

...on the other hand have their Least_significant_bit numbered the lowest, and thus they are displayed RTL, and thus we prefer to have the data displayed RTL.

Example: The number 769 (0x0301):

Bit address 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Number value 769 (0x0301)
Byte value 0x03 0x01
Bit value 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1

Example

Assume you have 6 bytes consisting of a binary number such as 769 (0x0301) (Endianness not yet determined) followed by the text "abcd".

If we focus on the text, it feels natural to display the data LTR

Byte address 0 1 2 3 4 5
Byte value 0x0301 "a" "b" "c" "d"
Bit value 0b00000011_00000001 "a" "b" "c" "d"

Since we started focusing on the text, big endian feels right since the Most_significant_byte is to the left of the Least_significant_byte:

Byte address 0 1 2 3 4 5
Byte value 0x03 0x01 "a" "b" "c" "d"
Bit value 0b00000011 0b00000001 "a" "b" "c" "d"

However if we are going through the memory, starting on the 0th bit of byte address 0 and expect to be able to count upwards (jumping into byte 1 when at the end of byte 0). Then we see the bits of the binary number in this order: [8, 9, 10, 11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7] which is a bit counter intuitive.

If we focus on the bits of the number instead, it feels natural to display the data RTL

It feels natural with low endian (lowest byte (counted by significance) has the lowest address)
Byte address 5 4 3 2 1 0
Byte value "d" "c" "b" "a" 0x03 0x01
Bit value "d" "c" "b" "a" 0b00000011 0b00000001
Of course the text comes in the wrong order, which a bit counter intuitive.

Summary

Anyone focusing on the character-order in a text will prefer LTR and hence big-endian (unfortunately the bit order in the number becomes wrong).

Anyone focusing on the bit-order within a number will prefer RTL and hence little-endian (unfortunately the text is written in the wrong direction).