I've come to realise that the goal of a diff tool isn't to say what's changed. You want it to say what *hasn't* changed.
Unchanged content is crucial for deciding how to group changes into hunks and how to align lines. You need matched content pairs for this.
miniblog.
Related Posts
Difftastic now handles tab characters precisely! This sounds like a small thing, but it's crucial when parsing Makefile syntax.
Makefiles look way better now.
(Technically tabs are also syntactically significant inside string literals, and that case is fixed too.)
One thing I've really come to appreciate from working on type checkers:
There's a crucial difference between the type system and checks you can do on type-inferred code.
E.g. using a bottom type is totally well-typed, but users expect warnings:
x = exit(0);
One crucial skill in programming is knowing how to get answers to small, well defined questions.
When I started writing code I'd sometimes get completely stuck with syntax. These days I'd hop on IRC or Stack Overflow.
When I've been a mentor, I try to show where I get answers.

