Christopher Meiklejohn Lambda World 2016 Speaker Interview

Christopher Meiklejohn will be speaking at Lambda World in September 2016. He is a researcher in distributed systems.

Follow him on Twitter and GitHub, and visit his homepage. How did you get into functional programming?

Christopher Meiklejohn: I had attempted to learn Haskell a few years back, when I was a professional JavaScript developer, but I never got very far. When I took a job at Basho Technologies, working on the distributed database Riak, I was effectively thrown into functional programming: although most of my work was on a JavaScript management interface for Riak, I spent a majority of my time re-writing the backend required for the management interface, which, because it had to run inside of the database, was written in Erlang.

Since then I've played around with languages and environments like Coq, Haskell, and Agda, but my most proficient functional language is Erlang. Now, I'm a Ph.D. student in Belgium, and most of my work is on building a new functional language, named Lasp, which is implemented in Erlang. Very briefly, what is your talk about?

CM: My talk is mainly focused around my research on a new functional programming language called Lasp. What makes our language unique is that it's designed for transparent distribution of applications where they need to maintain availability and will sacrifice, or weaken, their consistency to provide it. This is especially important for building large-scale mobile applications where devices will go offline, either because there isn't a network available, or to save power. What do you hope people will take away from the talk?

CM: I'm hoping that what I show in the talk will make people challenge the normal way they build distributed applications. Ideally, I'd like people to walk away with a new mindset and hopefully bring some of these new ways of thinking, or ideas around program distribution, back to their daily work. What concepts do you recommend people be familiar with to maximize their experience with the talk?

CM: It'd be good to have a background in functional programming and distributed systems. Ideally, attendees should understand the core problems of distributed computing, partial failure and concurrency, and understand that to remain available, systems need to sacrifice some notion of consistency. What resources are available for people who want to study up before the talk?

CM: I'd recommend my blog, where I've given several outlines of my work and written a series of posts on the history of distributed programming. Where can people follow you online?

CM: Are there any projects you'd like people to be aware of? How can people help out?

CM: All of our research is available on GitHub, open source and written in Erlang. We work very hard to break down each piece of work we do into small reusable components, so ideally some of this components could be used in your applications and daily work. That said, it's important to keep in mind that we write research code, and so not everything is industry grade and merely exists to prove a prototype that we may be working on. Where do you see the state of functional programming in 10 years?

CM: That's a really good question: I'm not sure. I'd like to see more work on typing around distributed computations and how we can write safer distributed programs, but that's more like a 5 year vision. If functional programming were a superhero, what superpower would it have?

CM: Provable correctness.