Because ship IDs aren't all the same length, so it's faster and easier to prefix; you have to go to the end of a given ID to add to the end, while you don't if you're adding to the beginning. Well, unless you read/write in the opposite direction if your writing system (e.g., American English is left-to-right; hence, it'd only be faster to suffix if you read right-to-left [i.e.,
backwards - not if you just read/wrote regular American English, but right-to-left, because even then it'd still be faster to prefix, since you're still reading/writing right-to-left).
Like, if you have a given list:
It's faster to prefix, since you
start at the left-most character of any given line (in a traditional left-to-right text editor).
ETA2: Actually, now that I think about it, that's not necessarily true. Getting to the end or beginning of a given word is equivalently-fast - it's Home/End/Ctrl-left/Ctrl-right/
b/
e whether you want to append or prepend from the middle of a given word. Still, it's faster to prefix for a different reason (near the bottom of my post). And most people still read left-to-right (in American English), so you get to the beginning of a word before you get to its end.
Even if I go line-by-line, manually editing in a prefix:
Whereas if I wanted to suffix, I'd have to go to the end of every line, and that's not always going to be quick, see:
I've appended "_IF" to "toa", but moving down to the next line, that puts my cursor in the middle of "mercury". Now I have to get to the end of the word if I want to append to "mercury". Sure, I could use the End key (or, since I'm using Vim, I can hit Ctrl-
c to exist Insert mode, and then Ctrl-
a to append at the end of the line), but if my lines consisted of more than one word, but I was just editing the one word, that would take me to the end of the line - which isn't what I want, if the word I'm editing is in the middle of the line. In that case, you'd do something like Ctrl-right to get to the end of the word, but it's still a suboptimal approach.
Finally, in my example text, if I'm prepending, it's much faster to just do a column-select (Vim: Ctrl-
v):
And insert (Vim:
I, followed by Esc twice after you're done inserting):
So, assuming that I didn't have to type out the original list, prefixing every entry with "IF_" took me
seven eight keypresses: Ctrl-
v to enter column-select mode, holding down
j to go down all the columns (vikeys:
hjkl = left, down, up, right in that order),
I to enter Insert mode, typing
IF_, and then Esc twice. Saving and quitting is another four (
:wq, Enter). ETA3: There's actually a faster command (:x) but I prefer
:wq because Vimperator (for Firefox) uses a similar command
:wqa to save and quit all windows.
Whereas appending would've been something like (navigating to and) marking each position where I want to start appending, and then Inserting once, and then using a plugin to copy my Insert command to every position I marked.
And that's why prefixes are faster than suffixes. (At least, in the context of computer-based text editors).
If you really think about it, it's an interface limitation of most common computers - you're only ever actually
interacting with a single point in two-dimensional space, and navigating that space requires a nontrivial amount of effort. Even multi/touch interfaces have this problem, being built on the traditional way of doing personal computing. It's why, for example, multi-touch capable interfaces (e.g. smartphones) still use QWERTY keyboards (in either/both software and hardware) when really, there needs to be a whole new interface paradigm for such a device, for optimal use. It might also be a limitation of the way we, as a culture, have learned to read/write. There's probably some interesting grammatology and/or graphemics thoughts/literature/philosophy on the subject, now that I've traipsed down this line of thought. Might make for interesting reading in a week or so...
ETA: Hah, I miscounted keypresses. Counted "Esc twice" as a single keypress.
-- Griffinhart