Historical Code Hermeneutics
In the past few months I have been engaging in the exegesis of source code from the 1980ies and -90ies. Serendipity towards the end of last year brought me in closer contact with the concept of ludemes, in which I found a fitting perspective on these magic moments of translation. David M. Berry outlines this processes through the computational image, Hartmut Rosa approaches it through his theories on resonance, Karen Barad talks about inter- and intra-actions, and Luhman also has an opinion on the topic. Either way, ludemes have been utterly fruitful in reading source code against a techno-deterministic grain, and as a lens into programming practices of the past.
During deep diving older source code and solidifying my understanding of the area in the last six months, I partook in two conferences, co-authored two anthology chapters, and re-discovered a crucial read on my pile of shame1. I also had to acknowledge the niche position that I manoeuvred myself in.
Context
For the annual gathering of the German-speaking digital humanities DHd 2025 in Bielefeld I organized a workshop on approaching critical code studies through computational methodologies2, and how we can ask code questions from a humanities’ perspective. And, at the Born-Digital Collection, Archives, and Memories 2025 in London I presented a paper on preserving programming practices3.
The workshop grew out of the friction between technical and humanistic approaches to studying older source code. Whereas the former is too often concerned with the history of technology itself4, the latter often is reduced to scratching the surface, due to a lack of know-how. The underlying question then was what kind of methodologies and tools can aid to overcome this problem. The workshop’s material is published under 10.5281/zenodo.15496714.
My presentation at BDCAM25, on the other hand, concentrated on my personal perspective to researching programming practices of the past. My point was, that we cannot just preserve the source code if we follow a critical code studies approach. We need to work source code as the result of a situated practice. Which is to say that there were people programming that source code, people that were embodied and embedded in specific sociocultural situations.
Finally, I acquired the book Quellcodekritik the moment it got published last year, but have had it sitting on a pile ever since. Until last month, when packing for London, and searching for a read on the train. What a pleasant surprise and what a missing out! I really could have used some of the texts in the anthology for the workshop in Bielefeld, especially those on how to read 100’000 lines of code and programming as a cultural technique. The texts by Heilmann and Krajewski partially tackled the problem-space that I acknowledged with my workshop at the DHd 2025.
Takeaways
Reading Heilmann’s tutorial-ish text on how to approach a
large code base through common shell commands (ls
,
grep
, sed
, awk
, and
cloc
) finally let me realise a smouldering hunch I
had since the two conferences. Both, the largest gathering of
digital humanities people in the German-speaking countries, and
a large conference on born-digital artefacts, were prime
situations where I should meet peers that I can discuss
researching historical source code. It would seem so, wouldn’t
it?
At the DHd I was able to engage with three people in depth, two of which I already know. During BDCAM there was mostly just one person that was interested in the topic, and I knew them as well already. I had doubts about my ability to convey my interests, at first, and then guessed these people must be found somewhere else. Heilmann initially outlines that critical code studies’s case studies are often limited in scope, the problem being an inability to capture and analyse underlying or larger structures and a lack of technical skills.
“Computerprogramme sind in formalen, nicht in sogenannten natürlichen Sprachen geschrieben. Auch ist ihr Aufbau mit Kontrollstrukturen wie Verzweigungen und Schleifen oder mit objektorientierter Modellierung in aller Regel nicht linear zu erfassen. Bereits bei wenigen Hundert Zeilen verliert man schnell den Überblick. Das Problem verschärft sich noch, wenn bei der Autor:innen- wie der Leser:innenschaft nur rudimentäre oder überhaupt keine praktischen Programmierkenntnisse vorhanden sind. Es überrascht daher nicht, dass viele Analysen in den CCS oft nicht kommerzielle oder nicht professionelle kleine Software betreffen, nicht selten auch künstlerische Projekte und damit Code, der wenigstens teilweise geschrieben wurde, um als Code gelesen (und nicht nur ausgeführt) zu werden. Wollen die CCS aber die kulturelle Prägung und Wirksamkeit von Software im gesellschaftlichen Maßstab untersuchen, dann haben sie sich mit Code auseinanderzusetzen, der in den entsprechenden Größenordnungen produktiv ist.” (“Quellcodekritik: zur Philologie von Algorithmen”, 2024, p. 87)
Which brings me back to why I initiated that workshop at the DHd. What dawned on me is that there is most likely only a small number of researchers that are capable of approaching source code through profound technical expertise, a humanistic perspective and being investigating in source code of the digital past. So that’s that. Most probably I advanced in my specific research niche far enough to a point, where I will not meet many others. I’m envisioning a future where I have a small forgotten office in the last corner of a university, studying dead programming languages, being branded as a sympathetic academic weirdo and having my peace.
Hermeneutics?
So what is this thing I’m doing right now anyway? Code archaeology sounds too much like digging. It feels more like exegesis. At one point of mapping, analysing and comparing the code base of a game and its port from 30 years later, I felt like interpreting star constellations. Speleology is also a term that I favour, since Mário Gomes used it in a talk on the game Colossal Cave Adventure. For now, I go with Historical Code Hermeneutics, the interpretation of source code of the past.
Further
All this pondering led to a few notes regarding engaging source code from a researcherly perspective.
- Critical Code Studies
- Critically Reading Source Code
- Close Reading Source Code
- Read 100’000 lines of code
- Literate Programming
- Write Literate Programming Code
I was also able to work on many of these thoughts and approaches through co-authoring two anthology chapters, both with dear colleagues. The first text, with Pierre-Yves Hurel, concentrates on the entanglements of local demoscenes and the history of video game development. The collaboration was inspiring and so fruitful, that we ended up with twice the maximum word count, essentially having two articles on our hands. With Arno Görgen we engaged Hartmut Rosa’s theory of resonance in video games through Luhman’s system theories, Karen Barad’s neo-materialism and, of course, ludemes (after Hansen and Hurel), and a case study on the game The Exit 8. What a wild ride!
This month, Emahoy Tsegué-Maryam Guèbrou supported my listening journey and luckily NTS just released a special on her and her music.
References
Bajohr, Hannes, and Markus Krajewski, eds. Quellcodekritik: zur Philologie von Algorithmen. Erste Auflage. August Akademie. Berlin: August Verlag, 2024.
Cheng, Tsuo-Yu. “On the Quadrants of the Thing-World Relations: A Critical Revision of Hartmut Rosa’s Resonance Theory in Terms of Thing-World.” The Journal of Chinese Sociology 10, no. 1 (May 22, 2023): 11. https://doi.org/10.1186/s40711-023-00191-8.
Hansen, Damien. Parler le jeu vidéo : Le ludème comme unité minimale d’une grammaire vidéoludique ? Parler le jeu vidéo : Le ludème comme unité minimale d’une grammaire vidéoludique ? Culture contemporaine. Liège: Presses universitaires de Liège, 2023. https://books.openedition.org/pulg/18941.
Heilmann, Till A. “Wie liest man 100’000 Zeilen Code?” In Quellcodekritik: zur Philologie von Algorithmen, edited by Hannes Bajohr and Markus Krajewski, Erste Auflage., 87–126. August Akademie. Berlin: August Verlag, 2024.
Hurel, Pierre-Yves. “L’expérience de création de jeux vidéo en amateur - Travailler son goût pour l’incertitude.” ULiège - Université de Liège, Liège, Belgium, 2020. https://orbi.uliege.be/handle/2268/247377.
Krajewski, Markus. “Kulturtechnik Programmieren. Quellcode kritisieren. Drei Beispielszenarien.” In Quellcodekritik: zur Philologie von Algorithmen, edited by Hannes Bajohr and Markus Krajewski, Erste Auflage., 63–86. August Akademie. Berlin: August Verlag, 2024.
Running under “Quellcodekritik aus der Ferne - Distant Viewing und kritische Analyse von Quellcode”↩︎
The title was “Preserving Situated Practices - Tracing 1980ies home brew video game programming practices”, hinting at Haraway’s “Situated Knowledges”↩︎
…and leaving out social and praxeological aspects↩︎