└── README.md /README.md: -------------------------------------------------------------------------------- 1 | #### always-be-clojuring 🐝 2 |

3 | Issue Tracker 4 |

5 | 6 | 7 | #### Assumptions 8 | The Clojure and Clojurescript community would like more developers and companies to use Clojure. 9 | 10 | Currently Clojure and Clojurescript have a steep learning curve for most developers. 11 | On top of the language looking completely foreign, getting set up for Clojure development can be time-consuming, frustrating, and difficult. 12 | 13 | By discussing and analyzing the issues we think hamper more developers and companies from using Clojure, 14 | the community can plan and implement solutions that make learning and using it easier. 15 | 16 | If we want to grow the community, lowering the cost to entry shows great potential: 17 | Few people who get past Clojure's initial challenges ever turn back. 18 | 19 | ## Approach 20 | The main purpose of this repo is to provide a central place for the community to discuss and organize efforts to make Clojure easier to learn and use. 21 | Where it makes sense, we can try to use a few basic software development methodologies and principles as guides. 22 | 23 | 24 | **Create issues that define the problem** 25 | 26 | Reasons Clojure hasn't become more widely used is discussed on social media with relative frequency. 27 | It's generally the same pain points being mentioned each time. 28 | A central repository for these issues can prevent us from having to identify them repeatedly and move us toward a more complete understanding of the barriers developers and companies face. 29 | 30 | **Break large problems into subproblems** 31 | 32 | Prior conversations have considered the potential reasons Clojure hasn't become more popular, but they haven't been able to consider any individual reason very deeply. 33 | Having a place where we can break the problem down can allow us to get to the bottom of each individual issue and arrive at a solution for it. 34 | 35 | **Prioritization/impact** 36 | 37 | Prioritizing issues by how much impact the community thinks a solution would have can allow us to have some idea of which are most important. 38 | This can allow interested contributors to avoid spending time on issues that the community as a whole doesn't think will make as much of a difference as other issues. 39 | 40 | **Costing** 41 | 42 | By considering the cost of implementation, the community and contributors can have a better idea of the amount of time and effort involved to implement one solution versus another. 43 | Cross referencing this with how much impact we estimate it will have might show us there are low cost, high value issues we can take on right away. 44 | 45 | 46 | ## Prior art 47 | - [Clojure's growth trajectory](https://www.reddit.com/r/Clojure/comments/7047ts/clojure_growth_trajectory/) 48 | - [I just started learning Clojure, I love it but the documentation is just about the worst thing ever](https://www.reddit.com/r/Clojure/comments/7024oj/i_just_started_learning_clojure_i_love_it_but_the/) 49 | - [Maybe Clojure has nothing to offer web programming that is better enough to make people switch](https://twitter.com/ericnormand/status/947947506838753280) 50 | - [Simple and Happy; is Clojure dying, and what has Ruby got to do with it?](https://lambdaisland.com/blog/25-05-2017-simple-and-happy-is-clojure-dying-and-what-has-ruby-got-to-do-with-it) 51 | - [Interesting Discussion on Clojure Growth and Direction](https://www.reddit.com/r/Clojure/comments/6brhsq/interesting_discussion_on_clojure_growth_and/) 52 | - [What does Steve Yegge mean by Clojure being "user-hostile"?](https://www.reddit.com/r/Clojure/comments/3jjit5/what_does_steve_yegge_mean_by_clojure_being/) 53 | - [Should Cognitect do more for Clojure?](http://www.lispcast.com/cognitect-clojure) 54 | - [Guidance for ClojureScript beginners](https://docs.google.com/document/d/1vom_MUTmQjsmjeQgw60ChGO9NDD9AvoIwJPPzrf8FKM/edit#heading=h.657ovwb1zxit) 55 | - [Clojurescript for JS Devs](https://github.com/thheller/shadow-cljs/wiki/ClojureScript-for-JS-Devs) 56 | - [welcome-to-cljs](https://github.com/shaunlebron/welcome-to-cljs) 57 | - [cljs](https://www.npmjs.com/package/cljs) 58 | - [Parens of the Dead](http://www.parens-of-the-dead.com/) 59 | 60 | ### Editor setup 61 | - [Slick Clojure Editor Setup with Atom](https://medium.com/@jacekschae/slick-clojure-editor-setup-with-atom-a3c1b528b722) 62 | 63 | ### Error messages 64 | - [Improving error messages in Clojure as a library](https://clojureverse.org/t/improving-error-messages-in-clojure-as-a-library/1765) 65 | 66 | https://twitter.com/borkdude/status/974253241574809600 67 | 68 | ## Ongoing efforts 69 | ### Beginner entrypoints 70 | - [Clojurescript 1.10 Quickstart](https://github.com/clojure/clojurescript-site/blob/96cdf27ff1a2a836ae4f7c706e48a0bff21e95a0/content/guides/quick-start.adoc) 71 | - [maria.cloud](https://www.maria.cloud/) - A ClojureScript coding environment for beginners. [Github repo](https://github.com/mhuebert/maria) 72 | 73 | ### Documentation 74 | - [Dynadoc](https://github.com/oakes/Dynadoc) - Dynamic documentation for Clojure(Script) 75 | - [Ultra Docstrings](https://github.com/ericnormand/ultra-docstrings) - Replacement docstrings for Clojure, focusing on learning. 76 | 77 | ### Error messages 78 | - [Pyro](https://github.com/venantius/pyro) - Light up your Clojure stacktraces 79 | - [expound](https://github.com/bhb/expound) - Human-optimized error messages for clojure.spec 80 | --------------------------------------------------------------------------------