Other nice gui options are kdiff3 (oss) and Beyond Compare (paid commercial license.) In GUI-land I tend to alternate between those and meld based on the use case. They tend to have largely overlapping functionality, but I think each has its own strengths.
In the CLI space, some other options worth thinking about are: Using git-diff directly (you can use it as a standalone tool without a git repo with the --no-index option) specifically for its patience and histogram algorithms, which give far more readable diffs for many common types of code movement. diffoscope provides lots of support for recursively descending into various types of archive and container files, and can work alongside binwalk to compare disk and firmware images. difftastic is nice if you're using working with programming language files that have a treesitter grammar, as it will actually parse and understand the code at a structural level, and produce a more "syntactic" diff that reflects the structure of the language, rather than just a textual one.