Glen Mailer Code Mesh 2016 Interview

Glen Mailer will be speaking at Code Mesh 2016.

Follow him on Twitter and GitHub, and visit his homepage.

PurelyFunctional.tv: How did you get into functional programming?

Glen Mailer: During the second year of my Comp Sci degree we had a module on Haskell - up until that point I'd only used Java, JavaScript, PHP and Python - it opened my eyes to a new way of thinking about problems. For a while after that my programs tended to contain lots of map/filter/reduce calls.

Nowawadays I tend to think that immutability and control of side effects is what functional programming is really about.

PF.tv: Very briefly, what is your talk about?

GM: At a high level, it's about making fast feedback a first-class goal when building a system - user-interfaces specifically in this case. This leads us to want to incorporate a visual element that isn't generally necessary when working on backend code or APIs.

The main portion of the talk is centered around a demo of a tool I've been working on that provides a DSL for assembling pages specifically suited to providing fast visual feedback of UI code. The idea is entirely lifted from work Bruce Hauman's done in ClojureScript, but is intended to play nice with the wider JavaScript ecosystem.

PF.tv: What do you hope people will take away from the talk?

CM: I hope people will be thinking about how good their feedback cycles are in their daily work, at both the macro and micro levels.

I'd also like them to be thinking about the effectiveness of their approaches to automated and semi-automated testing for user interface code.

If I'm really lucky I hope they'll give my tool a spin, but I'm more interested in popularising the idea than this particular implementation of it.

PF.tv: What concepts do you recommend people be familiar with to maximize their experience with the talk?

GM: The talk buil ds upon ideas from component-based user-interface development, unit testing, TDD, hot code swapping, style guides and probably a few others. There shouldn't be anything especially complicated in here, just a slightly different way of putting things together and thinking about the UI development process.

PF.tv: What resources are available for people who want to study up before the talk?

GM: Last year's Strange Loop talk by Bruce Hauman was the direct inspiration for creating the tool I'm demoing. We watched it as a group at my local FP meetup and later that evening I sat down and had a working proof-of-concept in a couple of hours.

PF.tv: Where can people follow you online?

GM: I'm on github and twitter. I can't promise to be especially entertaining or informative though.

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

GM: Nothing of mine that I can think of, although contributions are always welcome to anything I have on GitHub. I would also like to mention that Code Mesh has a Diversity Scholarship programme which is worth donating to. I just came back from Strange Loop where I met and exchanged ideas with a bunch of people who wouldn't have been able to attend without such a programme - including a developer at a publically funded museum who'd worked on some of their installations!

PF.tv: Where do you see the state of functional programming in 10 years?

GM: I wanted to make a joke about mutable state here, but I couldn't quite make it work - hopefully the reader can mentally fill the gap in. I'd hope to see functional ideas be even more mainstream, maybe intro to programming courses could be teaching how to add mutation later, rather than newcomers having to unlearn it when they get exposed to FP ideas. Capability-wise I'd like to see more things bridging the gap between static type checking and runtime type checking - that tradeoff is probably one of the biggest dividing lines in FP camps today.

PF.tv: If functional programming were a superhero, what superpower would it have?

GM: The power to make unlimited copies of itself whenever it wanted to. Slightly more practically - it'd be great if it had the power to explain why it was so great to other people in small examples.