Rich Hickey is the creator of the Clojure programming language. Clojure has sparked a bit of the revival of functional programming and the Lisp family of languages with many communities springing up around these topics. We discuss his observations of the Clojure communities and how they influence Clojure development.
This interview needs your help. Read our post “Many Hands Make Light Work” to learn how you can contribute to UGtastic.
Mike: Hi it’s Mike again with UGtastic. I’m here again at the GOTO conference in Chicago 2013. I’m sitting here with Rich Hickey. Rich as you may know is the creator of the Clojure programming language. It’s a Lisp dialect on the JVM. Thank you very much for taking the time to sit down with me. It’s a very busy conference so I appreciate it. So you created Clojure and you released it to the Lisp mailing Lisp and eventually there’s users groups exploding, conferences being formed about people who are rabid fans of the language, and the concepts and the ideas behind, underpinning the language. For somebody who has created this tool and basically has released it to the world. What is it like? What’s your experience been, creating this tool and then seeing these various groups pop-up when you didn’t have a marketing team you didn’t have some evangeLisps out there seeding money for user groups pop-up. What was that been like for you?
Rich Hickey: Well yeah, it’s quite surprising, I think when I wrote Clojure, I definitely did it as the personal satisfaction project, and being a new language. I did not expect very many people to be interested at all, but I think programs, book, and essays and the success of Python and Ruby sort of seeded people in their desire for new languages and for less but they could actually use it for day-to-day work. So yeah, it was quite surprising. It put out a message to two dozen people yeah, and they put it in HackerNews and had 20, 000 hits the first day, it was really, something with, some interest in the idea was already there before Clojure was, I think.
Mike: Well, one of the things I find interesting is that, it’s built on a pretty stable like the culture underneath Java and the JVM people around that, it’s a pretty well-established community. It’s not too much exciting, things going on and people are rabidly well not so many rabid “I’m a Java”, I mean people identify as Java but there not as enthusiastic about it, as they would say, “I am a well-versed Clojure developer” or even a Ruby developer. So I just think it’s interesting that the hottest language right now is built on this really incredibly vanilla boring platform. Is that been, something that’s been a boon or a bust with working with, getting support from people on the JVM ?
Rich Hickey: I think it’s quite critical to Clojure success that its built on top of something that is an industry standard and people are comfortable deploying in production. That’s one of the reasons why Clojure was, it was possible for Clojure to succeed, was the fact that it was possible for people to use in production and use at work and I think that what helped drive people’s enthusiasm was that they knew, they had to work with the JVM and now here with something that let them do something new and yet remain connected to what they had been doing as supposed to sort of drop everything and try something completely different.
Mike: So kind of having that boring base allows you to have a little bit of excitement in and you know that the underpinnings are nice and solid and they’re not going to…
Rich Hickey: Yeah, well they’re not just boring, there also quite capable and robust and well tested and there’s a lot of leverage in the libraries that exist there, so, you know, I wouldn’t want to the belittle Java and JVMs role in Clojure.
Mike: Why wasn’t it necessary a negative scene, in its, it’s like I know I can get up and its going to be working and I don’t have to worry about….
Rich Hickey: Yeah not exciting in there, you, know, you don’t want to be excited.
Mike: And yeah but looking at another language and group, the Ruby group, were you don’t always know things are going to work, you know, those, the libraries are always under a lot of…. that’s not necessary the most stable community but what I see with the Clojure community is that, much like the Ruby community that just grew up and being this rabid very much, very passionate very vocal community. I see a kind of mirroring in the Clojure community where it seems like well Clojure is built on Java and it’s a very well strong foundation, the community that came up in the Java doesn’t seem to be, or I should say the community that has migrated to Clojure, seems to be more like the Ruby community at least from my observation.
Rich Hickey: So the numbers actually say that most a would say that most polarity of Clojure programs come from Java. But there are, so many people coming from everywhere you know, from Ruby and from Python and from Scala and yeah, it’s a lot of people who are using Java. I mean a lot of Java programmers are interested in other things and now this is less than pursue that, so, yeah we definitely get a lot of Java programmers.
Mike: Have you ever gone to any user group that, have you ever like. tried to go not as Rich Hickey but just see how people are using, or how there talking about Clojure?
Rich Hickey: I’ve gone to groups. I’ve always given a talk so I don’t think I’ve just been an attendee too often sometimes at the new York group I will just be an attendee. But yeah it’s so exciting, to see what people are doing, and how big these groups are. And now it’s quite a lot going on.. we have now three conferences a year, East Coast, West Coast and Europe and the mailing Lisp is gigantic… 7000 plus people and IRC is full of people very active and I think the community has been great and there are people looking to help other people succeed and that’s just fed itself.
Mike: Well and even very interesting projects and the reason I’m probably, I have probably Ruby buyers and i have probably the reason why i probably see more people from the Ruby community going to Clojure because of my just, my local, what I see, I’ve mostly interacted with Ruby and I was just informed though that, it seemed like a lot of the developers that I know and have been doing Ruby are kind of bored for me or they kind of see cracks in Ruby’s methodologies and how it’s implemented they certainly see some of the limitations and then looking at Clojure is being an answers to that. Is there any, is there any truth in that? I’ve heard that you’re a vocal critic of Ruby for language, okay then that’s….
Rich Hickey: No I couldn’t be because I really don’t have very much experience with Ruby at all. I do see people migrating from Ruby and they have their own stories about why they’ve done that but I would let them speak for themselves about that.
Mike: Ok, and with looking at way the groups are fluming is there, actually what i would like to ask is how do you receive feedback from the community? Do you have kind of the Linux model were you’re the benevolent dictator and you decide how new features are brought in, or do you solicit feedback from the users? How do you go about working with the people who are out there using and are spousing Clojure.
Rich Hickey: Yes so it is a benevolent dictator model but they’re are the mailing Lisps and there’s the big Lisp which is sort of everybody and then there’s the developers Lisp which is somewhat smaller and more focused on moving forward and implementing patches and things like that so it’s a more active group and that’s the primary feedback mechanism. And then there’s a juror and people can issue bug reports and ask for requests and we tend that, so that’s the that’s the process there.
Mike: Now I am curious, the conferences when you’re, do you go through the Apple model of trying to hold back big releases until right before a conference or is it just new releases come out on a regular cycle?
Rich Hickey: They come on a regular cycle I mean if were close to one before the conference and try to get it done, we rarely have it done and late but we often try to get something out before, for people to have it, to talk about it, specifically.
Mike: And with dealing with community, what has been surprising I mean when you launch I’m sure, I don’t think you expected conferences and users groups popping up for the language, but aside from that, what has been the most surprising aspect of the way people started adopting and spousing.
Rich Hickey: I think just the size of it has been surprising, it’s got everything against it, right, it’s a Lisp, it’s functional, and being on the platform it’s on, its dynamic which not sort of not keeping with the other entrance there. And so just the quantity of people that are interested is really been astounding, I mean the groups are huge now and they’re all over the world. So yeah, I think that’s been the biggest surprise. I think I was super concerned about the tone of the community from the very beginning that it would be positive because you know, there have been other Lisp communities that had struggled with that and I think that have been a barrier to adoption and I want to make sure the Clojure had a clean slate there, and the thing that has been really satisfying has been to see the entire community propelled for, because after a certain point as one person you can’t, you manage that, it has to be sort of in the fabric of the community and I think a positive attitude is a, is in the fabric of the community and that just helps you know, reinforce itself.
Mike: Has it, and this is more of a question becoming the center of this kind of, Lisp revolution. Has that impacted you, like I know, or I would see certain individuals that when they go to a conference they may have gone from being just that person in the audience to now there the center of attention and they have to deal with that. I just wonder if that’s something that’s impacted your ability to move in technical circles without being like a stop for people like. ” Oh, there’s Rich Hickey”… and then they kind of pounce on you. Is that have been something that you have to deal with or is it something that has either been a positive or negative thing which…
Rich Hickey: Well I mean, there’s no denying that what happened with Clojure has changed you know, my life was, yeah, I wasn’t a public figure before Clojure and now there’s all this attention to closer and the ability to speak in conferences and things like that. You know, I try to use that as an opportunity to talk about the ideas behind Clojure and you know, and not really to sell it, but to talk about what it’s about because I think those things were reported to me in making it, but no it’s mostly opportunity. It certainly, I don’t feel like people are passing on or anything else, I really enjoy meeting people and being part of the conferences let me meet a lot of great people great speakers and learn a ton from other people so at that’s just been great.
Mike: Do you see the Clojure……….. Do you think that Clojure has a long way to involve it’s going to be working more with community or is it something that kind of reaching a stable point and more going to be just minor changes. Where do you see…
Rich Hickey: So I just think it’s funny because as you kept saying Lisp bay….. I wanted to respond by saying you know, I don’t think Clojure is sort of battle less revolution, more than it is about a way of thinking about making software simpler than it has been. I mean that’s really what it’s about, on the flip side up of being a Lisp it should be small and most of the growth should come from libraries and so that’s what the emphasis is been and it will continue to be. It’s not like, it doesn’t serve anyone, for me to pile on features in Clojure and experiment with all kinds of stuff. Clojure is at the bottom of a lot of people’s work at this point and so stability and a cautious incremental rate of changes is the most important thing, because you don’t want to upset everyone who’s made a decision taking a risk to choose to use it. On the flip side you don’t need to keep fiddling with the Lisp because it is a small thing and it is grow able by libraries and so that’s where the community has sort of just take off. Clojure is growing most in the library space, which is how it should be.
Mike: Now the core should be a stable curl and then everybody else run it. And what I’ve seen less privilege, I really should be talking more about functional, because from where I observe is, I watch people who are adopting Lisp, excuse me adopting Clojure and they work for…… and I also see them with Emacs or I also see them dabbling with Schema or some other, I am trying to blank here, but other more….. languages or different structures, I’m trying to say one of the logic languages that I’m trying to blank on, but its changing there, it seems to me that people who have adopted Clojure either the way they adopt Clojure helps them experience things a new way or they are already prompt to experimenting and Clojure helps them make a lead from a strictly.. style of programming.
Rich Hickey: I do think it’s more in the people, than Clojure changing people, I think that it’s attracted people that are interested in ideas and that want to, you know, move forward want to investigate functional programming, want to have better tools for managing concurrency and want to use it in their day job. But I think you know I’ve never actively marketed it with resources or not. I’ve never sold Clojure. I just talk about what it is and let the people with whom those ideas resonated, show up, and that’s what’s been great, because you didn’t twist anybody’s arms, you don’t have to keep convincing them, people have chosen to be here. I think that’s why there so enthusiastic.
Mike: It’s a self selecting…
Rich Hickey: Yeah, I am most impressed by the community being a community that values ideas and you see it in the conferences, there’s not a lot of like “How do you do x” or How do you do y” or “Here’s a new thing” and “Here’s the details of the thing”. There are a lot of talks about ideas and there are a lot of investigation for instance, the logic languages and CoreLogic is an important part of Clojure and yeah, so that’s been really great. I think it does attract people who are interested.
Mike: Yeah, so it’s a useful gateway drug a little bit of giving people a chance to break away from preset notions of how to write programs, exposing them to new ideas and saying “okay well, I’ve already seen that I can do something useful that’s different from what I’m used to doing, now let go and check out some more software. And it kind of breaks that ice, like I was saying, I know VIM users who are now completely dedicated to using Emacs because they started to do Clojure and then they became comfortable with the parenthesis so then they started dig in to Emacs… to change the workflows there. It’s been kind of interesting to watching these individuals as they make their migration to new ideas.
Rich Hickey: I think we are in the second phase of the kinds of users that we have in that, certainly the early couple of years were people who fundamentally were interested in some core aspect of that a functional programming or less and now we are seeing people who just see someone that they respect being enthusiastic about it and from whom the entire thing is new, both the parenthesis, the Lisp, the functional, the macros, like the whole thing is new and they’re really taking on something that’s novel and a lot of new ideas. And managing that second phase of growth is something that the entire community needs to do because now the educational burden of Clojure is much bigger when somebody’s got none of the….. Frequently you would say of Clojure has got four components to it, and most of the people who came to it knew two or maybe even three of those, and now there are people who have one or maybe zero and so they need the community to help them get up to speed in sort of almost all of the aspects of Clojure. I mean there are people who never used the JVM or a Lisp or functional programming or Emacs. So that’s a lot of novelty.
Mike: So yeah, what you just said, from my experience coming, I ever done that background then it’s been hard for me to get into VIM and Ruby and all that, and then I’m watching the people I worked with already moving to Clojure and they got a whole new tool chain that I don’t know, you know, from the ground up. And maybe, that’s you know, actually kind of a closing question. For people who are completely new there’s just so many resources out there, and some are getting a little….. some blog posts, updates and so on. What would you recommend for someone who’s just saying. “I want to work with Clojure. ” you know, What would you recommend? A certain workflow or a tool or which IDE. What would you recommend for someone getting started if they were saying “I’m going to do this thing”.
Rich Hickey: Again, it depends a lot on what their background is. I certainly would say to investigate some of the books. There are a bunch of great books out now, a lot of the early books are in their second editions and have had revisions so most of the books are current. You know, if you can get an opportunity to browse through them at a conference or in a book store or something like that, you get a feel for it I would pick certain two that are in different spaces and you can, you know, talk on the mailing Lisp or an IRC for recommendations. That’s a great way to start and then absolutely your getting in touch with the community early, is super important. You get on the mailing Lisp up pop on the IRC and just let people know you’re starting out and you know, but everybody will have a different set of needs, you know. Their editor experience might be different, their background might be different. What they’re looking to accomplish might be different. Which will also shape the answers. I don’t think there’s sort of a universal answer to getting started.
Mike: But engage to the community, … just try to reach out…
Rich Hickey: Yeah, people will have plenty of advice, sure, for that and that’s what I said, I do think that this next phase of growth is on the community. Even when I started with Clojure I mean I didn’t have time for them to explain a lot of the Lisp aspects so a lot of the early adopters had to already know that, or get that on their own because I, you know, just was trying to sell the story of how Clojure was unique and couldn’t tell the story of less than certain fundamentals of some of it and now the scope for somebody who knows nothing is the bigger still so, that’s where the community comes in and they’re already there. They are there with a bunch of supportive tools, an alternative documentation sites and examples and all kinds of exercises and things like that. So there’s a lot of different things and you pick what makes sense to you. I am quite proud of the community and how well they are receiving the new comers and being positive and helping them succeed.
Mike: Great! Well thank you very much for taking the time to sit down.