Hi!
JACK is quite easy to explain: It is derived from Jan-kin, a pet form of
Jan (a common form of
John used in many countries), Jankin became Jackin, later the -in was dropped.
Now
CHUCK, according to Hanks & Hodges '92, is not originally a pet form of
Charles: "It derives from the English term of endearment, itself probably from Middle English chukken = to cluck (of imitativ e origin)."
A lot of nicknames were created by children, some by reduplication (such as
Mimi for
Miriam or
Maria), others just in some fancyful way beyond explanation (
Polly for
Mary). I guess misunderstanding is also a very common source of new creations.
Andy