PurelyFunctional.tv: How did you get into functional programming?
Allen Rohner: In about 2008, I was reading a lot about compilers and Common Lisp. pg [Paul Graham] was talking about making a new lisp, arc. It was basically vaporware at that point, so I decided that there needed to be a new lisp, with a BDFL like python, and that I'd make it. I got about a week into the project, and discovered Clojure. I haven't looked back.
PF.tv: What is your talk about?
AR: I wrote a static typing library for Clojure, called Spectrum. The talk covers the how and why.
PF.tv: What do you hope people will take away from the talk?
AR: That static typing is not the devil, it's useful in some projects and it turns out that in shipping software, we have bigger problems to deal with than static vs. dynamic typing.
PF.tv: How is Spectrum different from Core Typed?
AR: They're fairly similar. Spectrum uses clojure.spec's annotations without modification, so there's no other DSL to learn. Because spectrum can use existing spec annotations, I'm hoping it will have wider reach, and better uptake. I'm also more concerned with making it fast and usable, over correctness. An 80% tool that catches bugs that you use everyday is better than a 100% tool you don't use.
PF.tv: What concepts do you recommend people be familiar with to maximize their experience with the talk?
AR: Just clojure.spec should be enough.
PF.tv: What resources are available for people who want to study up before the talk?
AR: I'm not sure. I didn't really study before writing spectrum, so I don't know what the audience should study 🙂
PF.tv: Where can people follow you online?
AR: I'm [@arohner] on Twitter.
PF.tv: How can people help out?
PF.tv: Contributions welcome!
PF.tv: Where do you see the state of functional programming in 10 years?
AR: Ideally, it's clojure with optional static typing, and more static analysis tools. I'd also love to see more integration between CLJ and CLJS, and maybe more opinionated (i.e., less boilerplate) ways of producing apps. Wiring up a new Clojure webapp from scratch is annoying every time.
PF.tv: If functional programming were a superhero, what superpower would it have?
AR: X-ray vision, for seeing through everything.
PF.tv: Thanks for the interview!
AR: Thank you!