Learn English – the meaning of “A is the good, B is the bad and C is the ugly”

idiomsmeaningphrase-meaning

If A is the good, B is the bad and C is the ugly, what does this statement imply? That:

  • C is even worse than B
  • C is something intermediate, not good, not bad
  • C is "outside of the box" and can't be measured on A — B scale
  • C is good, but low on aesthetics ("ugly"), which lowers its value
  • C is not just bad, but also unbeautiful, which makes it even worse than B

Examples

  • The one that triggered that question (link):

    In a good world, this implies that we can effectively find a canonical form. In a bad world, this does not even imply that we can effectively find graph ids. In an ugly world, it implies that there are graph ids in FP, but none of these are of the canonical form kind.

    Here I suppose it means "between good and bad".

  • The place where I first saw these words together, the GStreamer documentation:

    gst-plugins-good a set of good-quality plug-ins under our preferred license, LGPL
    gst-plugins-bad a set of plug-ins that need more quality, testing or documentation
    gst-plugins-ugly a set of good-quality plug-ins that might pose distribution problems

    Here I suppose it's "not on the good-bad scale".

  • Go: the Good, the Bad and the Ugly

    The Good

    • Go is easy to learn…

    The Bad

    • Go ignored advances in modern language design…

    The Ugly

    • The dependency management nightmare…

    Does it actually correspond to "good", "medium", "bad" here? Or is the division into "bad" and "ugly" simply arbitrary?

Best Answer

The reference is from the Sergio Leone western 'The good, the bad and the ugly'.

First, as we are the eternal pedants here, it should be remembered that the Italian title was 'Il buono, il brutto, il cattivo'. Now, I'm not going to claim to be a fluent Italian speaker but that's not quite the same thing at all - see here.

However, it's the English translation that has gained traction as an expression. So, in the context of the film:

The Good: The Man with No Name. The hero played by Clint Eastwood

The Bad: Angel Eyes. The bad guy, a killer played by Lee Van Cleef

The Ugly: Tuco. Played by Eli Wallach, certainly no good guy, a crook and probably a nasty piece of work, but a sympathetic character, a likable rogue and comic relief. Probably redeemable in the end.

And that 'lesser evil' is, I think, the key to this usage.

Going back to the OP's context, one of software (an area where I'm on firmer ground), this trinity works well, it's something that we often see:

  • Good code, that we all aspire to, well written, well documented and error-free;
  • Bad code, that either doesn't work or causes more problems than it solves; and
  • Ugly code, the hurried hack that fixes the problem and gets rolled out to meet time and budget but that no-one is proud of.

There's a lot of ugly code out there

Related Topic