Dissatisfaction is the mother of all discovery
A few years ago I was feeling dissatisfied with both Java and its leading successor Scala and having read about Clojure “a LISP on the JVM” I was eager to give it a go. I had heard of LISP before in terms of artificial intelligence and optimisation problems, I had even given Common Lisp a go but the difference between LISP and the conventions of the curly brace block languages was too great.
Clojure’s syntax was no less unfamiliar but the ease of firing up a REPL and the way the language allowed you to bodge your way through with the standard libraries of Java meant that I was able to get over the hump and start exploring the unique way that LISP allows you to compose functions.
Having played around with Clojure a bit I attended a talk by Rich Hickey talking about why he had created Clojure and giving an overview of the language. The audience was small and it represented a fantastic opportunity to learn a bit about Rich’s views on software development which were fundamental to what he was trying to do with Clojure as a language.
After the talk Rich and a small group retired to a nearby pub to continue the conversation. In hindsight this was an incredible opportunity to have a very free and frank discussion with someone who was part language guru and part software practitioner. I remember that I didn’t agree with everything that Rich said that night but it provided a massive amount of motivation to carry on and dig further into the language.
Having learnt what I know of Ruby via the dojo method I knew my chances of learning Clojure would be exponentially greater if I had a group to work with and some kind of format that would force me to get stuck in to the code. I decided to hold a Clojure dojo as part of a series of tech events I was organising as by chance a colleague was interested in the language too. At this point Bruce Durling enters the picture as he attended the dojo and had a long-standing love of LISP. Bruce was excited by the possibility that he might actually get to use LISP in a production capacity rather than as a hobby.
So with Bruce providing the LISP expertise and me the venue and the schedule we turned the one-off dojo into a regular quarterly dojo meeting.
These early dojos are now somewhat legendary as we spend the part of the year trying to program a text adventure in LISP. Our ineptitude knew no bounds but with each meeting our determination not to fall back to OO behaviour and try and create a function that generated the game world (a big map) yielded results. I remember near the end someone implemented a help function that used metadata on our command functions to reflectively generate documentation. It felt like the future!
More importantly the event became more popular and more frequent. Becoming bi-monthly then monthly and attracting both LISP fans and people want to find out more about Clojure. Bruce’s legendary friendliness developed into a sophisticated MC’ing style and we worked hard to try and incorporate the lessons of accessibility that we had seen keep the London Python dojo popular. The early dojo was the training ground for the later usergroup.
It was at the dojo that we discussed whether there would be enough interest in having some talks about Clojure and where we also found some of the first speakers. After all not many people had heard of the language so mostly we would have to learn from one another. Bruce approached Skillsmatter for a slot and again from small beginnings a popular regular event developed. One that seemed to attract more people who were “Clojure-curious” but not prepared to try and code it themselves.
Bruce made a crucial decision at this point that the simplest way to help the group grow was to say yes to anything that people wanted to do but have them run it with our support rather than try and do everything ourselves. When people had organised their event they became organisers in the community in their own right. As both Bruce and I became involved in startups and inevitably got sick or had to leave town for the occasional holiday and had to miss the increasingly more frequent events this meant the London Clojurians (as we had called it) kept on trucking even without us. In fact our absences meant that a new group of dojo MCs and event organisers got to practice their skills in the way that we had.
However I think we’ve retained our core principles from the early days. London Clojurians is open to everyone who is interested in Clojure, not just experts and gurus. We want a community that is respectful and friendly. We want people to share what they know because they know more than we do and everyone benefits from a stronger community. If we learn something then we should help teach it too.
I’m biased but I think that London Clojurians is a good place. One where you can still ask silly questions and get reasonable responses but also a place where you can show off your l33t Emacs skills to people who are interested. I think our talks are not just a technical exercise in Clojure but also examples of having fun and making a difference with code.
So please, if you think Clojure is interesting, join us.