2 ms·
"a debugger becomes even more obsolete and cumbersome" I'm struck by the analogy that I entered the programming game juuuust after front panels went away from
by VLM 11y ago
"a debugger becomes even more obsolete and cumbersome"
I'm struck by the analogy that I entered the programming game juuuust after front panels went away from minis, a long time ago, and there was much crying about how the programming world really needs front panels to debug code at that time. Nobody demands a front panel to debug code now, of course.
Anyway my point is I wonder if something better than a debugger will ever evolve. Much like front panels were replaced by technology or were no longer relevant for the task. A smart AI agent providing advice? Crowd sourced code reviews? Maybe nothing at all, unfortunately.
- edejong 11y agoA debugger shows you only one trace through your code at a time. You want to see most, if not all traces and prohibit any illegal state. Since we humans are quite limited to comprehend this multi-dimensional arena, we need to use some proof system to help us out. For example, static code analysis, type systems (static typing) or even formal proof assistants. All of these are readily available. Another thing to realise is: a debugger works fundamentally on the sequential composition operator (putting instructions or statements after each other). We have to realise that the composition operator is very complex, hard to reason about and difficult to abstract (it's why modern build tools use a dependency graph and no shell scripts). As such, we should prefer other compositions in order to have correctness flow from our design, instead of our debugging cycles.