A hypothesis: for live programming to scale beyond toy programs, generic low-level visualizations aren't enough. Instead, we need Live Literate Programming: better tools for creating *program-specific* views, which communicate our higher-level understanding.
-
Show this thread
-
Replying to @geoffreylitt
Bearish on program visualization right now. People have been trying to vis code for half a century, and nothing has worked. All we have are Doxygen inheritance diagrams. My guess: without a more principled understanding of program comprehension, we can't build effective vis.
3 replies 2 retweets 10 likes -
Replying to @wcrichton @geoffreylitt
I /think/ when you say "program vis" and "program comprehension", you refer to a globally-applicable, automatic process. Is that right? If so: That seems like a big assumption, when "program vis" could instead be a (fractally-automatable) crafting process like programming is now.
1 reply 3 retweets 1 like -
Replying to @qualmist @geoffreylitt
Will Crichton Retweeted Will Crichton
I am imagining a generic system, but generic != fully automated. e.g. data vis has a grammar of graphics that enables rapid construction of novel vis types. Today, all program vis just starts w/ standard web tools or canvas.https://twitter.com/wcrichton/status/1253758394982256640 …
Will Crichton added,
Will Crichton @wcrichtonReplying to @geoffreylittI think those are great! There are many good bespoke program visualizations, Learnable Programming being a classic example. I'm more questioning the viability of *generic* program visualization. I recommend this paper: Steve Reiss, “The Paradox of Software Visualization.” 20051 reply 2 retweets 2 likes -
Replying to @wcrichton @qualmist
Yeah, grammar of graphics for program state viz is kinda what I imagine we need
1 reply 1 retweet 6 likes -
Replying to @geoffreylitt @wcrichton
I think that's a very interesting prompt! Just wanna note a difference between the situations. For data vis, the data is given and you need to visualize it. For program vis, you can change programming itself. Prog&vis could be intertwined in a way not represented by GoG analogy.
1 reply 0 retweets 3 likes -
Replying to @qualmist @wcrichton
btw, this paper by
@janehoffswell@arvindsatya1 is the closest thing i've seen to a "GoG for debugging"... interesting to consider how the ideas extend to other domains. i think 1) less numeric data, 2) complex nested objects are important http://vis.csail.mit.edu/pubs/insitu-vis-debugging …pic.twitter.com/WUW1nEPKu9
2 replies 3 retweets 10 likes -
Replying to @geoffreylitt @qualmist and
I think about debugging as "how can vis replace my printfs?" Two interesting areas: - Managing system complexity: a map that's zoomable, only shows landmarks relevant to my current problem - Managing change over time: a vis that summarizes runtime info, not only single slices
1 reply 1 retweet 5 likes
For the former, @hydrosquall has a great talk on maps for code: https://www.youtube.com/watch?v=SbreAPNmZOk …
For the latter, I've been working on a tool to apply compiler optimizations using runtime data to source code:https://github.com/willcrichton/inliner …
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.
cognitive psychology. PhD