Although there are some nice efforts on getting wider support for Clojure. Babashka is one of my favorite projects, that leverages SCI (Small Clojure Intreper) and GraalVM to build a subset of Clojure that can startup much faster, making Clojure suitable for CLIs and desktop apps.
Then we have the Clojure-like languages that takes the best ideas of Clojure with some differences and different runtimes. Joker comes to mind as one of those. Here are some others: https://github.com/chr15m/awesome-clojure-likes
I also think ClojureScript is still a hidden gem in the frontend world. Now with the rise of shadowcljs, it becomes easier to get started, which is seemingly super important for the JS world (rather than focus on longterm experience, first timer experience is the focus), so more people will see the strength in Clojure for client-side clients, especially if the data structures you're dealing with is coming from 3rd party clients instead of you making them up on the backend.
All in all, Clojure will be hard to replace, but definitely not impossible, it'll just take a lot. For now, Clojure is the king on the hill, with it's small versions eating up some smaller hills. In my view, it's time has yet to come.
Edit: Also, to see the current state of Clojure, check out the "State of Clojure 2020" survey results, gives you a overview of the ecosystem: https://clojure.org/news/2020/02/20/state-of-clojure-2020 Main take away for me is that Clojure is constantly gaining ground in the professional environment, showing how important the practical side of Clojure really is.
Back when I looked into it, I loved the lispyness but the JVM underneath it never quite 'clicked' and there was something about the ecosystem/community that wasn't so much bad as much as it left me ambivalent.
Then I looked into Elixir and it just 'clicked'. From what I understand, its creator, Jose Valim, took a /ton/ of inspiration from Clojure.
I still watch Rich Hickey's talks and when I have more time, I really want to take a deeper dive into Clojure, so I by no means want to reflect negatively on my experience with it so far. Just an anecdote.
And I think that's where one of the most powerful strengths of Clojure comes from. It's a hosted language, so it runs on many platforms. Today we have JVM, JavaScript, C#, Babashka and more smaller experiments, who knows where the language will pop up in the future? I'm excited!
Clojure piggybacked on the JVM to bootstrap its ecosystem, but long term I'm not sure this strategy offers a good growth path. Julia chose to go the LLVM route, and despite being a dynamic language performance is incredible. Multiple dispatch + AOT compilation on specialized methods works wonderfully well. Clojure also has multiple dispatch. They also both rely quite heavily on macros.
I guess what I like most about Elixir is the BEAM vm though. I would really love clojerl to take off. But it's basically a niche of a niche.
But I'm also primarily a Java developer. So the JVM has never bothered me.
On the other hand, the Dialyzer experience - especially in VS Code - is sorely needed in Clojure, and it has nothing comparable. Whatever Rich says, types (or specs) are not built to make code run faster - they should be there to protect you from your stupidity and laziness. Automatic inference, and one-click add-to-code, are a real treat.
A Joker-to-Go compiler would be awesome...
Depending on what kind of work you're doing, especially if you're looking to do work with it, Julia might be worth some time. It takes a rather long time to really grok the magic of it, but I've found multiple dispatch to be as significantly influential to problem solving as FP and immutable data concepts. It's weird, it takes time to become comfortable with it.
Depending on your use case, Guile Scheme has made incredible performance strides. Wingolog has a fantastic blog detailing some of those adventurous commits. It's nearly intimidating seeing his skill with Scheme.
Edit: nearly forgot! https://github.com/lokke-org/lokke
Lokke is clojure on guile. Pretty cool, haven't actually used it yet, so ymmv
- Programming database as a first class citizen
- https://darklang.com/ - Live introspection
Both harken back to image based languages like small talk in a certain senseThere's also React Server Components which ClojureScript will benefit from adopting when it's finished baking in the React world