This is inexcusable, considering the vast economic cost of debugging and emotional toll buggy software takes on users and programmers. Today's commercial programming environments provide debugging tools that are little better than the tools that came with programming environments thirty years ago. We can do much better. Programs are complex artifacts, and debugging is often a struggle against complexity. Let's make the computer take an active role in helping the programmer deal with complexity.
Computers are now fast and have large memories and disks.
Let's use some of that speed and storage to process information that the programmer needs to understand what's going on in the program. Computers now have beautiful color screens and fast graphics. Let's use those graphics to help the programmer visualize the behavior of the program. We now understand user interfaces and the programming process much better than we used to. Let's use some of that understanding to help programmers with the cognitive task of relating the static description embodied in the code to the dynamic behavior of the program.