On the early metaphors that drove the original development of Unix: https://zge.us.to/txt/unix-harmful.html
(Lots of typewriter influence, and amazingly the first versions did not have a notion of pipes!)
miniblog.
Related Posts
tree-sitter has been amazingly successful at getting developer tools to work together.
Neovim has a bunch of people contributing to parsers when they notice highlighting issues. That benefits the whole ecosystem: semgrep, difftastic, even Emacs!
It's amazingly awkward to print a syntactic diff correctly. Even the lines before and after the changes may not line up, if whitespace has changed!
Difftastic now inserts blank lines to help things line up. I'm reasonably happy with the result here.
Difftastic update: I've rewritten the tree diffing logic to use Dijkstra's algorithm similar to Autochrome.
It works amazingly well! Note how it recognises both parent and children unchanged nodes in the lisp example. You can even see me refactoring Rust to use if-let.




