8 min read

Why I Disagree With Mike (Livecoding Is Not The Future)

Why I Disagree With Mike (Livecoding Is Not The Future)
This is a photo of Mike's visuals last night. He's added AI assistance to his tool Magpie.

First up: This post is not intended as an attack on Mike, I like him and I respect his opinion, and I really respect the culture of the London? Livecoding? scene which allows me to publicly disagree with people like this without fear of a breach.

But it is funny to call a blogpost "Why I Disagree With Mike". So let's call it that. Even if I ultimately agree with him in spirit.

So what do I disagree with? Here's his recent thread:

The more livecoding I do and the more livecoders I meet the more convinced I am that it’s a key part of the next golden era of public tech, like maybe the most important part? It contains in it all the good parts of “learn to code” with precisely zero of the capitalist/grindset implications.

What you see at livecoding events is more or less exactly what people want to resurrect from the geocities/myspace era, but with the added warmth of local, in-person interaction and care. It’s a lot more than just techno music and JavaScript.

And online experiments like nudel (reisnudel.cc) or flok (flok.cc) somewhat allow people to transmit this to online/distributed spaces too, combined with really open/anarchic/supportive online communities on places like Discord. It's a very special approach to engaging people with technology.

https://bsky.app/profile/mtrc.bsky.social/post/3mn3rjqkgn22h

Why do I disagree with it?

Well, first, I don't think that livecoding and coding have all that much to do with each other. By which I mean, yes, livecoding is a form of coding, but when I am doing livecoding the way I am thinking and the logic that I am doing is very different to when I am doing other types of coding. Livecoding tools, like Strudel or Hydra or Picodevil[1] are to my mind more about configuration than they are about building a larger system. When I am coding I am thinking about defining structures, I am thinking about what to call things, I am inventing concepts and trying to line the natural seam-lines of those concepts up with the problem space, I am interfacing with libraries, I am spending, honestly, most of my time stuck and relatively little time shaping an experience. When I am coding I am, often enough, creating more ergonomic tools which can themselves be used for shaping an experience. And then I stop coding and then I use those tools to create the experience that I want someone to experience.

And when I am livecoding I am instead thinking about the experience. I might, technically, be writing Javascript when I am performing. But really the syntax is the smallest part of it. When I am chaining some things together in Strudel I am doing this to manipulate a pattern of values which is feeding into a sound engine. And I am listening to that sound engine and I am inferring the pattern, and I am making changes to the things I am chaining together to make a change. I often don't entirely know what the outcome of that change will be, although I feel optimistic that it will improve the sound or at least find an interesting place for the sound to go. That's an incredible thing! What a good design, that you can do this. But it's similar to how I feel when I tweak a slider in Panoramical or Epicycles or when I fuck around in VCV Rack.

I am reminded of how, back in the day, I was involved in the scene of people making artistic Twitterbots. And I tried making some of my own but I kept getting caught up in the coding and couldn't focus on actually thinking through the bots from an artistic point of view[2]. And then I made Cheap Bots Done Quick, which was a platform which allowed writing bots without writing code. Well, unless you count Tracery, the grammar language I used at the heart of it, as a kind of code. I guess you can if you like. But the point I'm making is that when I am using Tracery then instead of figuring out how to make it work, and how to structure my code neatly, and all those kinds of organisational thoughts, I instead think about the text I want it to generate, and the quality of the writing, and the shape of the likelihoods. And the control I had was limited (because Tracery is a limited language[3]). But in that limitation I found myself free to think about the outcomes rather than the process.


But I didn't just make this post to make a kind of pedantic argument about what code is. There's another tension that I see within the London Live Coding community. It's between this increasingly nonhierarchical culture, where everyone is an organiser and expertise is repeatedly and explicitly devalued (some mantras repeatedly stated: "energy YES, quality NO" (thx thomas hirschhorn), "forget everything you know", "bad code only", you get the picture). And between the default form of the activity, which is that a subset of people are playing music and other people are listening and maybe dancing.

And I think this is a productive tension? I think that trying to resolve this has led to some exciting places. Like, nudel — nudel was an online editor for livecoding languages which allows lots of people to play together in a shared space, all editing the same code — nudel was a way of flattening out this space, joining the room to listen gives you permission to change the music. Whether it is a small tweak, let's just change this note or this scale. Or maybe you delete a whole chunk of stuff someone else has been working on. Either way, there is a culture of — this action is welcomed. Can I — yes. In fact, you must.

And, in person — the backbone of the London scene is a monthly event called AlgoRhythms. And at AlgoRhythms, there is a piece of paper, and if you write your name down on the piece of paper then you can perform to the crowd. There is no gatekeeping over who is allowed to put their name down on the paper. Whether you started poking at it yesterday or you've been playing for years, in both cases you are equally encouraged to put your name down.

Except that's not really true. Because the piece of paper (the night) is only so long, and there are only so many slots. And people (I am people) encourage more people to come along, and more people to play, and you start to run out of those slots, and you start to add rules — soft rules — about who should put their name down. People who haven't played before, people who didn't get to play the month before, people who feel a little shy. These are good people to prioritise, but you still need to choose someone to prioritise.

I'm going to talk about larp now. Because this is one of the other communities I'm part of. And it has a lot of similar values to the London livecoding scene. It tries to be welcoming. It is built on a basic assumption that no-one is going to make any money. But the default activity of a larp is larping, and the thing about larping is that there is never[4] an audience. To experience a larp means you have to be making the larp. And the experience you experience will be different from everyone else's experience — because you will be interacting with different people, and you will be feeling and thinking things specific to your character. It is an experience which is too large to be understood by any one particular player. This is why larpers are so insufferable after they have larped — there is so much to catch up on, all the experiences they had some hint of but did not experience themselves. They just want to talk about the time they had in the fictional world they were in.

Anyway, let's get back to Mike's posts now. There are more things I want to argue with.

The first is: if you want to do things with "the warmth of local, in-person interaction and care", then there's a whole variety of activities you can do which don't involve looking at your laptop screen[5]. I like technology but also this is very much worth saying. Like maybe larp isn't for you (it probably isn't, just statistically speaking). But there are a lot of things which involve community and don't make any money (this is the "precisely zero of the capitalist/grindset implications" bit).

And the second bit, which I think is more important, is the idea that livecoding is "a key part of the next golden era of public tech, like maybe the most important part?". I already addressed one of the legs of this statement, talking about how I feel that the practice of livecoding is quite distinct from the practice of coding as I understand it. But I think the more important part is that... more than a technology, it is a community. It is a community with specific values, and it is a welcoming community. But it is made of people, and the relations between those people, and a shared understanding held between those people. And as such, I think that it is incredibly unlikely to be a thing which can scale to be several orders of magnitude larger than it currently is.

I don't think that the community is planning for it. I don't think that we have the organisational and cultural strength to do so and to maintain our values. I don't even know if it's a thing that we should aspire towards.

Maybe I'm downplaying the work that is being done to aggressively maintain the current livecoding culture. Right now, if you are active within a larger livecoding scene, especially if you're working on the tools that people use, you probably see a ton of people popping up with AI tools that can generate music for you. And you probably think: this is the opposite of the reason I want to make these tools. And so you might find yourself saying: fuck off ai music. And if enough people say this, friends, they might think it's a movement.

And, again, there are mantras. You have mantras when you are serious about maintaining and building a specific culture. You train up and encourage everyone to be an organiser if you want to be able to survive if the scene suddenly doubled or tripled in size.

I mentioned nudel above, and Mike mentioned it in his original posts. He linked to https://reisnudel.cc/ — but the version I linked to was the original https://nudel.cc/. That original instance is now closed. Why? Well, it's complicated, as these things always are, but I think a reasonable summary is that people started using it who had a different culture to the people who had started the space. Who were core to the community that was focused there. And rather than continue to host it as the culture diverged from the culture that they cared about and wanted to encourage, they would rather close it down.

I think this is an example of — there are many things you can do to prepare for a community and a culture you love expanding rapidly. If you care more for the values of the community than the size of it. But one of the main things you can do is to shut it down, if you feel like it is not expressing the values that you want it to. There is a limit to how big you can get in a short space of time while still retaining the same culture. Technology can scale but community can't. And the magic of the livecoding community that me and Mike are in is more in the culture than it is in the technology.

I see Mike's wish for a new era of public tech and open creative code. But I also think that wish, if turned upon the community that we're part of, would be more like a curse.


  1. What's Picodevil? You'll find out soon. ↩︎

  2. Artistic here might mean making a dumb joke ↩︎

  3. Quite explicitly! I don't think it's actually Turing complete, although I do not care enough about this footnote to research whether it's a context-free grammar or which features push it up a complexity class. I think they are features rarely used in practice, though. ↩︎

  4. As with all definitive statements, this is wrong, although it is directionally useful ↩︎

  5. Last night, at the end of AlgoRhythms, there was a magical moment. Lu got on the mic and started singing about how people are the important thing, we don't need laptops. And then I got hold of the mic and sang, yes, people are important, but look at us here with our projectors and laptops and mixers and cables and microphones. And then we both sang about bad code only. Then other people sang. Ah, I should really sing more. It's so good. ↩︎