Even if you didn’t see Suicide Squad, somehow escaped the reviews of it, and also didn’t hear the horror stories about Jared Leto’s Joker, you’d already know that it would never have topped Heath Ledger.
Not only is Ledger’s Joker an iconic performance, his character was also the most perfect antagonist there’s ever been for Batman (or maybe, for any superhero). Lessons from the Screenplay analyses what an antagonist should be and shows how The Dark Knight’s Joker nails it perfectly.
Heath Ledger’s Joker is exceptionally good at attacking Batman’s weakness, rendering Batman’s strength and intimidation useless, as well as using Batman’s moral code (that he can’t kill) against him (because Joker needs to be killed). The Joker also forces Batman to make choices to reveal his true character, while also outsmarting him. This is shown when Batman chose to save Rachel over Harvey Dent, and ended up with Dent anyway.
But the most important thing that makes Joker the ultimate antagonist is that he and Batman want the same thing: Gotham. Batman wants to save it. The Joker wants it to be in chaos.