PurelyFunctional.tv: How did you get into Clojure?
Alex Miller: Many years ago I worked at MetaMatrix, where I led a team building a virtual relational query engine, which was written in Java (this project survives today as the JBoss Teiid project). In 2010 the founder of MetaMatrix asked me join his new startup, Revelytix, to work on another query engine problem (this time for semantic web and SPARQL).
My one request was that I wanted to be able to pick the language we worked in. I knew from my time using Java that I wanted a language that was better able to handle abstraction and that got out of my way and let me focus on the problem more.
Due to business constraints I knew the language needed to be JVM-based so we decided to trial both Scala and Clojure which seemed to be the two obvious options (compared to Java). My assumption at the beginning was that we'd end up using Scala. At the same time we were hiring a small team and we started to develop an initial component using both Scala and Clojure for comparison.
After about a month, we stopped and did a checkpoint on how things were going. There was a clear consensus in the team that everyone enjoyed working on the Clojure version more and felt more productive there. From that point forward, we dove in and never looked back.
PF.tv: What is your talk about?
AM: Many developers are familiar with the term "dependency hell", used to describe the task of managing the tree of external libraries used by our applications. Sometimes it feels like we are waging a never-ending battle against versions, incompatibilities, and conflicts and yet we still run into problems at runtime.
In my talk we will envision what this system could be like instead and what tools we can bring to bear on turning dependency hell into dependency heaven.
*PF.tv: What resources are available for people who want to study up before the talk?
AM: In many ways, this will be a sequel to Rich Hickey's "Speculation" keynote and I would recommend watching that as background.
PF.tv: Where can people follow you online?
AM: You can find me on:
Or check out some books I've co-authored:
PF.tv: Are there any projects you'd like people to be aware of? How can people help out?
AM: The clojure.org web site is hosted on git. There are a lot of issues there looking for writers and I'm happy to work with people as an editor to create great new content for the site. Learn more by clicking here.
PF.tv: Where do you see the state of Clojure in 10 years?
AM: Clojure is turning 10 this year and I think most people from the early days would be hard-pressed to imagine the success its had and all the innovative things that have been added to the language, in an almost entirely additive way without breaking things.
10 years from now I hope that I'm still using Clojure and that my current programs still run without changes. 🙂 Stability and backwards compatibility are things we take seriously on the Clojure team and I expect that to be the case.