Rethinking community scope?

The last few months converging to re:Clojure have been intensive for quite a few of us. There is still a lot to unpack from the recent few weeks and months, where we have been meeting new friends and new ideas. It may also be a good time to think.

This post is based not only, but mostly, on the experience at the Scicloj community. But it applies to a broader scope, I hope.

The main focus of Scicloj has been data science and scientific computing.

However, some of our main challenges are actually more general. Some examples are making Clojure one of the obvious choices for people of various professions, creating clear pathways for beginners to enjoy the Lisp way in their data explorations, and building easy and simple bridges between Clojure and other ecosystems.

Also, some of the practices and resources that Scicloj has been creating could apply in a more general context. Organizing study groups and task groups, maintaining dialogue between library authors, creating organizational memory over core topics, recognizing common goals and prioritizing them as a group, running workshops and meetups, and helping newcomers to become active contributors, are some examples.

We have been meeting many Clojure friends who could collaborate on those problems and enjoy those resources. Possibly, the main Scicloj title – “data science” – might be excluding or discouraging a few friends from fully enjoying Scicloj as an environment for their open-source activity. Possibly, we could organize things a bit differently.

:grapes: Here is a suggestion. It is phrased in an indecisive fashion on purpose, so that we can create some thinking around it, and discover more ways to phrase it. :grapes:

What if we created a new community structure, where broader groups of Clojurians would collaborate around the goals mentioned above, and enjoy resources and practices of the kinds mentioned above?
The idea is not to abort any of the current structures and projects, but rather to create new ones around them, which would be more inclusive. The idea is not to lose the focus with respect to our main goals, but rather to have a broader discussion and collaboration around them.

:kiwi_fruit: It would be great if you could share your thoughts and comments below. Please rephrase, criticize, and tweak some of the ideas to match your own hopes and beliefs. That is the point, in a sense. :kiwi_fruit:

If anybody is interested in community building and wishes to take on such projects in the long term, or just has some thoughts to share, I would love to have a call and brainstorm together. :pray:

9 Likes

As someone that has recently dipped his toes into data science, I found the existence of scicloj to be encouraging and relieving. Looking for data science-related libs in clojure is a walk through a graveyard, but posts on this site and https://scicloj.github.io/ gave me the confidence that there are people actively working on making clojure a practical choice for data science.

A concern I would have if scicloj restructured into something less explicitly related to data science is that clojure would no longer have an obvious on-ramp for people interested in data science with clojure. Additionally, there exist loose collaboratives of clojure programmers right now - clj-commons is one example. How would scicloj.next differ from those?

If scicloj solves problems outside the scope of data science, that’s great, but IMO it shouldn’t mean that scicloj reorganizes to address a wider range of problems. It could mean that scicloj or its members simply release additional libraries, applications, blog posts, etc.

Finally, I want to thank everyone involved with scicloj for making it what it is now. I haven’t been involved, but I have quietly benefited from its existence.

3 Likes

Thanks, @tomc, these comments help a lot.

To clarify, the suggestion is not to change anything about the scope of Scicloj, but rather to create an additional community structure of similar spirit, that:

  • will have its own scope, a bit broader but focused and prioritized (possibly around making Clojure easy for various professions working with data)
  • will adopt similar practices (study groups with weekly sessions, routine one-on-one meetings with newcomers, creating a dialogue between library authors, continuously supporting new contributors in their projects, emphasizing meetings as a way of communication, continuously discussing common priorities, etc.)
  • will share its resources with Scicloj

Exploring the relationship with other collaboratives as you suggested sounds good to me. I do not know clj-commons closely, but probably you’re right that there is some overlap here.

1 Like

Well, if I’m honest, I felt I had to reply to this post just because of the photo-title match: very nice :). I don’t know if this is from google images or much closer to home, but it made me smile either way!

Since I’m here though, I guess I should say something more constructive…

Personally speaking I’m not sure I fully agree with the intent, but this sincerely may simply be because I don’t understand it :thinking: .
When it comes to organising community groups, my feeling is that you need a strong core that the community can be united around. It’s better to be loved a lot by a few than a little by many etc. It’s not clear to me whether or not you are disagreeing with this principle, but I mention it simply for the logic of the argument. I think that data science is itself an abstraction that recognises that there is now something in common between scientific disciplines and wider computational problem solving in general. I don’t consider myself a ‘data scientist’ but I was partly attracted to Clojure and greatly encouraged to stay for the reason that there was such a community. And I would say a vibrant and very welcoming one at that.

The questions for me then is

  • would what you propose dilute that existing community by splitting contributors’ time or would it be distinct enough to be carried on by completely different people?
  • would the proposed community be specific enough to attract and engage enough people for critical mass?

As an example, this criteria

Some examples are making Clojure one of the obvious choices for people of various professions, creating clear pathways for beginners to enjoy the Lisp way in their data explorations, and building easy and simple bridges between Clojure and other ecosystems.

seems too vague to me to build a community structure. I would say that you could use it to define a role for helpers to guide people towards existing communities but I don’t think it’s something that an outsider could necessarily ‘join’.

Not sure if that makes sense, but it’s more than “what a great picture <-> title combo!” :).

3 Likes

@CTW, that is so kind. And these comments help a lot!

I don’t consider myself a ‘data scientist’ but …

That is exactly the statement that many of our friends tend to say. What I am wondering about is whether it means the current framework of titles and ideas is not being completely inclusive to these friends.

  • would what you propose dilute that existing community by splitting contributors’ time or would it be distinct enough to be carried on by completely different people?

If we’re talking about people contributing to specific projects (e.g., Sicmutils), I don’t think new community structures should disrupt them.
If we’re talking about people working on community building, the hope is that we will have more of them, as that is something we need very much. But yes, it is a risk, and we should be careful in creating new obligations.

  • would the proposed community be specific enough to attract and engage enough people for critical mass?

That is one of the hard questions here, right? It probably depends on a good definition of goals. Thanks for phrasing it this way – ‘specific enough’. That helps.

As an example, this criteria

seems too vague to me to build a community structure.

Thanks, yes. In our situation, all of those (reaching out to various professions, creating clear pathways for beginners, building bridges with other ecosystems) are actual important needs. Arguably, without addressing them, we cannot have a good story for data science in Clojure either. All of them deserve dedicated groups to work on them. How could we support such processes?

It helps to know that my post was kind of unclear in stating a goal. Maybe a more decisive post could make it easier, but I am delaying that a bit, hoping to hear more thoughts first. Hopefully, the discussion we are having here will allow itself to make things even more problematic, by suggesting other beliefs about our current needs and goals.

To make it more focused for a moment, let us think about one of those needs: making Clojure a friendly choice for people of various professions (biologists, geographers, musicians, having some data tasks that could enjoy a REPL).
Is this goal – making Clojure accessible to those groups – something that people here are interested in contributing to? And if so, how can we support that process?
Hopefully, we could think about that. For a short while, maybe let us not limit ourselves to our existing social structures, but imagine from scratch, how collaboration on that could look like.

In the last few days, I’ve been lucky to have some enlightening conversations with friends who could share their opinions about community challenges. If that is ok, let us stay unfocused, have more conversations, and be in this search for a while.

2 Likes

… seems too vague …

In my case, I found scicloj randomly because of some posts and then re:clojure, but I got interested because of the visual tooling.

It currently feels like the expansion of scicloj is going in two directions: social and technical.

The social aspect as you said @daslu is happening because people who don’t feel like data scientists are interested in the community. I don’t have many ideas on how to handle this part, but I think using more inclusive language would already be enough. So switching from “data scientist” to “people interested in data wrangling” or similar.

The technical part, at least for me, seems to focus on visualizations and tooling. It feels like scicloj is accidentally building a better repl experience, with namespaces as notebooks and similar ideas. So it makes sense to me to try to collaborate in this space specifically and see if it grows from there.

I got inspired seeing Glamorous Toolkit / Pharo / Smalltalk Session 3 (Eric Normand, Tudor Girba, Gene Kim) - YouTube yesterday and it feels like we could steal a lot of those ideas.

There are two ideas, in particular, that have been floating around in my head for some time:

  • clojure programs are just data, so data science should help us with our programs
  • most of the time we think of data science as big data, but a lot of the time it looks more like deep data and data exploration

It feels like those are more general problems that we can takle as a bigger community to help everyone.

2 Likes

Interesting discussion - thanks for starting it @daslu. I’ve been mulling it over and I have a few ideas:

Yeah, it seems like some “notebook of the future” might help out with efforts A and B - making Clojure more accessible for beginners and making it more accessible for people of other professions.

And there are a few projects working on notebook-like interaction platforms. And there’s some new efforts to build a common set of libraries that those notebooks can share. Perhaps working on those common notebook libs would push the ball forward for both A and B mentioned above.

I think the “no code” thing is a bit of a fad, but I think there is a clear future in achieving literate programming through some notebook-like scheme. Say, some biologist wanted to present on their blog a new algorithm for analyzing genetic information - it would be nice if they could embed a beautiful presentation of that algorithm and, perhaps, even let readers play with the algorithm right there in the browser. Or maybe provide some interactivity, and they can optionally launch a more feature filled notebook experience from there.

Another title common in the Clojure community is “Data Engineer.” It’s more-so like a programmer than a data scientist, but it’s heavy on data schemas, organization, sanitization, wrangling, etc. That might be a larger umbrella term, which might feel more inclusive for some folks.

As an example, at some point, after injest is out of beta, I’d like to transfer ownership of that project over to some organization to steward its long term maintenance. It might not be a best fit for an org focused specifically on data science, as the audience might be a little more general than that. Others might have libraries in a similar situation.

Tooling (which also has some overlap in this space) has been notoriously under-staffed, under-organized and in need of some foundational support. Clojure tooling authors have done great work keeping things maintained and evolving, but it’s still a very uncoordinated, organic pattern of growth. Some of that is facilitated by the organizational efforts of clojurists-together. We may benefit from thinking about what they have and haven’t been able to accomplish.

I think there are a lot of good ideas out there and some are being actively worked on. What we need more of I think is leadership and I think we have that in @daslu and his fellow organizers in the scicloj community. If we could formalize these efforts under some organizational structure, I’d def be down to donate working funds to the cause.

2 Likes