Steve Wozniak is not boring
github.com
github.com
This is a random name generator that pairs adjectives with names (e.g. "angry_einstein").
In the unlikely chance the generator returns the pair "boring_wozniak", it discards it and generates another name.
In this particular case I think a goto fits the bill.
goto generally becomes a problem when suddenly everything is short-circuiting everywhere and you can't see where control's getting passed off to.
https://github.com/dotcloud/docker/search?q=goto&ref=cmdform
https://github.com/hashicorp/serf/search?q=goto&ref=cmdform
https://github.com/skynetservices/skydns/search?q=goto&ref=c...
https://github.com/calmh/syncthing/search?q=goto&ref=cmdform
https://github.com/juju/juju/search?q=goto&ref=cmdform
EDIT: formatting
They have their use cases, and this code seems like a fine use of it. Goto is taught as one of those things you should never use but it still has a purpose. If you look at any C code goto still used. You just have to make sure not to overuse it.