In this post, I wish to talk about my recent experience with Clojurists Together from the perspective of someone who’s been affected by one of its projects.
At Scicloj, we are making Clojure an attractive data science option. The target audience is practitioners of various fields who have some data to explore, not just the usual programming crowd. I believe a decent data science platform must address the needs of broad groups of people; otherwise, it will simply not be sustainable. In such a project, usability aspects are essential, as, by definition, we need to create something which can be simple and easy for various backgrounds and work cultures. This presents a challenge: how can Clojurians know if what they are creating is actually friendly and useful for people who are new to Clojure?
One possible answer to this is the following: the group of people creating the project needs to keep growing, and especially get some help from people who are mostly new to the story and new to Clojure. Library maintainers can benefit a lot from a fresh look of a person who joins them, learns about their project for the first time, and starts to contribute. Indeed, a large part of Scicloj’s orientation has been about inviting new people and creating new paths for getting involved. In practice, it is still difficult for newcomers to join a project that is, by definition, out of their comfort zone. Quite a few people have joined our groups and meetings and contributed in various ways, but only few have managed to do it with some continuity. That is why I find the following experience so important.
Last July, @generateme and I asked @ashima_panjwani if she could apply for a Clojurists Together project about ClojisR. @ashima_panjwani had already contributed to ClojisR earlier but was still new to it at the time. We hoped that the project would benefit a lot from her perspective if she’d have more time. @ashima_panjwani kindly agreed and applied, even though it was clearly going to be a difficult challenge.
One quarter later, the project was accepted by Clojurists Together. Often, CT supports experienced Clojurians in maintaining their own projects, but in this case, it was different. It was very explicitly requested to support a project by someone who was new to Clojure and was clearly going for a task out of her comfort zone. It turned out to be a very fruitful and wise choice of CT. From the Scicloj point of view, it was wonderful. It would be exactly the kind of fresh look that was needed, and thanks to CT’s support, it would have the continuity and attention to details that are typically difficult to maintain for a long time.
When the project started – Jan. 2021 – the main focus was researching common practices and ideas of the R ecosystem, looking into bringing them into the Clojure ecosystem, and then documenting some recommended practices. The way I see it, this should be the main goal of the ClojisR project – a bridge from Clojure to R – whether through interop or, even better, directly in Clojure code. For the most part, eventually, the fruitful path has been to contribute to other libraries rather than to the code of ClojisR itself. The main relevant libraries were dtype-next, tech.ml.dataset, and tablecloth. From my perspective as a bystander, I think their authors, @cnuernber, and @generateme, were very welcoming and helped make that happen.
To our hope of enlightening existing projects with new ideas and viewpoints, I think this project has been a fantastic success. Personally, I have learned so much from @ashima_panjwani 's analysis and contributions. What she has found in her research of comparing R to the Clojure ecosystem has affected me a lot. I think it also affected some aspects of the emerging ecosystem. The fruits of that are still evolving gradually and bringing up some interesting discussions on the fine overlap and tension between Easy and Simple and between current R and Clojure cultures.
Probably, this has been a challenging project for a newcomer. Embracing Clojure idioms and the different styles of library APIs while still having in mind a broader perspective of library usability and comparing things to the R culture is a rather delicate task. It was also challenging from an organizational perspective since Scicloj and its priorities have been changing these days rapidly. Some of the project tasks were dependent on other projects and their uncertainties. In such a 3 months period, most community members usually experience the ups and downs of life and sometimes need to leave the open-source activity. To most of us, it is not obvious to foresee our availability and pace a few weeks ahead. I, for example, intended to make some changes to ClojisR but could not make it happen yet. On @ashima_panjwani 's side, it was necessary to cope with these chaotic conditions, provide some stability, and keep track of the many little details and plan changes. I think she also did it with a very tight schedule on her side. The fact that it all worked is actually wonderful.
What are the lessons of all that?
In such a challenging situation, Clojurists Together’s funding may matter a lot and may provide the extra support needed to enable the necessary continuous attention. It is a curious question, what formats of support may be optimal, and CT seems to be thinking about it.
With all the chaotic conditions mentioned above, it is not obvious to manage things as neatly as @ashima_panjwani did. I think even much less than that should be considered a success. Surely, different projects may evolve in different ways. Some projects will be dropped or delayed, some may evolve in surprising directions, and various attempts will be less or more enlightening. But in any case, I think it is so important for Clojure projects to keep inviting new contributors and maintainers. This is essential if we want Clojure to become more open to new audiences and cultures.
A longer-term byproduct of all that is that Scicloj got a great new friend with brilliant views about future directions and challenges. These days, @ashima_panjwani is involved in planning a Clourescript study group that will focus on data visualization and exploration tooling. In a sense, it may simply be a continuation of the previous project, addressing related usability questions from the frontend angle. She is also a candidate in the current elections to the Clojurists Together board, where I believe her perspective and experience and her organizational capabilities can be so much valuable.