Hacker News new | ask | show | jobs
by westoncb 3951 days ago
Unfortunately I haven't really written on the ideas behind it, though I probably will soon. A couple people asked me to submit it to the 'Future Programming Workshop,' so I was thinking of putting together some kind of writeup—but I had no money to attend.

The main idea was to display a running program's state at the same level of abstraction at which programmers think about their programs. I often found myself writing 'one off' visualizations of data structures for complex pieces of code; this was an attempt at a general solution: it would be able to render all of the different (visual) classes of data structures—the programmer would just need to say which of their data structures should be 'monitored.'

1 comments

I would've enjoyed reading more about your approach seeing as it seems to be very alike to what I wanted to try and solve. I wanted to, similar to what you describe, be able to visualize the program's data structures as I visualize them in my head avoiding writing one-off, text-based, sub-optimal printing code.

I'm still interested in the idea (i.e. visualizing a program by its state) although I fear it may not be practical for non-trivial programs with complex, large and rapidly changing data structures.

It remains to be tested, but I'm pretty confident it will work for this—in a significant proportion of cases. You'd only visualize a few data structures at a time, most likely; there are controls like fast forward/rewind and a progress bar, and stepping one operation at a time; and you can just let it run on the side with the self-navigating camera for an extended period of time, and maybe you catch an anomaly. For applications where you're operating on data structures with millions of elements or whatever, you might need to artificially restrict the amount of data for testing—but that's reasonable to do most of the time. There are also controls you can't see that make hierarchically navigating from groups of data structures to single data structures to single elements, easy.

I think you're one of the few people I've come across who seems to get what it's for at all :D

I'm inclined to agree, I think it should work for most basic types using controls for forward/rewind and optionally only looking at a subset of the data.

A potential problem with visualizing more complex structures may be that people's mental representations for them probably differ, making it really hard to offer a visualization that maps to each person's mental model of each specific (complex) data structure.

What do you mean by: "There are also controls you can't see that make hierarchically navigating from groups of data structures to single data structures to single elements, easy."?

I'm happy we came across then! I find this type of visualiation to be intriguing, and I may give it a stab in the future.

We should definitely keep in touch.

Did you look for any similar software before you started building? Did you find anything?
I didn't beforehand, thinking if there were something for production purposes rather than being purely academic, I'd know about it. I looked later, though, and couldn't find anything. Btw, you can reach me whenever at westoncb[at Google's mail service]