Become a Creator today!Start creating today - Share your story with the world!
Start for free
00:00:00
00:00:01
Daniel Temkin and the Beauty of Esoteric Languages image

Daniel Temkin and the Beauty of Esoteric Languages

Hanselminutes with Scott Hanselman
Avatar
0 Plays1 second ago

What happens when code stops being useful and starts being art? Scott talks with artist and programmer Daniel Temkin about his new book Forty-Four Esolangs, a deep dive into the world of esoteric programming languages...systems designed not to ship software, but to provoke thought. They explore how absurdity, constraint, and humor reveal something profound about how we think in code.

This episode is sponsored by TextControl

Check out https://textcontrol.com for industry-leading document editing and PDF processing SDKs for .NET developers

Recommended
Transcript

Introduction to Stroll and Esoteric Programming Languages

00:00:00
Speaker
one of the ones that really struck me, at i would say my favorite is Language 33 called Stroll. it made me think about like spy movies and things like sneakers and some of the classic movies of the 90s and how cool it would be if someone had encoded a programming language that required human beings to wander around a city or a town in order to Get the program. Help me understand what Stroll is and why it requires three pedestrians and their routes in order to realize ah instructions you would feed into a computer.
00:00:35
Speaker
Hey friends, you probably knew that TextControl is a powerful library for document editing and PDF generation, but did you also know that they're a strong supporter of the developer community and it's part of their mission to build and support a strong community by being present, by listening to users and by sharing knowledge at conferences across Europe and the United States.
00:00:54
Speaker
if you're heading to a conference soon. Maybe check if TextControl will be there. Stop by and say hi. You'll find their full conference calendar at textcontrol.com. That's T-E-X-T, control.com.
00:01:08
Speaker
Hey,

Exploring '44 Esolangs' by Daniel Temkin

00:01:09
Speaker
friends. I'm Scott Hanselman. This is another episode of Hansel Minutes. Today, I'm chatting with Daniel Temkin. He's the author of the new book, 44 Esolangs. It's a monograph of esoteric programming languages. It's a love letter to weird coding languages. How are you, sir?
00:01:26
Speaker
I'm doing great. Thank you. There's such precision in your in your language and in the choice of it is a monograph of esoteric programming languages. I showed it to my wife, and she's like, what is this? Is this is an essay? Is it a love letter? i said, no, it's a monograph.
00:01:45
Speaker
She's like, what's a monograph? how Did you... did you Programming is all about intention, and everything in this book is very intentional. Is the subtitle to your book also equally as intentional?
00:01:57
Speaker
Yes. So this is a book that is aimed both at programmers and folks in the art world who I'd like to introduce to the idea of esalangs. And some of the language that I use, such as the word monograph, is really aimed more at the art crowd to tell them this is an art book. So a lot of the language that I use in the book is aimed more at the art crowd. I feel in general that programmers, if they come across terms that they're not familiar with, they'll look them up or they won't worry about them too much.
00:02:25
Speaker
But some of the technical terminology can be a little bit scary to the art crowd. So I have a lot of stuff in here, a lot of references to conceptual artists who they're familiar with and using words like monograph to make it clear that this is an art book ultimately.
00:02:38
Speaker
So if an artist sees this, they're going to already know what monograph is. And while I'm not an artist, I looked it up immediately and I was like, oh, what a lovely and precise word. I see. So is this a coffee table book for artists? Are we, we say you're introducing this to artists. Are you trying to create a legitimacy around esoteric languages or what

Understanding Esolangs as Art and Language Design

00:02:59
Speaker
is the bridge? Am I, am I being introduced to art or are they being introduced to programming?
00:03:04
Speaker
i I think, you know, the the the main thing I want to do with this book for both audiences is to show them that there's more happening in esalangs than simple puzzle languages for programmers and joke languages with kind of silly silly vocabulary.
00:03:19
Speaker
i feel like esalangs have, in terms of how they're presented in public, they often fall back at a kind of listicle thinking where it's like, oh, here's a wacky programming language. Here's another wacky one.
00:03:31
Speaker
But one of them might be writing code in the style of Arnold Schwarzenegger, which doesn't really give a lot of room for for exploration. um And another one might be creating code in the form of images, like the language Pete's.
00:03:45
Speaker
um And that it has a very... um And and that language introduces or sorry that language allows for individual programmers to bring their own visual style to code and to really sort of stretch the aesthetics of of the pete language and find their own style within it. And it's much richer in in terms of the exploration that it does. And so with this book, I'm i'm really hoping to show people that there's more to SLAs than they might have realized.

Insights into the Esolang Community and BrainFuck

00:04:16
Speaker
So Pete is ah made by david David Morgan Marr, if I recall? Yes, that's that' correct. Yes. Yeah. And are is there ah is this a large community? Like I can think of four or five kind of figures in the space of S.O. Langs, David, Chris Pressey, but it doesn't feel like it's the kind of thing that would fill a Reddit of millions of people. Is that a fair statement?
00:04:40
Speaker
Yeah, that that's true. There are many programmers who are familiar with a few SLGs. There are many high school and college kids who who create one SLG to sort of first learn how to create an interpreter or a compiler. And I think that that alone is something that that that's very valuable to encourage people to show that they are able to design a programming language of their own.
00:05:03
Speaker
And SLNs are sort of a more natural place to do that because you can explore kind of a strange idea and it's immediately satisfying. and You don't have to create like a linker for it if you don't want to, because that's not sort of the expectation.
00:05:15
Speaker
But so there are a lot of people who sort of dabble in SLNs or have created one or two at some point. But the actual community of people who are kind of regularly producing SLNs is somewhat smaller. And I've interviewed many of them for my blog Esoteric Codes.
00:05:32
Speaker
So you know I got into Esseleng in 2007, 2008. And at the time, the documentation was very technical. You can go to the Esseleng's wiki, and if you look up one of the most common Esseleng's, BrainFuck, what does it tell you about this? It tells you the name is offensive to some people.
00:05:50
Speaker
The second thing it tells you is that it starts with a memory block of 30,000 memory cells. These are like the least interesting things about the language. What's interesting about the language is that because there are only eight commands, you have to translate your algorithm into these very simple steps, which create this great complexity of of meaning almost immediately when you jump into the language and that people have done some sort of amazing things in this language. Someone built a web server that that runs in this. It's very slow. ah But all this stuff is is is very impressive.
00:06:23
Speaker
So I started Esoteric Codes to talk to other Esselangers in terms of the ideas behind their languages, what languages influenced them, or what concepts were they trying to explore, and trying to keep them away from the highly technical language, which can be confounding to some people and and and sort of lock some people out of that space because they they don't understand.

Creative Processes Behind Esolangs

00:06:48
Speaker
and then in addition, i interviewed digital poets and artists who ah who create work where you have to read the the the code to fully understand the work. that That's sort of my my cutoff point. and kind of But mainly picking people whose work makes sense in conversation with those esalangs.
00:07:08
Speaker
um to try to encourage people to go further with their ideas and create more of a larger community of people coming from these different spaces, the hacker hobbyists, the digital poets, the digital artists, and so on, to bring them into conversation and encourage more work of this kind.
00:07:22
Speaker
Yeah, I think that that you bring up a good point that a lot of us were introduced to these languages. Like I remember learning about Befunge in like 1993 it was in the in the context of a class and it was a compiler class and it was about Lex and Yak and here's a weird language that someone's working on. And you know it was just it was a kind of a trite acknowledgement that like it doesn't always have to look like English, it can be weird.
00:07:45
Speaker
And it wasn't presented as art. it wasn't It was almost presented as like, let's see how hard we can make programming. Almost like it was to be mean a point. And there was like, you know, some of these SLings are mean spirited. And then they're like, let's see how complicated we can make it and mess with people's heads.
00:08:04
Speaker
you know, like the brain F that you mentioned, but that doesn't feel like art. That's almost all like like a caricature of a programmer. Cause in the nineties, there wasn't a lot of inclusion in programming. So it was just like, let's see how hard we can make them.
00:08:17
Speaker
You know, Linux on the desktop, compile your own kernel. but And I like things to be more like accessible. So I like the idea that this is an exploration of, you know, who said it needed to be like this? What if it was pretty? And what if it was looked like QR codes? And what if it was fun?

Esolangs as Conceptual Art and AI's Role

00:08:36
Speaker
Yeah, each of these languages is a creative exploration of some kind. You know because we had the language false, and that inspired a number of other languages. And and false...
00:08:46
Speaker
had commands that were represented with one with one character. So you have brainfuck, which took that in one direction, and then you have befunge, which took it in another, that said, but once we have commands that are a single characters, we don't need to read from left to right if we don't want to. We can read up and down, we can go off the side and come back on the other side and so on. but let's Let's do something with that. And I guess the impetus behind that was to make something that you could write an interpreter for, but that would be the most difficult language to design a compiler for. and so that's really interesting. But then on top of that, then you have Pete coming later, where the flow similarly kind of turns in different directions, but now we're working with color instead of with characters. So I think that that's really indebted to Befunge as well, both our stack languages as well. so you can kind of see how each language sort of inspires the next, and they are exploring these sort of less explored spaces of and possibilities of language design.
00:09:43
Speaker
Now, there's 44 Esolangs in this book. Are all of them realized and we can go and get clone, or are some of them theoretical they could exist and the rest is left as an exercise to the reader languages?
00:09:56
Speaker
Yeah, so these are languages that um each kind of in some way challenge conventional ideas of what a programming language is or what it's for or who it's for.
00:10:07
Speaker
And in some cases, it means that it's going to lead to languages that are not ah realizable in any form. they They can't really be implemented. That could be because the language has a logical contradiction in its definition. it could be that there's no real point in implementing it because reading the prompt is enough to give you the idea of what the language is. And some are really just left for the reader to sort of have their own their own take on.
00:10:34
Speaker
So I think a lot about that there's this this differentiation by Solowit, the conceptual artist, between the concept of a work and and the idea of a work.
00:10:46
Speaker
And the comp that the concept of a work is somewhat hand wavy. It's sort of the initial, it's it's the initial concept. It doesn't have all the details filled in, but it gives the what the flavor of the work is and what the work is about. But then the idea fills in all the details. And it still doesn't mean that the thing becomes a physical object.
00:11:06
Speaker
it It could still just be an idea alone, but it has the details filled in that now it's much more specific. And that's really what I wanted out of the realization is filling in all those details. Because often <unk> it's surprising, the decisions made in that in that prompt can lead to things in the realization that are sort of unexpected but are sort of inevitable because of of the because of what's defined in the prompt itself.
00:11:30
Speaker
So the way the book is set up, you read all the prompts first without necessarily knowing which ones have been implemented or not. And then when you get to the second half of the book, you can see which ones were actually designed.
00:11:41
Speaker
Yeah, and I have to admit that that took me aback a bit because I was going through the book and I get around to page 20 and then it says prompts. And I worry that that word prompts has been ruined ah by the ai AI bros because I read them.
00:11:57
Speaker
Unfortunately, the word prompt has been co-opted and I read them as prompts that I would fit into a GPT. But much of this work was done long before We we we had that word ruined. These aren't prompts to be fit fed into a chatbot.
00:12:13
Speaker
These are pitches. These are pitches. Like pitch pitch me an Esolang. Okay, here's an idea. Do this. It's a language, except it's musical notes. It's it's ah it's a pitch, but prompt is the is the correct word. You just had it stolen from you, the word.
00:12:27
Speaker
Yeah, it's it's really strange how much the book feels in parts like it's about AI, that it's a comment on on AI and sort of reaction to it, because it it really was written before a vibe coding was was really a thing, and certainly before I was doing any code generation with AI. And...
00:12:46
Speaker
and The prompts, you know, if you feed these prompts to an AI system, you're going to get the most boring answer possible, right? Yes. The most mediocre answer that they can give you. And this is something I've actually tried with with with students. and the One of the things that i I really try to get across them is ah don't leave any creative decisions to AI. Use AI to to build, um to to generate code, but you have to be specific about what what you want if if you're letting it make any sort of creative decision.
00:13:14
Speaker
so So there's a a well-known esalen called Shakespeare, which I don't particularly in enjoy. I don't think it's particularly funny, but it's it's written as dialogue, as Shakespearean dialogue, and

Emotions in Esolangs and Cognitive Dissonance

00:13:27
Speaker
I think compliments add a number and insults subtract them. So you get these long strings of insults. It gets it very sort of repetitive.
00:13:35
Speaker
One of the languages in this book is about code written as affect, as feeling that goes beyond words. And it was designed as a prompt that could never really be implemented. Of course, we can invoke certain feelings through poetry or through art, but the idea that that we could encode that into code somehow and that this would be sort of readable to somebody seems pretty far-fetched. But it's it's something interesting to think about.
00:14:02
Speaker
So we did feed this into an AI prompt. I think it was Claude. And it basically generated a version of Shakespeare. It's sort of like what it took as being affect or feeling are sort of positive words and negative words. So we sort of recreated this this other Esalen with sort of the least interesting response to that prompt.
00:14:19
Speaker
Which makes a lot of sense if we think about the corpus in which these things are trained and that Shakespeare already exists as an S.O. Lange and is inside the AI somewhere. It's reasonable that it would kind of find the statistical mean and go, oh there's prior art there. And it would not, by by definition, be creative, which which explains a lot.
00:14:37
Speaker
yeah absolutely. Yeah. The, the, the part that I'm struggling with, and I think it might be the one half of the brain versus i felt myself, I felt my brain, the right half versus the left half, the artistic half versus the analytical half kind of fighting which each other, because I wonder which parts of my brain are on when I am coding versus which parts of my brain are on when I am, um,
00:15:03
Speaker
when I am appreciating art or visiting a museum. And I felt like my hemispheres were fighting because part of my brain was going into like, well, actually, you know, this is not Turing complete, mu you know, and then the other half was like, oh, wow, that's a really, that is fun and interesting. And I i am challenged by that idea.
00:15:24
Speaker
Like the there was one that I thought was really extraordinary, which was the, what if you just used empty folder structures to present a programming language? The idea that the file structure itself has enough context and there's enough to play with from empty folders and file names and their structure within the file names and whether or not this is hierarchical, you know scoping through files. It's so kind of like ridiculous that it almost flipped the odometer in my brain from this is ridiculous to like, this is actually a really clever way to use the file system as a database and the hemispheres are fighting it out the whole time.
00:16:02
Speaker
Well, I'll tell you about the inspiration for that. So so for 12 folders is a Turing Complete

Innovative Esolangs like 'Folders' and 'Past Tense'

00:16:06
Speaker
language. Is it? That's crazy. Not all the languages in here are, but that one is. So the idea of folders is that the inspiration for it was the SLang white space where we used tab space and return as as the only meaningful characters.
00:16:20
Speaker
And I decided, well, those are still characters. There's still a file. but what's What's more empty than an empty-looking file? And to me, that was really the empty folder or the folder that just has other folders in it because it always just looks like trash. you know like like this is So the way that folders works, the names of the folders don't matter except for how they're read alphabetically. And you know the top-level folders are commands, and then the first folder alphabetically in each one, the number of folders in that tell you tells you what kind of command it is. And a second folder will be an expression that's passed to it depending on the type of command. So it's it it yeah this is this is usable. This is workable.
00:16:59
Speaker
one of the One of the things about folders is that I originally wrote it with a C Sharp compiler. And this was probably around 10 years ago. And it so I originally made it sort of Windows only. um this This was sort of like the that that era of of of C Sharp. And...
00:17:19
Speaker
the The funny thing about Windows is that it doesn't consider and an empty folder content. So if you create a billion folders and and you get info on it, it'll tell you that takes up zero bytes on disk. So of course your hard drive will get smaller and smaller if you add more billions of folders and so on.
00:17:36
Speaker
But one kind of nice thing about the folder's programming language is that the input and output are through folder names. And all the temporary storage is is stored as strings and folder names as well. So you can have basically a parallel file system where all your data is just stored as as folders and you just get free infinite storage.
00:17:53
Speaker
And i was also thinking how quickly it would take now in the in the world of Dropbox and OneDrive, how long would it take you to break OneDrive, effectively DDoSing OneDrive with a hello world that takes 350,000 folders, taking up no storage, but certainly taking up a huge amount of of time in ah in syncing. And then also the fact that you have to yeah URL and code you know certain characters that the folders don't allow. so you're in You're in fact tunneling additional information in the folder names that isn't allowed by virtue of how Windows deals with its file systems.
00:18:29
Speaker
True. Well, that sounds like a challenge. Let's break it. and This is the thing, right? Let's go and break OneDrive and Dropbox by synchronizing a million folders up into the Cloud. And you did that like 10 years ago. This is worth noting that esoteric.codes and this book is not something that you banged out in a year. This is you know your life's work in a sense of art that you have explored over time.
00:18:53
Speaker
How do these ideas come to you though? Are you just sitting around one day in 2015 and you're like, you know, white space is cool, but folders, that's way cooler. Like does this just come to you in the shower?
00:19:04
Speaker
but Yeah, generally one language leads to the next. A lot of them are about kind of the constraints of of of programming languages and how we can sort of push at the outer edges of it.
00:19:18
Speaker
so So one way to think about program is as a performance score, right? It's it's a it's a score for the the the computer to perform. There's a long history of performance scores in in conceptual art and in Phloxis and other visual art.
00:19:34
Speaker
such that we can consider things like performances that only are imagined, that can only run in our head. And there are several languages like that in the in the book, ones that will only make sense to one person at a time and won't be meaningful to to other people.
00:19:52
Speaker
But I guess another way to look at this is, you know, a programming language tells us what what code is, right? A programming language defines the lexicon and grammar of code. Like that seems sort of obvious, but it also presents an abstract version of the machine. um And that's where the logic of the language is defined. So it's really the programming language that defines everything else. And what would happen if we sort of unmoor that from not just practicality, but from our physical machines?
00:20:19
Speaker
and we sort of lift the whole thing out into space and we just think about the programming language alone and and what what can we do with this? How can we push it at the edges of of what we consider code, of of what we consider a machine, of what's performable?
00:20:34
Speaker
And so that that's a lot of the thinking that I do when ah I'm designing these languages. So for instance, I have a language in the book called Past Tense. And past tense is just literally, we take a program that runs in another language and we convert any text in it that can be verbed into a verb, and then we can we convert that verb in the past tense.
00:21:00
Speaker
And now it is no longer a running program. because it can no longer run in its original its original language. So we might start with you know public static string hello world, and we'll end up with public static um so strung for one thing, classed namespaced helloed world. Oh, I see. Okay, public static voided mained.
00:21:26
Speaker
Exactly. Yeah. So now it is, so it's, So now we have our text. This is a a valid program in past tense. But there's no runnability in past tense because the whole idea of past tense is that that program is now in the past tense and should never be run again.
00:21:44
Speaker
and So if you were to actually write a compiler for past tense c then those programs would no longer be valid as past tense because now they they are runnable. They've been brought back into the present in a way that sort of violates the the rules of the past tense language.
00:22:00
Speaker
the One of the ones that really struck me, at i would say my favorite, is Language 33 called Stroll. it made me think about like spy movies and things like Sneakers and some of the classic movies of the 90s and how cool it would be if someone had encoded a programming language that required human beings to wander around a city or a town in order to get the program. Help me understand what stroll is and why it requires three pedestrians and their routes in order to realize ah instructions you would feed into a computer.

Site-Specific and Non-English Esolangs

00:22:36
Speaker
Yeah. So the, the, the the red stroller and the green stroller, they, Each have their own way of moving through the space. ah The red stroller is going from intersection to inter intersection and the green stroller from block to block. And the green stroller is pointing to a space in memory that's represented by that that block. And based on what the red stroller and the blue stroller do, data can be written to that block or read from it.
00:23:05
Speaker
The red stroller is in charge of all the constants, and those are really defined by the the street names at each intersection. But the most critical stroller is the blue one. And the the main thing about the blue one is that the way that their code is read is unique to that person and they can define it themselves in a way that might be totally different than another stroll program ah the only critical thing about it is that it has to be something that you can only learn by being there in person if it's something that you can easily find out by looking at photos and looking at google maps then it it it shouldn't be used for this and so
00:23:44
Speaker
but it It requires a human being to sort of make decisions and and sort of interpret what the other the previous blue stroller has has set out. um It could be things like the species of various trees along blocks.
00:23:58
Speaker
ah It can be about the incline of the street. it can be Sometimes it could be something like the number of windows, but you have to be careful with that, of course, because all this stuff is is online now. And so part of what makes it a stroll program is that if you lift the whole thing, if you start the whole thing from the wrong intersection or in another town, it'll it'll have a completely different result.
00:24:20
Speaker
So it's a site-specific language. Yeah. It's site-specific. It's ephemeral. It might be different. you You run it on Saturday and it's different. Someone fills a pothole in or chops a tree down and then suddenly this thing doesn't work at all or you're going to have to change the structure.
00:24:34
Speaker
Yeah, absolutely. And a lot of that's built in. I mean, you know usually when we write code, we want the computer to carry things out the way that we expect. But a lot of the languages in this book sort of undermine that in some way. They're they're about sort of They're saying that oftentimes code is more interesting when it does something that we're not expecting and not exactly what we had desired. It might bring us somewhere different.
00:24:57
Speaker
and And so a lot of these languages approach code without that feeling of absolute control that we pretend to have when we write code. I've had a couple of people on the podcast in the past that have created programs in non-English languages. I saw that there are some here that use glyphs that custom make their own. you You've custom made your own glyphs. It looks kind of like Stargate.
00:25:19
Speaker
i think one of them was called Thermo C, which like almost like a Wingdings style ah of a but thing. Have you spent any other time looking at non-English languages?
00:25:32
Speaker
Just I'm curious, I know it's not in the book and you haven't explored it in the book, but I'm curious if you've explored languages that are in non-English like Arabic or Amharic. Yes, yes. So there there are a few reasons that people make programming languages that are that are in languages other than English.
00:25:47
Speaker
The most common are that they want something, they they build as an educational language ah for a community that perhaps, like, especially for children who might not yet be comfortable with English, or to sort of encourage communication in another language.
00:26:02
Speaker
But then there are languages that are made to specifically challenge English as the dominant language of of coding. And some of those really fall more in the esoteric category because they're made more, they're they're not made for the practical use as much as as to make a statement. ah The most well-known of these is a language called Alb or Kalb by Ramzi Nasser.
00:26:26
Speaker
huh And that was a Lisp language made in Arabic, which had started out to be that's a useful tool.
00:26:37
Speaker
And then what he found was that he was prevented from going as far as he wanted to with the language because a lot of the underlying technology had these biases that that became very obvious when he was trying to work with a right-to-left language.
00:26:50
Speaker
And also it raised questions like, what's what's the Arabic translation of of proxy being or these other sort of technical terms and how do you even deal with that and in in another language?
00:27:03
Speaker
Now, that language became pretty well known and it has inspired a whole bunch of languages in response. There's a language called Yorlang, Y-O-R-Lang, which is in Yoruba, which was made by a Nigerian programmer who spent all day speaking English for his day job. And after hours, he didn't want to think about English at all. So he wants to code in his in in native tongue.
00:27:24
Speaker
And then there's a language called Cree Sharp, which is a multimedia storytelling language in using the Canadian Aboriginal um syntax ah characters. And that's by John Corbett, who actually is the person who I am collaborating on for that that language that you mentioned from the book, um the one that has like the the really sort of crazy characters.
00:27:46
Speaker
yeah This is one that we're really right in the middle of of designing right now. And The idea of that language is that each line of code is a single character and that that one character has different kind of swoops and ascenders and descenders and crosses, and each of them adds to the meaning of of that line of code. But the code is that the the line of code is essentially it It has a subject and an adjunct. The subject goes through a test, and if the test succeeds, it is transformed in some way. So the subject is basically a variable, and there's basically some kind of conditional. And if the conditional passes, then then the subject is is is transformed. And it can be in terms of the adjuncts, which is essentially a parameter that comes in. And if you want to do something more sophisticated, you have to go to like currying and do something, you know, you have to get a little bit fancier. But the idea is that the character is pronounceable based on how the letter is drawn and the way the letter is drawn is also controls how it runs as code. And we have our own font for that, which which we're in the middle of designing at the moment.
00:28:52
Speaker
It might be counter to your goals, but I think it might be worth at least me asking whether it be something like one of the 44 esolangs in the book or something like your language self identifies as an esoteric programming language.

The Future of Esolangs and Intercal's Legacy

00:29:05
Speaker
Would we ever want one of them to graduate for lack of a better word? Like your lang, the Yoruba one that you mentioned is expressively in the and the first line when you visit their website, it says is an esoteric programming language as opposed to saying is a programming language. Now, I've always said that English isn't the language that we deserve. It's just the one that we have. It's the big colonized language. And I feel the same way about JavaScript. Like the world could have deserved a better language, but JavaScript is the one that we ended up with, right? do do you Do you think that any of these could be real in the mainstream sense or by definition, they can't be, they can't graduate beyond esoteric?
00:29:46
Speaker
Yeah. So I think that Yorlang is a great example of one where, the performance of the code is very clear from the text of code so long as you read Yoruba.
00:29:57
Speaker
So it doesn't have that feature that we associate with esalangs of being obfuscatory or difficult difficult to read in a way that sort of prevents it from mainstream use. I think that Yoruba is...
00:30:11
Speaker
great to use for mainstream use. It's not going to have the support that you'll have if if you're writing in C-sharp, but it's it's the beginning of something. And if if somebody wanted to push that further, they're you know I think that's an example of an Esalen that could be used in mainstream code.
00:30:26
Speaker
What was the word that you just said? I didn't know. Plaskatory? Oh, I was saying, sorry, i wasn' i wasn't enunciating very well. I was saying obfuscatory, like obfuscated. like to obfuscate.
00:30:37
Speaker
Yes. I see. To go out of its way to be obfuscated. Yeah, that's the thing. Like when we talk about like Befunge and the other ones like that, where it's like, this is just mean like it's like let's just make it hard this is not what these are about they're about exploring new spaces thinking about ways in an unusual way ah no one ever i think when they made a computer thought like oh you know what if we made this as difficult as possible or as esoteric as possible which brings me kind of to my last question what was the first identified so lang what's who's the person who said let's think outside the box first
00:31:15
Speaker
the The first language that's generally considered an Esselang now and whose authors consider an Esselang would be Intercal from 1972. Intercal is an interesting language because it's it's a parody of of languages of its time, but it still holds a lot of power in how it sort of comments on on ah the experience of of coding. It certainly makes coding difficult.
00:31:40
Speaker
So one of the famous features of of InterCal is the the please operator. If you don't say please enough, it finds you rude and ignores your entire program. But if you say please too much, then it finds you simpering and it also just ignores the entire program. And in the original version, this it was not documented how much p please you have to use.
00:31:59
Speaker
and So Intercal, I interviewed Don Wood for Esoteric Codes. um And actually, Don just recently found the long-lost code for the original Intercal compiler, which we were very happy to to put online ah earlier this year.
00:32:16
Speaker
it's but's It's so funny. I just wanted to call out that Intercal, which is pronounced and abbreviated Intercal, the full name for the compiler is compiler language with no pronounceable acronym. Yeah, I'd forgotten that. Of course, you called that Intercal. I'm sorry, you were saying.
00:32:32
Speaker
Yeah, so language one in the book, which which is the actually the second language, is called Olympus. And Olympus was inspired in part by Intercal. ah The idea was if you can have this this interpreter that has this personality.
00:32:49
Speaker
What if we had eight of them? What if we had the Greek gods? And each one of them might get sort of annoyed with you and ignore the entire program. Each one of them might ask different things of you in order to make the code runnable. And so i constructed that language in such a way where if you want to do structural things, you have to pray to Zeus or Athena. But if you want to close a block of code, instead of doing it with a right curly bracket, you call on Hades to collect the souls of any variables that remain to live on in his netherworld.
00:33:19
Speaker
And one of the things about this is you have to give the God proper praise and it has to be commensurate with what you're asking of them, what the complexity of that line of code is. And if he piss them off if you piss off Zeus, he's just going ignore you for the rest of the program. But the other gods will still keep doing the work. So you'll get this this thing where every few lines of code will run and some won't and so on. And it's actually something you can take advantage of if you wanted to, although I'm not really sure why what the strategy would be exactly.
00:33:46
Speaker
But that that all that was really and inspired by Intercal. That definitely brings the yeah the the demo gods that that I seem to always fail to worship, that my demos fail or my presentations fail to ah the next level.
00:34:00
Speaker
So the book is 44 Esolangs. You can get it at danieltempkin.com. It's available at Amazon and everywhere that you can find books. You're also on a speaking tour of source of sorts. I think you're going to be you were just in Portland, Oregon, where I'm at. Oh, I'm going to be there. but you're going to be there yet. Oh, it's October. Yeah. You're going to be at the PDX Hacker Space in a couple of weeks. So I'm in Portland. I'll come and check you out. and You're going to be up in Seattle as well.
00:34:28
Speaker
ah So folks should take a look at danieltemkin.com slash Esso Langs for upcoming speaking dates, some of the press that you've been doing on the book. And you can, again, pick that up anywhere that you get books. It's from MIT Press.
00:34:42
Speaker
Thank you so much, Daniel Temkin, for chatting with me today. Thank you. This has been another episode of Hansel Minutes, and we'll see you again next week.