I was reading about vim the other day and found out why it used hjkl keys as arrow keys. When Bill Joy created the vi text editor he used the ADM-3A terminal, which had the arrows on hjkl keys. Naturally he reused the same keys and the rest is history!
Both the arrows and the "home" correspond to the functions of the corresponding control characters Ctrl-H, Ctrl-J, Ctrl-K, Ctrl-L, and Ctrl-^ (identical to Ctrl-~) when sent to the terminal, moving the cursor left, down, up, right, and to the "home" position in the upper left-hand corner of the terminal, respectively.  (The Ctrl-H and Ctrl-J functions were standard, but the interpretations of Ctrl-K, Ctrl-L, and Ctrl-^ were unique to the ADM-3A.)ADM-3A - Wikipedia, the free encyclopedia
Joy explained that the terse, single character commands and the ability to type ahead of the display were a result of the slow 300 baud modem he used when developing the software and that he wanted to be productive when the screen was painting slower than he could think.vi - Wikipedia, the free encyclopedia
It was really hard to do because you've got to remember that I was trying to make it usable over a 300 baud modem. That's also the reason you have all these funny commands. It just barely worked to use a screen editor over a modem.Bill Joy's greatest gift to man – the vi editor • The Register