I enjoy a good critique.
I follow a few dozen reviewers and video essayists on YouTube — Jacob Geller, Contrapoints, Dunkey, and a bunch of up-and-comers. I listen to artless tech podcasts that gush over Apple. I read Pitchfork and Polygon. So, I’m not ashamed to admit, I enjoy a bland critique too. There’s something about a review — a critical assessment — that I find compelling.
I’m going to write my way through figuring out what that is, and then try to figure out what that might look like for programming tools.
In pop culture, reviews of games and music and movies are often two things.
- A buying guide telling you what’s worth your time and money.
- A rallying point for mass culture, signifying which things are canonically cool and good.
But criticism sometimes aspires to more:
- What movement or moment does this work belong to, and what’s it all about?
- How are appetites changing? How is the world changing?
- What’s the point of criticism, and the relation between the creator, the audience, and the critic?
I’m on a criticism kick. Here’s
A critic’s task is revelation. To reveal something about the game, something about the player, something about the world outside the game. Can be hidden or obvious. Something profound. It should be uncomfortable. Not just “that’s different”, but estranging, defamiliarizing, disorienting.
I appreciate criticism — cherish it — because it feels like my inner monologue. I feel an expanded sense of self when I read certain critics. I think it’s because I fancy myself an artist in almost everything I do.
When I’m listening to an album, I’m reacting to the composition and recording with both eyes on craft: could I have made this, how would I have made it differently, what’s working about how they did it, what’s not, why not, why didn’t or couldn’t they do it differently, but are they getting what they wanted… and am I?
When I watch a movie, I imagine myself pitching a script, or moving the camera, or reserving a backlot, or negotiating with a distributor, or testing the color grade. Every end credit was a person who did a job, and they somehow got that job, and what would I need to do to get that job, and what would it feel like to do that work?
I love reviews. I love putting a number on a work of art. When you frame it so reductively, it’s absurd. But I think there’s a yearning behind that number. “Can we enjoy this together?” ask both the reviewer and the reader.
But reviews do more than create these parasocial bonds and shape the culture (and spending). Reviews give the creator a superpower — that expanded sense of self, or that part of the self that’s constantly asking “how would I do this?”
The review lets me step outside my own analytical mind and adopt someone else’s. They show me what I missed. I learn how to better look at all the art in the world. Including my own.
When I make a programming tool… (if I make a programming tool)… I don’t know how to make it any good. When I talk to other programming tool makers, they mostly don’t know how to make them any good. We’re all stabbing in the dark.
First: what does “good” mean? It’s easy to talk about what makes a good game, album, or movie. First, you say what you like, then you say whether it does that. I like systemic “thinky” games. I get my kicks from cracking an elegantly crafted puzzle that emerges from some deceptively simple ruleset. I loved Stephen’s Sausage Roll. I revelled in the agony of playing it through to the end, which took me an entire year. I’m glad Stephen Lavelle made it, and that other people loved or hated it, and that we could all talk about what it did to reshape the culture of puzzle games and turn us all into sokoban sickos.
What makes a good programming tool?
- I can get a job doing it.
- It works with my other tools.
- It makes me a better programmer.
- It allows me to express my intent.
- It helps me make the things I want to make.
- I enjoy working with it.
None of these satisfy.
The first few are about how the tool slots in to your life. They assuming the framing of programming as a job. The programming tool is a means to an end.
Music, movies, and games are a means to an end too. I know a lot of people who prefer instrumental music because it doesn’t distract them. I know people who like movies with an engaging story or world they can get wrapped up in. It sometimes feels like every game is an escapist fantasy, whether it’s some visceral shooter or cozy fishing & farming life sim or daily crossword or hoard mode multiplayer hangout with friends. You hire these works of art to do a job for you. I do too.
The later few are better. I’m not sure what it means to “express my intent”, but that’s something programmers say all the time. I think my intent is to be surprised because I made something beautiful, so no surprise that this itch isn’t scratched by datalog, tailwind, racket, pytorch, html, tcl, svelte, guix, grails, typescript, or emacs.
What tools do I enjoy working with? How do they help me make the things I want to make? Getting warmer. But I’d like to go further, off this end of the scale.
- I enjoy talking to other people about it.
- It changes the sort of things I want to make.
- It helps me understand myself, my friends and family, or my place in the world.
- It is art.