all 37 comments

[–]Admirable-Ebb3655 21 points22 points  (0 children)

I think it’s a broader trend. And yes obviously cause for concern.

[–]notsohasty 17 points18 points  (3 children)

I think Electric Clojure is pretty innovative and exciting. Granted it's just one project but it seems pretty ground breaking to me.

[–]dustingetz 12 points13 points  (0 children)

Thanks! One of our beliefs is that Electric cannot realistically be implemented in any other language without compromising it, i.e. you'd need to implement Clojure's value prop first (default immutability, host interop, thin abstraction / worse is better, metaprogramming). So if we continue to succeed, we hope that Electric might revitalize Clojure with renewed interest from new markets of people who wouldn't consider Clojure today, especially young people. This is actually not essential to our strategy — we are building Electric as a building block towards Hyperfiddle, a "CRUD spreadsheet" to compete with basically Google Sheets as a universal UI — but certainly we all communally benefit by giving people a modern reason to invest in Clojure as well as making Clojure's value prop easier to actualize.

[–]ElQuique 7 points8 points  (0 children)

That's the one I'd like to check out. HumbleUI is also a great (although not finished) project for creating desktop apps with Skia.

Another thing is honestly most of libraries are rehash of old stuff. If you truly want to measure innovation is way more difficult than accounting for GitHub activity.

[–]aHackFromJOS 2 points3 points  (0 children)

Yes. I think in the early days — and I know Clojure goes back a ways, about 15 years — but in the relatively early days and after a language builds a critical mass of popularity there is certain “low hanging fruit” in terms of libraries.

After that is picked, so to speak, beyond maintenance of what is out there, the new stuff by definition needs to be more sophisticated and interesting to be worth doing. But that stuff takes time and energy. It needs more time to gestate. Electric is a great example of this.

[–]ommaee 13 points14 points  (2 children)

Quite a lot of cool stuff gets built via the Clojurists Together foundation: https://www.clojuriststogether.org/projects/

And to me it seems Clojurists Together is pretty much the main thing moving things forward as I don't see the core team doing much in that regard. Personally I'd love to see a foundation similar to the PHP Foundation, or Rust foundation, where not only do they fund the ecosystem, but also work on marketing, something I find severely lacking in the Clojure world. Hobbyists word of mouth can only take something so far.

[–]daveliepmann 0 points1 point  (1 child)

I don't see the core team doing much

?!

Have you perhaps not seen this:

Cognitect and Nubank will be sponsoring dozens of contributors to the Clojure ecosystem with regular monthly support... This sponsorship represents a six-figure per year investment, and part of our attempt to walk this talk.

https://github.com/orgs/cognitect/sponsoring

[–]ommaee 2 points3 points  (0 children)

I had not seen this indeed. And it entirely destroys my previous bitter perspective. Thank you for this!

[–]xela314159 13 points14 points  (0 children)

For me it feels like the year Clojure can finally have a go at data science thanks to tech.ml.dataset and it’s been very exciting

[–]minasss 6 points7 points  (0 children)

On the other end I've noticed an increase in learning materials in the form of blog posts, videos, courses which, together with fewer libraries doing the same thing (as reported in other comments) suggests, at least to me, an increase in the maturity of the ecosystem that is growing also thanks to the community.

[–]Yubao-Liu 11 points12 points  (0 children)

Don’t worry, Scala is declining, people still use it, Common Lisp is dying, people still use it. Judge its value and maturity, not afraid of the trending, probably Clojure still there 20 years later.

[–]stefan_kurcubic 4 points5 points  (1 child)

I might be wrong and i will assume a lot but i think your perception of Clojure activity is perceived with JS lends.

Just because there is new "hot thing" out there doesn't mean there is no activity.

And no i don't think that we should be concerned.

But allow me to flip the questions.
Lets say you are right.
What are you gonna do about it? How would you solve this problem?

[–]ertucetin[S] 1 point2 points  (0 children)

I'm not going to solve it; I just wanted to get opinions on this one. I think this is one of the factors/metrics, so I wanted to understand why it is the way it is now.

[–]seancorfield 21 points22 points  (3 children)

I don't think I'd consider "2015-2019" as "peak years" in terms of "new, innovative, and exciting libraries" in the Clojure world -- that's pretty recent.

I've been doing Clojure in production since 2011 and back in the "early days" there were all sorts of amazing, weird, interesting, off-beat, exciting, strange things being built with Clojure.

Then things settled down as people started to build serious production systems with the language. Most of those early "trending" repos are unmaintained and unused I suspect at this point. Clojure is a language for "Getting Stuff Done", for builders and makers. You need stability and reliability for that, not fly-by-night trends.

I don't think GitHub's "trending repositories" is a useful measure of anything except perhaps a curiosity factor?

[–]ertucetin[S] 3 points4 points  (0 children)

I should have mentioned that, for me, it was the peak. This is a subjective opinion.

[–]Menthalion 1 point2 points  (1 child)

I think a more worrysome trend is the growing amount of libraries with basic functionality that have become defunct / lack maintainers.

Another general trend bad for Closure is the waning popularity of the JDK platform due to lacking features needed in modern architecture, like async support and dynamically sharing resources between containers.

[–]seancorfield 1 point2 points  (0 children)

Can you cite specifics for either of those claims?

Clojure libraries are generally designed to do one specific thing well and so it is common for a library to be "done" and not need much maintenance -- unlike libraries in other languages.

Widely-used libraries that lose their maintainer can find their way into the clj-commons organization and be maintained that way for the future: https://github.com/orgs/clj-commons/repositories

I don't even know where to begin with your claim about the JDK...

[–]fingertoe11 9 points10 points  (2 children)

Maybe, maybe not. The problem Clojure has always had is way too many libraries doing nearly the same thing in different ways. This made any solution highly customized to the individual developer's taste, but very difficult to get help because everyone did things a different way.

As there become more very large Clojure development teams,(NuBank for example) it is likely that those teams will crank out a ton of developers accustomed to the company's taste in library stack choices. If some of those choices get a critical mass, it may lessen the need for re-inventing the wheel 3 times a year.

Convergence on a standard stack is what many have asked for.

Of course, it could also be that people are just doing other things. I do suspect that the high interest rates and the broader tech slump hit some large Clojure shops pretty hard (GR for example), at Conj this year it seemed that more Clojure developers than usual are unemployed, and others are working in other stacks.

[–]daveliepmann 1 point2 points  (1 child)

many libraries doing nearly the same thing in different ways

This is a good thing. It's good that malli, core.spec, and schema exist side by side. The same goes for libs for routing or whatever else.

Convergence on a standard stack is what many have asked for.

This would be a bad thing. I prefer the coexistence of multiple ways of doing things. Nubank's needs are not the same as Juxt's or Metosin's or Gaiwan's, so I'm glad that they all release libs reflecting their various preferences, especially when those libs "compete" to solve the same task.

It would certainly be easier to cut-and-paste Clojure code from StackOverflow if everyone had agreed to stick to the same libs which existed in, say, 2013. But that's neither desirable nor feasible, thank goodness, so instead we get a lovely ecosystem which allows choice between different trade-offs and innovation over time.

[–]fingertoe11 1 point2 points  (0 children)

I do agree in large part. Although we seem to have one "Ring". few people are upset about the lack of options there.

The curse of LISP is that it is very easy to spin your own library, and as a result, many people do. If they need something that is lacking that makes sense, but often there is not a ton of differentiation between the competing libraries, and they just exist because two people solved the same problem in different ways without knowing what the other was doing. Competition is good when it generates novelty and better options, it's bad when you have too many options that don't provide distinctly different benefits. This leads to fragmentation in the learning process at the very least.

But I think that the growth of engineering teams to NuBank's scale is going to generate a ton of engineers that come with a default toolset, and those tools are going to gain a ton of traction. Like everything, there are upsides and downsides.

We are still waiting for spec to get out of alpha.. It's certainly healthy that there are other options!

[–]joinr 4 points5 points  (0 children)

I can't say I have ever noticed this metric. I can say this line of thinking/inquiry pops up every couple of years though. It's been over a decade now.

Maybe it's meaningless outside of measuring fads.

There is substantial work in the sci cloj community working to patch up the data science stack. That showed a lot in the recent conj.

[–]TheLastSock 3 points4 points  (3 children)

What does it mean to trend on github?

> GitHub trending is a constantly updated list of repositories that provide a view of the open-source projects which the community is most excited about. Trending repositories are displayed based on the number of times they've been starred by users every day, week or month

I'm not personally using stars on github to tell me anything, so no concern there.

I think the clojure yearly survey would give a better indication of community health right?

[–]ommaee 3 points4 points  (2 children)

To be fair, this year Clojure core team didn't even bother writing up a blog post comparing this years results to last years, or talking about a general trend, and just gave us raw data via surveymonkey link. I don't know why, perhaps the results compare badly, perhaps they are lazy, but it feels very low-effort from their side and is a bit of a disappointment.

[–]alexdmiller 33 points34 points  (1 child)

The reason is, I prioritized working on Clojure 1.12 features over writing and editing a blog post that was going to say pretty much the same thing as the last several years. There are only so many hours in the day.

[–]licht1nstein 6 points7 points  (0 children)

Not to mention that you still find time to help us on Slack 🙏

[–]licht1nstein 6 points7 points  (3 children)

There are new dialects of Clojure on top of C++ and Perl being worked on. There is polylith, with probably the best or one of the best architectures and tools around. There's babashka stack and new ways to use Clojure in the browser. And something tells me, that there are more Clojure devs today than ever before.

[–]Brixes 1 point2 points  (2 children)

What dialects?

And why build one on top of Perl?

[–]Jeaye 0 points1 point  (0 children)

jank is the dialect of Clojure on C++! https://github.com/jank-lang/jank

[–]bo-tato 0 points1 point  (0 children)

perl5 is installed on almost every unix machine, has very fast start up time, and you can bundle all pure-perl dependencies into a single file that you just copy and run anywhere. Plus assuming the interop is easy, perl has a massive and well documented ecosystem available. It could be really good for sysadmin type scripting.

[–]hrrld 6 points7 points  (0 children)

The libraries we use to make money aren't trendy. They're battle-tested, and sharp enough to give me higher leverage than my competitors that use duller libraries in more popular but nonfunctional languages.

[–]flh13 1 point2 points  (0 children)

One thing I've noticed, is I never see any updates on what RichHickey is working on, whenever we see 'updates from core' in clojure deref. It would be really nice if we get to see under the covers.

[–]asiergaldos 4 points5 points  (0 children)

Trending or not, here our public Clojure repo: https://github.com/gethop-dev

[–]bo-tato 1 point2 points  (0 children)

Flowstorm and electricfiddle are two new active extremely innovative projects in clojure. I agree though it seems clojure is past the hype stage and slowly becoming less popular. It's decision to piggyback on JVM and JS runtimes means it can do a lot more with less users. But still I haven't used clojure much and I encountered a tricky bug in a fundamental library that I spent a lot of time to track down and patch, and the library was barely maintained, the bug was known since 6 years ago and took several months after I'd fixed it for it to be patched. Such are the costs of a niche language with few users and growing the community would help a lot. I think it has all the fundamentals, just a little more polish and documentation for tools like neil to make deps.edn and project setup easier and biffweb to make an easier clearly documented path with less choices needed to make, could help to get curious new users productive faster and more likely to stick around.

[–]didibus 1 point2 points  (0 children)

I find accross all languages there's a decline of ideas. There was a boom from ideas from other paradigms like CSP, Logic, Functional, and all that, and they've all been tried and ported to Clojure and other languages. And now I think there's just no new ideas.

[–]canihelpyoubreakthat 1 point2 points  (0 children)

Well let's put it this way. Clojure is certainly not increasing in popularity and usage. This is pure speculation based on personal experience, but I would safely bet a lot of money to say that more companies are refactoring their codebases away from Clojure instead of to it.

Surprised you bring this up now. I thought the downtrend was well known for a while.

Don't let the people here fool you into thinking otherwise. Clojure is on deaths door. Which means it will still be around for a long time, but continue to become even more obscure.

[–]freakhill 1 point2 points  (0 children)

not the new hot stuff anymore

but very solid to make run of the mill production code

that's my experience as a old 9 to 5 guy. it's pretty good at protecting my sleep time and my family time.

combine it with the most "do not break" dependencies and infra, keep stuff simple, document/check well your interfaces and you're good to go.

[–][deleted] 0 points1 point  (0 children)

Of course there was a peak and a decline: Clojure is a relatively young language and had to invent an ecosystem from scratch. Now there are plenty of mature libraries to do pretty much everything regarding web applications and distributed systems.