<Feeling of Computing • Episode 78 • Let's Take Es...
# share-your-work
i
Feeling of Computing • Episode 78 • Let's Take Esoteric Programming Languages Seriously One of the biggest goals of this show — our raisin detour, if you will — is to encourage people to look at computer programming differently. It’s not just a job, or a way to make the computer do what you want. Code isn’t just the material you sculpt into apps and games and websites. The very act of programming itself, and the languages we make and use to do that programming, reflect who we are as people. Programming languages say something. Esolangs — esoteric programming languages — are programming languages created for these more self-reflective purposes. To some, they’re defined by what they’re not: not for serious use, not for education, not for efficiency. To others, they’re a bunch of funny jokes that people can commiserate through after suffering the steep learning curve of becoming a programmer. A few find in them an opportunity to explore strange computational models, or baffling syntax designs. But is there more to them? Could there be? In this episode, we’re discussing a preprint of the paper Let’s Take Esoteric Programming Languages Seriously by Jeremy Singer and Steve Draper, and struggling with what it even means to give esoteric languages their due.
🎉 8
💯 1
ribbit 1
🍰 2
❤️ 1
c
Excited to give this a listen! This is very much related to new podcast name and podcast itself, but when I was visiting Austria earlier this month I randomly happened to be in Linz during their big Ars Electronica festival. One of my favorite exhibits was an esoteric language called
feel.exe
by Camilla Scholz. It's am esoteric shader language that is written by expressing feelings
❤️ 3
🤩 1
p
@Jimmy Miller In your challenge, are we allowed to use library functions that use booleans internally, such as min()?
a
Nice listen! You mentioned Orca, which isn't really an esolang in that it's made for practical use and has a large community of practice around it, despite looking a lot like befunge. I think Devine had seen befunge before, but had forgotten about it and hadn't consciously used it as a reference. I think that supports Lu's point that esotericness is relative.
j
@Personal Dynamic Media Really up to you. If you feel it’s not cheating go for it. Theres not hard and fast rule. I recommend people going till they don’t think they can eliminate more.
l
@Alex McLean the first line of the orca website says "Orca is a two-dimensional esoteric programming language"
k
I finally got around to listen to this episode. The topic really goes will with the style of the podcast. But why pretend you need to discuss a paper? You could just have chatted about esolangs on your own! What I found missing is a discussion of the label "esoteric". The definition of esolang that you mentioned repeatedly doesn't overlap much with the root meaning of this term, which is "inside". Esoteric knowledge is knowledge you obtain by being initiated into a closed group. That's not at all what esolangs are about. It is, however, what much of computing culture is about. Think about Abelson & Sussman's famous SICP lectures with the magicians' hats. It hints at initiating students into the magical world of computing and its esoteric knowledge. What would an esolang look like that tried to take up this theme?
🤔 1
a
@Lu Wilson well that spoils my argument but still it is useful and good
l
I feel like it reveals that an esoteric language is allowed to be useful and good :)
@Konrad Hinsen we pretend that we have to read it because it's funny, according to the laws of humour discussed in the show
💡 1
i
I like the structure and generativity of basing the discussion on a text. There are other ways to get structure and generativity, but this one suffices most of the time.
👍 1
I don't think the definition of esolang matters. What matters is that we make the effort to find weird little languages and delight in their particularities.
🤖 1
Also: Jimmy's assertion that this paper shouldn't need to exist is an interesting one to consider, and we don't get to consider it without reading this paper.
k
@Ivan Reese Well, yes, but... somehow this reminds me of Descartes proof of the existence of God 😉
Something else I am wondering about: are there esolangs that are esoteric in the original sense? Meaning small weird languages that actually have a closed community around them? Not necessarily a community that uses it for practical purposes, it could be a mainly symbolic cultural artifact.
Some APL derivates would perhaps qualify, such as J or K. And they are even used for practical purposes. And they are not funny. So... esoteric languages that are not esolangs.
i
CoffeeScript? I still write the occasional thing in CS because I miss that language. Maybe folks who still write Perl or TCL or Pascal for similar reasons?
People who write COBOL for banks? The COBOL CABAL.
k
There's the title for an academic research project: "How COBOL became esoteric" 😂
d
Thanks again for this episode -- I really enjoyed hearing your thoughts on esolangs and was invigorated by the range of ideas you discussed, and how much it broke away from the canon of langs that are usually trotted out. I first listened to it the morning before the first talk for my esolang book, and it was super encouraging. I just had a chance to re-listen in a less distracted moment and have more thoughts to share...
👏 2
First off, the paper you discuss is a digital humanities paper as much as the authors might not acknowledge that. Esolangs are primarily a cultural form (what they have in common is that they push back against the norms of computing), and so discussing them as a group means getting into humanities territory. You mention how much re-iterating of folk knowledge there is in some of this writing.... I agree and I wish more writing on esolangs went back to papers that have already covered the basics, starting with A Box Darkly, which introduced esolangs to the academic community early on (https://nickm.com/articles/Mateas_Montfort__A_Box_Darkly.pdf).
In terms of the "return to complexity in early coding" (something mentioned in the discussion and the paper and the first part of my paper The Less Humble Programmer... this gets to the idea (paraphrasing Wendy Chun) that "the democratizing of code is also a de-skilling." That as we moved to more English-like code, it meant giving up on the esoteric aspects of early computing where programmers would compete to shave off a few computer cycles, something valuable in the 60s but less so by the time Dijkstra got fed up with it and wrote his paper. Some esolangs, generally the Turing Tarpits, (especially early ones like FALSE, Unlambda, brainfuck), give programmers the excuse to show off technical wizardry that they can't so much in mainstream code. This is a lot of the fun of writing in these languages and is a critical part of esolang aesthetics, especially early on. (Sorry if this is all in that paper already). But we're going through another wave of this currently with llms: how will code be changed as code becomes easier to write, and what cultural forms will resistance to llms look like?
I think when LOLCODE, ArnoldC, Shakespeare, and Piet were all new, they weren't really seen as that different from each other. Each was an experiment with how strange code could look. The second type of language, where code appears as something else (a recipe, an image) is called multicoding. I interviewed David Morgan-Mar (creator of Chef and Piet) for e.c and he did not expect that people would actually make edible recipes for Chef or go nearly as far as they did with Piet designs. But they set the way for many of us who have gone on to more deliberately design multicoding esolangs. Shakespeare is a terrible multicoding language because there is almost no room for self-expression: everyones' code reads more or less the same. Chef is an interesting challenge because only certain types of recipes can work as code (mostly baking). And Piet is the canonical multicoding languages because, while most Piet programs are recognizable as Piet, they also look very different from each other, and individual programmers have developed their own visual style within it. I wrote a piece on multicoding: https://stars.library.ucf.edu/elo2020/asynchronous/proceedingspapers/17/ While Shakespeare is very limited, it inspired many natural language esolangs that are more interesting: Ashpaper, Prāsa, in:verse for a few. They picked more natural forms of expression for poets and built on those instead of the compliments and insults.
Anyway, I have a lot more thoughts but don't want to ramble too much... I think it's incredible how much you covered and how you kept it compelling for 2 hours! With the ChatGPT bits, I think there's something interesting about that ambiguity of natural language and how esolangs deal with that vs. llms (there being any single "correct" interpretation). But also I enjoy those parts because somehow it's hilarious every time Lu says "oh no."
l
Keep going! Share the other thoughts!
k
Wow, thanks @Daniel Temkin, that was a great concise overview of esolangs!
d
Thanks!! I'm on the road rn for my Forty Four Esolangs book tour, but will try to post more soon...