4 ms·
I think Clojure will be a very hard language to supersede. Lisp syntax in general is not very common, so lots of people dismiss it just because of that. The one
by capableweb 6y ago
I think Clojure will be a very hard language to supersede. Lisp syntax in general is not very common, so lots of people dismiss it just because of that. The ones that don't, usually look on programming languages differently, and won't leave Clojure unless a serious contender with a seriously awesome team behind it pops up, which since I started doing Clojure (~2010) hasn't happened yet and seems unlikely to happen.
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 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 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.
- mercer 6y agoMy impression is that Clojure has found a niche, for better and worse. 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.
- capableweb 6y agoI came into Clojure with exactly the same mindset. I've never worked with the JVM outside of Clojure, and I'm not going to, but it is a nice runtime for processes that needs performance, but not quick startup time. On the other hand, we now have Babashka, that solves the issue of startup time. So now we have two tools both using the same (ish) language, but for different use cases. 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!
- nextos 6y agoI agree. Personally, I find it disappointing Clojure and Julia have not ended up being the same language. Both have lots of common design principles, and at the same time features I miss on each other. 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.
- bcrosby95 6y agoClojure and Elixir are probably my two favorite languages. Which one I like better probably depends upon the day of the week. 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.
- kimi 6y agoI'm in a similar situation. I like Clojure better than Elixir (though Elixir is "good enough", it sometimes feels like an ElCheapo brand Clojure knock-off) but I have a feeling that the problems I'm after - lots of small messages, resilience, scaling out - will be handled better by BEAM than any JVM. 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.
- andrenth 6y ago> Joker comes to mind as one of those. A Joker-to-Go compiler would be awesome...