What does "long" mean before a name?
Solution 1:
Somehow the suggestion that we don't really know the reason behind "Long" as John Silver's nickname, is not terribly convincing.
Nowadays, yes, anything goes. If a relatively short man is nicknamed "Long", I would either interpret it being as a ironic comment on his evident lack of height, or I'd imagine that something else about him must be long. And if it wasn't his name, hair or nose, it would have to be something else, which for the moment escapes me...
No, historically the epithet Long was given to people who were considered exceptionally tall for those times. There were also several variations on the theme of Long, such as Longfellow meaning tall, good companion; Longstaff, "well endowed" and Longshanks meaning "long legs" or "long shins". Back in the late 1800s the average height of a man in England was about 1.66 m, today that figure has risen to 1.78 m
I don't have any data for the 1700s but it's easy to imagine that men and women were even shorter, and therefore anyone above 1.70m in those days must have really stood out from the crowd.
Examples of famous men whose nicknames were or contained the term "Long"
Dexter Gordon: Long Tall Dexter, (February 27, 1923 – April 25, 1990) 6 feet 6 inches (1.98 m)
Thomas Jefferson: Long Tom, (April 13 [O.S. April 2] 1743 – July 4, 1826) 6 feet 2 inches (1.88 m)
Edward I: Edward Longshanks (17 June 1239 – 7 July 1307) 6 feet 2 inches (1.88 m)
Long John Silver (mid-1800s) A fictional character, his actual height is not mentioned in Robert Louis Stevenson's novel, Treasure Island. However, the author intentionally made him tall...
Silver claims to have served in the Royal Navy and lost his leg under "the immortal Hawke". "His left leg was cut off close by the hip, and under the left shoulder he carried a crutch, which he managed with wonderful dexterity, hopping about upon it like a bird. He was very tall and strong, with a face as big as a ham – plain and pale, but intelligent and smiling."
Solution 2:
It's not before the name, it's being used as part of the name.
As such, there's no set rule as to what it could mean, as there might be for an honorific. It's likely to mean that they are tall, but there's nothing stopping someone nicknaming somebody "long" for some other reason, and that nickname sticking enough to become how they are normally referred to. Hence it could mean that they were short (ironically), that they always take a long time when they go to the toilet, refer to some now-forgotten amusing incident, or anything else.
Solution 3:
Sometimes, long is prefixed to a name as a kind of nickname, usually indicating that the person so named is tall. This is the case with Long John Silver.