5 ms·
Only using visual development exacerbates traceability and verifiability though. Reviewing "code" is hard if there is none. For example I have yet to see a goo
by yoz-y 9y ago
Only using visual development exacerbates traceability and verifiability though. Reviewing "code" is hard if there is none.
For example I have yet to see a good way to visually diff graphs.
- yorwba 9y agoText diffs are usually shown by displaying added parts in green and removed parts in red while including surrounding context in a neutral color. You can do exactly the same thing for graphs.
- yoz-y 9y agoYou can, but I have not seen tools that actually do. My issue is that I develop a graphical node-based programming language and I'd like to be able to see diffs. I thought that I could convert our format into some other form and use a diff tool for that format.
- yorwba 9y agoRight, the problem with developing a completely new programming language is that you need to also create new support tooling for all the ways in which it is different. That's one of the reasons most programming languages are so similar: it's just less work that way. If you use text as a storage medium, you can reuse diff, grep, sed and other text-based tools. They won't be perfectly adapted to the language semantics, but good enough. Debugging with gdb is a similar situation: if you include DWARF in compiled binaries it works, otherwise your language needs its own debugger. I think the best thing you could do is to convert your graph into some common format like dot and create a generic diff tool for that format to make it easier for the next person with similar needs.
- yoz-y 9y agoWe are using xml underneath, the problem is that since the graph can be cyclical the nodes and links are in separate lists, which makes a standard diff quite a poor tool. As you say, converting to dot and making a tool for that is probably the way to go. I was just hoping that I could do just the first step. I was thinking about SVG as well, but in that case the diff would have to be very specifically tailored and not much of a reusable brick.