Time travel features in languages

One of the hardest things in making graphical interactive products for wide distribution is how to handle the bug reports from users. They might be on an iPad or a mobile phone or a PC, and when are using your product, they might encounter a bug, or some visual glitch. How does one generate bug reports but more importantly, if you receive a bug report, what are the chances you can quickly recreate the exact conditions that caused the error in the first place? It could depend on the exact sequence of steps the user followed in their operation, but might also depend on screen resolution, or time of day, or the condition of the network. etc.

So as to make program as close to 100% repeatable as possible is one of my goals in my Beads transpiler, which dares to compete against the mighty Microsoft empire. Anyway this is a screenshot of what i call a “black box” file that stores the state of the program, and lets you re-animate the history of the UI and the state of the system from a bug report. The beauty of this particular method is the blackbox files are tiny (in this example 6 kilobytes only). I predict this type of feature will be very common in the future, as there are hundreds of thousands of unsolved bugs in all the big products which will never get fixed. The animated GIF