Programming Languages

Experimental Studio

25 04 2018

-------------------------

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

LD

There were definitely these sort of leading concepts that changed a bit. For example, the concept of synchronisation became a bit more general than that somehow. With synchronisation, then this idea of formulation in different things. 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 that, 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 they 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, no? I think it's a very different thing that 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. So, from looking at how you work, I thought it's kind of important to us to see that, although in theory we are doing the same stuff, we're interested in very similar things, but still in the way we approach them 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 other's 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 the languages give you, no? And it's also something that you, David, can see in your work. 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 handable. That's why we moved also to OCaml for WRECK. Because it was just too abstract the Haskell thing.

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 formalise 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 centre. 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 realise, 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 centre 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 wanna 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 wanna express.