on middle endianness

what is endianness?

Endianness in computing describes how numbers are stored. Big Endian means that a number is stored from the most significant place to the least significant place, while Little Endian means a number is stored from least to most significant.

In short, the number three hundred seventy-two would be stored in Big Endian as 372, while in Little Endian it would be stored as 273.

Obviously, most human numbering systems use Big Endian, but most PCs* use Little Endian. Different mathematical operations are faster to process in each one. Of course on a computer these numbers would be stored as binary but that's neither here nor there.

*As of 2019 most home PCs use x86 which is a little endian architecture. PowerPC Macs in the past used big endian. The rise of ARM chips has brought forth something called bi-endianness, where different operations can use different endiannesses. Learn more on Wikipedia!

But why represent three hundred seventy-two as 732 or 723? It is clear that Middle Endian, where one starts in the middle and then goes an abritrary direction, is a nonsense concept. And yet...

middle endianness in american dates

As is commonly discussed between Europeans and Americans, in Europe, dates are represented in order from smallest to biggest, which is Little Endian. The 12th of October 2000 is represented by 12/10/2000 in Europe.

As opposed to America where that date would be October 12th, 2000 or 10/12/2000. So the standard date representation in America is a Middle Endian format.

Discussed less often is that in the ISO standard and in Asia, dates are stored in Big Endian, like 2000-10-12. This makes the most sense to me, since humans generally read numbers in Big Endian.

(picture of three triangles depicting european, american, and asian/iso date formats)

Needless to say, this can cause confusion between regions, especially with numbers less than or equal to 12, and the issue is compounded when only two digits are used for the year. I have come across software with a date format selector where all example numbers were 1 (1/1/01). Quite fun.

the web itself is middle endian

URLs like www.example.org/category/page are accessed in a Middle Endian manner.

The highest level of hierarchy, the top level domain, is in the middle right before first slash. Then we go backwards, the domain name, the next highest level of hierarchy, is to the left of that, and the subdomain is all the way at the beginning. Then after, we go back to the middle, the location of the first slash, aad go from most to the least significant resources on the right.

A Big Endian version of the web, would be something like org.example.www/category/page instead, with a Little Endian version being the opposite. The Big Endian version is probably what should have happened (and the www subdomain should have never existed), but now all who access the web are stuck in a permanent state of Middle Endianness.

where am i going with this?

Don't I know?