Code review feels so unnatural because I'm trying to understand a directed graph of causal changes that has been projected into a linked list. Reviewing commit-by-commit helps somewhat, but commits are often still too discrete/coarse.
Conversation
Most changes don't form a tidy linear narrative, but they do have structure (e.g. adding a variant to this type requires adding a case to these functions; dispersing this logic across if-checks obsoletes this function call). But two-column interfaces collapse all of this!
5
22
yeah I was just thinking about how we might do this better. some sort of automatically generated code tour / edit action replay, but with dead ends and debugging summarized out by default. author could even annotate these tours.
1
and also some sort of zoom where you can get more details, e.g. "added new argument to f" can be opened up into all the individual places where the new argument was added...
2
yes, I also think refactoring should be tactile in a structured editor. zoom out, move your modules around in a 2D plane, zoom in on one, highlight an expression, drag it to another module, provisionally drop it in place and go stitch it together later
2
4
I think 2D planar code layout has more wow factor than practical utility. my experience with box and arrow dataflow systems like puredata is that it just forces you to spend time fiddling with awkward layout refactorings when you run out of space...
2
1
Re. planar stuff, I kind of wish I could flip between 2d and tree/list/tabled views of code and data structures as needed. And have these different views interwoven together. Kind of like how in Alfa you can have natural deduction mixed in with regular terms:
2
2
Like regular, inline terms are great for compactness (a good thing!), at the expense of being able to see the dependency graph, and being able to visualise things like cycles, and seeing when you are making spaghetti definitions. Would be cool if you could get the best of both.


