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


  • 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?


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

  • How would you interpret usage of this pattern in this article? Is division into the two latter groups just arbitrary? – Vi. Apr 11 '18 at 22:13
  • I wouldn't necessarily say arbitrary - that suggests randomness or personal whim, but I would say that the sorting is subjective. The whole piece is subjective; the writer is giving his take on the experience of using the Go programming language: what's good, what's bad and what's ugly. Another writer would probably allocate the issues differently. As an example, the writer classed the Go variable definition method as bad. I'd have put it in ugly, but there are others that really like it and would have added it to good... – PerryW Apr 12 '18 at 23:29
  • 1
    One of my favorite westerns. Yes, it's fully relevant. And I'm guilty of producing good, bad, and ugly code, as the need requires. – Edwin Buck Oct 10 '19 at 10:48

From the perspective of categorization, there are 4 possibilities: positive, negative, false positive and false negative. We may relate them as positive-good, negative-bad, and false ones-ugly. It's simpler and easier to handle either good or bad. And it's always painful and costly to handle the false ones, be it in the AI scope or in the real world.

  • Could you edit your post to explain a bit more clearly? I'm not sure learners would be able to follow your analogy. Also, how does it relate to the OP? – Em. Nov 1 '19 at 1:49

I think it's a brilliant title or saying. What its original translation or meaning was is not that important to me. In relation to the movie what it says to me is that:

There are good people in the world
There are bad people in the world
but also - and not to be underestimated - there are ugly people.

Good is good, bad is bad, but bad doesn't necessarily have to be ugly.
An exaggerated example is: Robin hood is bad, but he's certainly not ugly, morally speaking.

So the focus is on the ugly... meaning that with the ugly there is no sensible moral or even an endgoal, or greater purpose or meaning, other than just simply to choose the bad path standing for path itself. Which of course is not benificial for any one, and so looks pretty damm ugly and something to stay aware of.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.