What's the difference between Ruby's dup and clone methods? describes the difference in the behavior of dup and clone. But when should I use dup, and when should I use clone instead?
Examples from actual projects which discuss why they used dup rather than clone, or vice versa, would be ideal for this question.
Alternatively, an explanation of why the two different methods exist would be helpful. This could refer to statements from the creators of Ruby, or an examination of methods like dup and clone in languages that influenced Ruby.