The only purpose I can see for a goto (that was a long thread - very good, though) is from my experience in assembly. Essentially a jmp instruction is an unconditional jump to another section of code. That is pretty much what a goto is, even though they can be conditional. But, in high-level languages that I have experience in (my disclaimer), I cannot see a need for a goto.