Two and a half years ago I blogged about diffing program structure changes. Since then I learned about a fantastic new diffing tool, called (very appropriately) Difftastic, by Wilfred Hughes, the author of many great Emacs packages I will definitely blog about some day.
The greatest thing about Difftastic is that it parses your files and compares the ASTs, not the text. This means that it is able to disregard meaningless changes (mostly whitespace). Even better, since it highlights the changes, it is smart enough to e.g. highlight the correct delimiter when you surround some code with a block, for example. Head on to its manual page to see great examples; I will just finish with the Difftastic output for the same files I mentioned previously.