Programming Languages

---
meta: true
persons: [DP, LD, HHR, POZ]
place: experimental studio
kind: conversation
origin: spoken
date: 180425

keywords: [sound, language, WRECK, programming, coding]
---

Experimental Studio

25 04 2018

Luc Döbereiner, David Pirrò, Hanns Holger Rutz, Daniele Pozzi

LD

In our first conversations we chose to focus on the concept of synchronization, that now became a bit more general than how we originally intended. The same happened with the idea of re-formulation, of realizing something in a multitude of media. Which we did but, at some point, I think with the development of WRECK, instead of formulating it in many languages it became the creation of a language. 

 

HHR

Well I found quite interesting how, in that short period of time, you also used many languages. Elm, Haskell, OCaml, Supercollider. That was interesting to see because, as you have seen from what I'm doing, I'm translating from all languages to this language.

 

LD

Although for me these three languages are really variations of one language. It's like: ok, I do need mutables, so I go OCaml. I need some more abstract monads, I go Haskell. Or, if I need to put it on internet I go Elm. 

 

HHR

But also before, your sound installation was written in JavaScript, right? I think it's a very different thing when you say "These are the properties I'm looking for, I can pick this or this other language". It's a very particular gesture somehow, that I haven't seen much. Well, with Jonathan it was a bit like that. Looking at the way you work it's striking to see that, even though in theory we are doing the same stuff and we're interested in very similar things, still in the way we approach these things we have different strategies. And we can read them, that's the interesting thing, the legibility. So we are kind of all literate in programming, we can read and understand others' code. So the first level is the literacy, to be able to read, but then the next level is to write the stuff. They are not the same. 

 

LD

Also there is a certain feeling that each language gives you, right? And it's also something that I can see in your work, David. You strive for purity in some way. And I also enjoy this about Rust. There is something in that feeling, like I'm really there, there is no big abstraction here. You know, I'm doing this stuff and I'm kind of touching it somehow. And then, like with Haskell, it is this huge thing. It kind of teaches me. It knows more than me somehow and, if I formulate correctly, then I will also understand something about programming, and about abstracting, and so on. But OCaml is different also. It's like nice abstractions but smaller and more handleable. That's why we moved also to OCaml for WRECK. Because it was just too abstract in Haskell.


{keywords: [_, reading, writing, abstraction]}

Writing one's own programming language

HHR

When you think to write it in C, somehow the C pointer becomes almost like a physical thing. I'm using Scala, and I'm all the time thinking that it becomes so real because I spent many years with the same kind of thing, I have almost like the muscle memory. Or, when I need to do stuff, I know intuitively where to look or how to do it. And then at some point I will try to formalize it, but even before you are kind of "in" the language somehow. And I think that's with every language, in a way. 


DP

That's why I think the project of building one's own programming language it's so interesting. Because it puts exactly this mechanism at the center. I don't do it with the aim of writing a general purposes programming language. I do it for me, because it's funny first of all. But also because I want to explore how this muscle memory, or writing memory hinders or pre-forms things I can then realize, or how can I interact with it differently. Actually I'm reconstructing a different muscle memory while I'm building a language. And I'm doing it while trying out and then changing the way I can express things. Because I have physical experience of what it means to express them. It's a different level, but for me it's exactly to put at the center this kind of questions. And also because I would like to be pure. In a way I would like to match my projective aesthetics to how I express things. Which is not always the case with any language. 


LD

What is not always the case with any language?


DP

I mean, I can express my things, or the aesthetic artefacts I want to generate, in C, but it would be really annoying. And that's really a physical hindering, a physical obstacle and friction you're encountering there. So you have some kind of gesture somewhere. And you have a medium, something to go through, which is C. Which is not exactly helping you. And of course it does something, and maybe it does something also productive to what you want to do. But it's interesting to find out what is actually the medium that allows me to better project my things into the reality, in order to find out what you want to express.