Arrow Endianness: How GNOME got sorting backwards
Saturday, 21 January 2012
Conventions are important, even when it seems like it doesn’t matter one way or the other. Just look at all the people who complain about the nerve of Steve Jobs to place the close-window button on the left.
There’s no reason why the left side is better than the right side. Convention, however, says that you must choose one way and live with it, or else you’ll be forever forced to constantly convert between left-handed and right-handed traditions. Just ask anyone who’s ever had to write low-level networking code. When sending an integer, it doesn’t matter whether the big end or little end goes first, but if you don’t agree with the other party, your message will come out garbled.
So imagine my discomfort when I have to sort files in Nautilus or sort processes in System Monitor.
Why don’t I just look at the files to see if they’re the way I want them? Because the whole point of having that little arrow there is to quickly indicate to me which way things are sorted. I’d rather have no indicator than a confusing indicator, and besides, if you had to look at your window’s title bar every time you wanted to close a window, you would be frustrated too.
If you had files sorted by name is ascending order, you would get the first one first.
Everybody else uses △ up arrow, but GNOME represents this sort with a ▽ down arrow. If you’ve ever written SQL, you’ll know that this alphabetical sort is what you’d get if you said
ORDER BY filename ASC. Ascending is △ upwards. Like an elevator.
There are more ways to look at it. If you’re sorting numbers in ascending order, you would get
The biggest number is at the bottom. With the △ up arrow, the biggest end is at the bottom. This is like when you learned about the numerical comparison operators in preschool: 1 < 3, 9 > 7, or 5 ▷ 3 and 2 ◁ 4.
Score 0 for GNOME, score 2 for everybody else?
Some GNOME defenders point out that using a ▽ down arrow for ascending sort can make sense if you interpret it as an arrow pointing in the direction in which things are ascending. (e.g. in “1, 2, 3, 4,” the numbers are “going” ▷ right). The GNOME Human Interface Guidelines, however, don’t even justify their decision. They simply say that the “Natural” order is ▽ down arrow and the “Reverse” order is △ up arrow. There’s nothing supporting the connection between “Natural” and ▽ down arrow.
We’re not doomed forever though. This was raised as an issue in the GNOME bug tracker, and people generally support changing the guidelines to follow the general convention. Just give them another year or two or six and they’ll bring GNOME in-line with our expectations for how sorting should be indicated.
The real lesson here is that, when the choice between two things is essentially arbitrary, do some research and consider how everybody else does it. As Danny Cohen wrote (about network endianess),
It may be interesting to notice that the point which Jonathan Swift
tried to convey in Gulliver’s Travels in exactly the opposite of the
point of this note.
Swift’s point is that the difference between breaking the egg at the
little-end and breaking it at the big-end is trivial. Therefore, he
suggests, that everyone does it in his own preferred way.
We agree that the difference between sending eggs with the little- or
the big-end first is trivial, but we insist that everyone must do it in
the same way, to avoid anarchy. Since the difference is trivial we may
choose either way, but a decision must be made.