Re:Steve Wozniak is not boring
by Amezarak on Saturday June 07, 2014 @09:54PM
(#7863720)
Why? To be sure they should be used sparingly, but it looks it makes enough sense in this particular case and isn't single-handedly going to cause any spaghetti-code problems.
In this particular case I think a goto fits the bill.
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.
Re:Steve Wozniak is not boring
by rgawdzik on Saturday June 07, 2014 @10:05PM
(#7863745)
All tools can be misused. Goto has a dark past, but it can still be used responsibly. It's almost like generalizing a concept like OOP to be bad because horrible code can be made with it.
Re:Steve Wozniak is not boring
by mholt on Saturday June 07, 2014 @10:06PM
(#7863749)
Sure. This is a fair use case. Kind of makes more sense than a full while loop, especially since the case is only likely to occur at most once per call to GetRandomName().
Re:Steve Wozniak is not boring
by klodolph on Saturday June 07, 2014 @10:05PM
(#7863746)
PRNGs don't work that way. They have periods over which all possible output values are produced, close to an equal number of times. Even when producing tuples, we know that this won't loop forever.
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.
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
In this particular case I think a goto fits the bill.
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.
goto generally becomes a problem when suddenly everything is short-circuiting everywhere and you can't see where control's getting passed off to.