Someone reached out to ask me for more thoughts about communicating programming ideas through media other than the academic paper. I wrote a reply, and then decided it would be worth sharing here to see if other folks have their own inspirations they'd like to share, or ideas for how our industry can go
paper-free ;)
---
I feel like I owe reading an apology. I certainly try to play up my "crank" side on the podcast, but it does run the risk of mixing-up
this is being silly with
this is thoughtful critique.
I have tremendous reverence for the communicative potential of the written word. I just think there are some kinds of ideas that lend themselves better to other forms of expression, or some ideas that can't be written down.
For instance, it's very strange to me whenever I read a paper about HCI, especially if they're discussing GUI ideas. Sure, often these papers will be accompanied by a video. But, like, the work being described is about
interacting with interfaces. I think the work should be presented as an interface you can interact with!
I'm especially fond of
Bret's essays, naturally.
Bartosz also does great work with visualization, though I feel like he leans a little too heavily on text and that the visualizations are too linear.
Amit also does excellent work, but he has the advantage that most of the things he demos are inherently about interactive graphics so they lend themselves naturally to this sort of presentation (not to diminish the incredible effort Amit puts in to these articles).
The thing I want to see more of is… people finding ideas that can
only be expressed through interaction. I think successfully achieving this requires that someone work natively in interaction, a lot, for a long time. As a result, most of these ideas seem to emerge in the periphery of video games.
One of my favourite examples is
Dys4ia, a collection of microgames about the trans experience. It uses written language and (meaningfully crude) visual art to set up the
plot, but interaction to tell the
story.
Something I'm very interested in seeing (and have made a few attempts at myself, but nothing worth sharing) is an attempt to create a fully-usable programming environment
presented as a game specifically for the purpose of communicating ideas about programming. There've been plenty of the inverse, where a programming system is the setting within which a game takes place (see all the works of
Zachtronics, for instance), but I haven't seen anyone do a game as the setting within which actual programming takes place. Closest to that might be something like Minecraft or Dreams (etc), but I don't think those were designed to communicate ideas about programming the way, say, The Witness was designed to communicate a philosophy of science.
Another close comparison might be Advent of Code, where you playfully approach programming differently than in your normal work. The programming you do for AoC should feel meaningfully different. Similarly, imagine building your own Rosetta Code from scratch. That should give you a really particular feeling. I think it's related to, say, the feeling of writing a rasterizer for the dozenth time. I think these feelings are ideas, and that there's a whole language of them, and that the language is expressed through the creation of systems. I think if we studied this language, it would guide us toward building different kinds of tools.
And hell, you might eventually be able to write a paper about that. (Countdown to someone arguing that this is what Christopher Alexander has made a career of, in a sense.) But I don't think we will arrive at those system-feeling ideas in any way other than by building and playing with systems, and with a particular intention at that.