Call for New Proposals. June Survey Results.
By Kathy Davis
Call for Proposals
Clojurists Together is pleased to announce that we are opening our Q3 2023 funding round for Clojure Open Source Projects. Applications are open until the 20th of July 2023. Apply today!
We will be awarding a total of $44,000 USD for 8 projects – 4 projects at $2,000 each and 4 projects at $9,000 each. The $2k funding tier is for experimental projects or smaller proposals, whereas the $9k tier is for those that are more established. Projects generally run 3 months, however, the $9K projects can run between 3 and 12 months as needed. We expect projects to start for this round between Sept. 1 and Oct. 1, 2023.
We surveyed our members in late June - to find out what types of initiatives they would like us to focus on for this round of funding. Their responses are summarized below. Thanks as always – it is extremely helpful in ensuring that the community is a vital source of input.
If you work on a Clojure open source project, especially one mentioned as a focus area for our members, please consider applying.
Our Members Speak: Feedback from the June Survey.
What groups, meetups, or sites do you visit regularly that might be a good place to introduce both beginning and seasoned Clojurists to our work? (outside of Clojurians Slack, GitHub, Reddit - /r/clojure, and Twitter)?
- Clojure Berlin
- Clojure Hispano group at Telegram
- clojure-toolbox
- clojureverse
- clojuredocs
- Clojurians Zulip
- Hacker News
- lobste.rs
- London Clojurians
- Mastodon
- NYC Clojure Meetup and other Meetups
- r/programming subreddit
- Youtube channels and content creators
What would you like to be different in the Clojure Community in the next 12 months?
Some selected comments from the survey are listed below:
Documentation
- Much better and slicker documentation and outreach. Documentation that is slick and fun and makes it clear how you enter into using the language and why.
Support for Beginners
-
The Clojure survey finds “learning the idioms” as the top obstacle to learning Clojure, so that might be a place to make a difference. Also, people often want to see sample Clojure applications (not libs) to understand how to put pieces together, develop, and deploy them. More support on things like that would be great.
-
I think we should bring more stuff under the CljTogether umbrella, including e.g. clj-commons &c, and then have people work on the commons directly; same goes for beginner training; discoverability matters.
-
I’d like there to be much more up-to-date, maintained beginner material and maybe also mentoring. Using Clojure has made me enjoy programming much more, and I’d like more people to also have that experience. Some of the barriers to entry may seem artificial to seasoned Clojure devs, but I think it’s important to remember that in some cases even a little bit of friction can deter people away from the language. While some may think “well those people aren’t fit for the language if they give up from a little friction,” I think that’s a poor way to think, and trying to get more people into using Clojure is, in general, going to improve the language, the tooling, and the community.
-
Make Clojure reachable to beginners in any aspect possible. Write official documentation for people who are learning to program. What we have is great for experienced programmers. We need a different layer of documentation. Also make debugging easier as it is beginners will make a lot of mistakes. Error messages are Key. Gve them colors, or at least the option to have them. Elevate everything to and from Java to Clojure at least with an official wrapper just to have a unified way to present the errors.
-
I’ve been running workshops at meetups for 5+ years. Could be an opportunity to have a small ClojuristsTogether “meetup pizza fund” (IMO, a fairly high-leverage use of funds to get support Clojure growth).
-
I’m now part of Clojure Camp (and we appreciate CT’s support!). There may be an opportunity for “summer of code” type open-source internships – ie. sponsor new people to Clojure, not experienced devs; pair them with an experienced dev, to work on an open-source project (ex. as part of yearly developer funding, each developer is expected to mentor one junior clojure dev; the junior also gets some small funding and has expectations to be met) – I could help with administering this; could do this in partnership with Clojure Camp if interested.
-
I think it’s rather hard to discover all the cool libraries clojure has to offer. There are enough amazing resources to learn the basics, but next step when one starts to build apps is underserved. You can find frameworks like biff or kit to get you started, and they’re great start, but discovering things beyond their default choices is hard. Probably some lib finder tools on top of clojars can help?
-
It seems that having a more standard, official, well-documented way to create new projects using templates is something that could help with adoption, or at least with getting started. Developers from other languages are used to having that kind of tooling, and while it exists in the Clojure world, it’s not quite as straightforward in my experience (maybe that has changed more recently). People are still starting out with Leiningen and I think that’s partly because it still seems more straightforward to them in terms of creating new projects and running tests than does the Clojure CLI.
The responsibility for improving the official tooling is more on the Clojure core team, but I think the community could improve this by
creating more guides that discuss the existing tools around the Clojure CLI, like for using clj-new. Library and tooling authors can also
add examples for the Clojure CLI, rather than just having Leiningen examples (or in some cases maybe they should even get rid of the
Leiningen examples in favor of the Clojure CLI).This sort of dichotomy, while not a big deal to seasoned Clojure devs, seems to create some friction for beginners. They’re immediately hit
with a decision they may feel is pretty important - “Which build tool should I use?” - and for which they may have a hard time deciding.
They pick one, but inevitably find examples for the other for things they’re trying to do.
Comprehensive, Multi-media Clojure Resource and Destination
- I wish there was something like what Onyx was trying to be.
- Culture wise I come back to that youtube idea. There needs to be more free, quality content for beginner and intermediate devs. It’s a trope (that clojurists love to hate) that clojure needs is Rails. I think this misses the most underrated contributor to Rails’ success: Railscasts.
- Michael Hartl’s tutorials/books are a good example. This isn’t to detract from the quality stuff that does exist, and perhaps this isn’t something that can be bought; it might just require a singular voice with the type of dedication (to say nothing of skill & resources) to produce such content consistently over a fairly long time
- I think we should bring more stuff under the CljTogether umbrella, including e.g. clj-commons &c, and then have people work on the commons directly; same goes for beginner training; discoverability matters
Grow the Clojure Community
- More companies using Clojure; Making Clojure more known in the business circles. More new users.
- I think the Clojure community is amazing and I like seeing the language grow, albeit slowly. I think we all as a community need to figure out a way to break the stigma of starting new projects in clojure. Wild idea, working on creating some partnerships with companies that like what Clojure has to offer but fear that they won’t be able to hire enough developers. This kind of partnership can help companies give clojure a go as their backbone technology and bring more hobby-clojurists to make their main language of choice. I know too many people who love Clojure and fantastic developers, but don’t put effort to dive deeper than basics as they aren’t sure they can find a job with Clojure.
- I think the presence of Clojure in the greater developer community has decreased quite a bit from a few years ago. Probably more stuff should be done to get more people to adopt it. Introductory-type stuff would be most critical I think.
- There is an opportunity to grow the community by creating python to clojure specific material.
- There is a high bar of entry into Clojure compared to some other languages, like JavaScript. That is because for many, in my experience, the Lisp syntax is intimidating and unusual. It’s also because the community is small and so getting oriented in the beginning is hard. We love Emacs but for many it is a tool that belongs to people who love their tools, and there are a lot of programmers who find that off-putting. Clojure errors are also scary. Anyway, all these things ensure Clojure may remain “niche”, and maybe that is okay, but mentoring people, being friendly and welcoming, having documentation that is slick, etc etc. – all that costs money and it’s maybe the only thing that can get people into the language, no matter how good a language it is.
- There are more people coming to Clojure from Python and JavaScript backgrounds, where there is no prior knowledge of the JVM. It would be helpful to also teach the basics of the Java SDK (threads, IO, etc.).
- We need more marketing efforts to attract people to the language.
- Developer advocates, DevRels, Marketing
Other Feedback
- AI-assisted coding solutions. They’ll improve and become a part of developer workflow in the next year(s), so we need to have some good story here. At least integrate clojure repl with popular tools/agents, once the leaders emerge.
- Standard recommended frameworks for building applications (back-end HTTP services and front-end UI framework) with documentation. These exist now, but there is no one accepted way to accomplish these things, and it makes Clojure appear immature to people new to the ecosystem. It also discourages the development of tooling for those frameworks.
- I would target python interopt so we can use the data science libraries.
- Community-aided core development. I’d like the community to think about what it can do without waiting on the core team.
- Keep supporting
reagent
andre-frame
. - Support improvements in server-side rendering (preferably using Reagent)
- I see the clojure community being less concentrated on ClojureScript…
- Integration JS ecosystem: I would love to see funding for better integration with the overall JS ecosystem. ES6 module output would be great to future-proof ClojureScript for use with tools like Remix etc.
- ClojureScript feels behind JS in many ways. I would love to see more guides, tutorials or blog post about how to get some of the many cool things from the JS world to play nice with ClojureScript.
- Consider being a fiscal host on OpenCollective? They’ve changed their pricing model now so that they take 0% if you take 0% as a host. Could make certain logistics things easier.