© 2020 Strange Loop
My two favourite programming languages of all time are Clojure and Haskell. They're very different languages, though they share a common core of sound functional principles. Clojure is a Lisp, glorious in its metaprogramming powers. Haskell code happens more in the type system than the code itself, which might be even more powerful still. But you have to pick a side. You can't have both powers at once.
I'm not the first person to wonder if we could do better. I almost cried when I discovered a language called Shen: a Lisp with a type system and pattern matching that instantly brought the taste of Haskell to my mouth. I almost cried harder when I realised Shen is impure like most Lisps, and more horrifically, has mutable data structures like those Lisps we no longer talk about in polite company.
That was the point at which I realised if I'm going to get the language I want, I'm going to have to build it myself. In this talk, I'm going to show you how I did just that, and how you could do the same, by walking you through the essentials of language design, and how to prototype that design efficiently using your favourite high powered functional language.
I'll also show you BODOL, the language I came up with. It's not something you want to put your production systems on by any stretch, but it's turned into an interesting toy that seems to connect with a lot of people. It might even have a future as the BCPL to some real language (maybe with a cooler name) one day. And so could yours—why aren't you designing languages yet?
Bodil is a compulsive conference speaker in the fields of functional programming and internets technologies, and is a co-organiser of three annual developer conferences in her home town of Oslo, Norway, mostly because she's still learning how to stop. She is a prolific contributor to the Free Software community, primarily as a Clojure developer, and has recently taken up designing new programming languages as a hobby. In her spare time, she works as a web developer for Comoyo, which is like Hulu for non-Americans.