It looks like despite how awesome Clojure is, there is something keeping it from achieving growth in adoption and the community should look at how to address that rather than look the other way.
It looks like despite how awesome Clojure is, there is something keeping it from achieving growth in adoption and the community should look at how to address that rather than look the other way.
Clojure is a Lisp. Lispers simply failed to convince the younger generation of programmers how powerful and versatile Lisp can be. Any Lisp dialect these days gets rather automatically rejected. Of course, Clojure (or any other Lisp dialect) currently would struggle to gain momentum and compete with other non-lispy languages.
But if you look at the stuff that Lispers are capable of incubating, you'd be amazed. Today Clojurists figuring out interop with Python, Julia and R. They've built Clojure-like PLs for other language ecosystems: Golang, Lua, Erlang, etc. They are pushing Clojurescript on microcontrollers. They're building neural networks, graph databases, and mobile apps. They're borrowing good ideas from other languages, frameworks, and tools.
This isn't a sprint, it's a marathon. Look at the bigger picture. Notice things like Idris, which uses Chez Scheme for its backend. Chez Scheme is almost 40 years old!
And within various Lisps, Clojure is undoubtedly a resounding success. If anything at this point truly could de-throne Clojure, it won't be something like Elixir. It would be a better, faster, perhaps more efficient fork of Clojure.
What's keeping it from achieving growth in adoption is not something internal to Clojure. Or something that Clojurists can turn around. It's the fact that it is a Lisp. And that's not going to change. In fact, before Clojure, Lisps seemed to be getting out of fashion. Clojure made Lisp (somewhat) popular again.
I could use SQL and Emacs Lisp as examples (of languages doing fine with no frameworks). Still, you'd probably say something like: "I meant in the context of general-purpose languages".
Python has not become popular solely because of Django, or Java because of Spring, or Javascript due to Angular, or C# because of ASP.Net. Rails leading to broader adoption of Ruby is rather an aberration than normalcy.
What is a framework but the collection of prescriptive "recipes" that are not always so easily compatible with other frameworks?
There aren't many Clojure frameworks because the Clojure ecosystem itself is a framework with many interchangeable parts. Nothing is stopping you, for example, from incorporating both, Fulcro and Re-frame in the same app. Or using Integrant, Trapperkeeper, and Mount - all in one project. But have you ever tried using both, Angular and React in the same Javascript app? It's a glorious nightmare.
Everyone is biased; people who trained to write in Rails would want to see "a framework"; those who come from Racket perhaps would wish for a better macro system, those who like static-type systems may argue that Clojure needs one, some want better error messages, some proper tail-recursion, etc.
There's no tool, library, framework, or language with no deficiencies, and Clojure is not an exemption. It just goes to personal preference, and there are many, many programmers who absolutely love building things with Clojure. I think the language has passed the threshold of "critical mass", there's way too many people and companies invested heavily in it; it's not going away anytime soon. It may not expand rapidly and gain wide adoption and that's fine. It steadily, slowly keeps growing.
https://www.gnu.org/software/emacs/manual/html_node/elisp/in...
Emacs Lisp comes bundled with this framework in all distributions of the GNU Emacs editor.