Hacker News new | ask | show | jobs
by j88439h84 2578 days ago
I just watched your talk, and found it very interesting, thanks for sharing it!

I hope you can do the data flow analysis. That would be so cool and SO useful.

Python certainly has the ability to collect the data. A couple existing tools make use of this.

For example, MonkeyType and Birdseye observe the values that are passed around by tracing execution during test runs (or even during a production run, but the performance impact can be substantial). https://github.com/Instagram/MonkeyType https://github.com/alexmojaki/birdseye

Even more information can be gleaned from the gc module (see https://mg.pov.lt/objgraph/ for a tool using it).

These tools make good progress, but I'd be very interested to see what a software-visualization expert would come up with.

I'd also love to see how a concurrent execution tree can be visualized. For example, the wonderful Trio concurrency library is built on a tree of concurrent tasks. It would be so cool to see which events are happening at the same time. I've never seen a visualization of how it'd work. (The Trio team is also extremely friendly on their Gitter chat.) https://github.com/python-trio/trio

Structured logging is yet another exciting area. Can we generate visualizations from logs in OpenTracing/OpenCensus format? Some existing work is https://github.com/jonathanj/eliottree

Gary Bernhardt's "A whole new world" talk https://www.destroyallsoftware.com/talks/a-whole-new-world proposes extracting data from logs and highlighting important lines from tracebacks and and slow lines from trace timings in the editor.

I haven't used Structurizr, but it seems interesting. Do you have thoughts on it? https://structurizr.com/ has a python port at https://github.com/sixty-north/structurizr-python