Hacker News new | ask | show | jobs
by armitron 221 days ago
Clojure is a niche language that (for realistic purposes) is still tied to a single platform, the JVM, which (Clojure, not the JVM) looks more dead with every passing year. It never became popular and it's been steadily losing users. It's also not as general purpose as Common Lisp (ie. not suited for system or lowlevel programming).

If you're going to learn a niche Lisp, you might as well learn Common Lisp or Scheme which have well-specified standards, have stood the test of time and will still be around for decades to come.

11 comments

Although niche, things are pretty lively in the community. Among other things this year great progress was made on Jank, the native LLVM-based implementation with seamless low-level C++ interop. As part of that work a test suite is being created [0] and now includes runners for all of the major implementations to compare compatibility, next best thing besides a formal specification.

[0] https://github.com/jank-lang/clojure-test-suite

Clojure will be around as long as the jvm. It’s mostly done at the core level, most updates are to leverage new host features nowadays. The rest is happily provided at the library level by the community (which is still very prolific).

And it’s not tied to the jvm per say, look at clojurescript (and derivatives) or the upcoming jank.

It’s far from dead. As much as I like CL, the ecosystem is a bit of a desert compared to the jvm.

Wow. I clicked on your user name for some reason. You've been here 19 years and only have 34 karma and made only 16 comments!

Anyway, I came here to say Clojure also targets JavaScript and could target more like ClojureCLR https://clojure.org/about/clojureclr

Here, have another karma point!

Thanks! Long time lurker indeed.

I also forgot the very solid ClojureDart.

The JVM has suffered a fate worse than death: it's become so wildly successful that it's boring. So much enterprise shit runs on Java that it has sort of faded into the background noise of civilization and, like the System/360 (now Z/OS) before it, doesn't grab headlines anymore.
Which makes Clojure extra tempting because there is a bit of a infectious way to get Clojure i to corporations when you are always just handing the ops guys a "Java" we app bundled as a jar but secretly inside it's all Clojure compiled classfiles that work perfectly run on many JVM-based web servers with no additional effort.

I think Rich even alludes to this fact in one of his talks where it would be disallowed to run Ruby/Python/Rust whatever but it's Java then it's a know entity.

Yeeeeah, except we're living in the DevOps era, which means things like "thinking about how this will be built and deployed" is now the devs', therefore the whole organization's, responsibility, and so you have to think about whether your CI/CD pipeline can accommodate, or be made to accommodate, the Clojure compiler, leiningen, et weary cetera.

There's another, orthogonal, aspect: I half-jokingly suggested Clojure as a substitute for one of the DSLs we use at work, and my idea was shot down by a teammate based on the reasoning that Clojure is hard and most of the Java devs (not my team, of course) in the shop are not up to learning it or coding in it. So that's another thing to consider: when you leave the company, who else will be up to maintaining what you produce?

Both of these considerations weigh strongly against attempts to "sneak Clojure in through the back door".

JVM is very much not dead even slightly. They just released virtual threads, which are ridiculously awesome. Also it's not tied to a single platform, clojurescript lets you write clojure in browsers and on node.js, and babashka lets you use clojure in a scripting environment via a single executable
I haven't tried clojurescript but I'm fearful of languages that run on top of other languages or platformks, because of complications that produces for debugging.

How do you debug ClojureScript? Can you modify the source-code while in the debugger? That is a huge time-saver, you debug and see a typo and fix it right away. My preference are influenced by my background in Smalltalk's "live" environemnt: you see the variables, the stack, and can change anything without having to stop the debugging session and then have to go back to the "editor" and then locate the place you (now know) you want to modify, and then start again.

Hm I definitely haven’t tried a debugger! I’m not sure if that’s a PITA to set up. I had a terrible time trying to get a debugger working with typescript on top of node.

Since clojure is so REPL heavy I haven’t felt like I’m missing a debugger too much. But the smalltalk live environment sounds ridiculously cool. I do end up using REPLs to remote programs (even prod lol) pretty often, which is pretty crazy for me coming from a node background

Prolog and Dart programmers earn the least, but Erlang and Clojure programmers earn the most? Something is fishy here...
I would take this statistics, like every other one, with a grain of salt, but still wanted to put it out there as a possible discussion point.
Likely just not a statistically significant enough sample of any of those to justify them even putting them on the chart. Except maybe Dart, and that gets the "curse" of being front-end tech which for some inexplicable reason is underpaid.
Yeah, that seems likely. Although it's lower than PHP!
>>Clojure programmers earn the most?

All the best finding a Clojure job though.

Im guessing they pay all that much, while simultaneously cursing themselves for not using Python instead, and swearing to never use Clojure again.

I know that as I have seen people do and say similar things about Perl and Erlang in the last decade.

Nope. I mostly happily used Python in my previous job for many years, now I'm doing Clojure. There are benefits and drawbacks to each, but I don't know if I'd want to go back to Python. I'm a Lisper (Schemer, really) at heart so maybe I'm biased.

Having said that, I don't think I'd pick Clojure for unpaid (hobby) projects. The JVM is such a hog and I don't like anything related to the Java culture...

I suspect kamaal meant that the people who hired you are cursing themselves for making such an expensive decision.
I frankly miss the JVM. I work almost exclusively in Rust these days and haven't worked in Java or Scala since 15 years ago, and I do prefer working closer to the metal.... But... The JVM is an amazing mature runtime with a boatload of tooling. JMX, which has been there since almost the beginning, is the kind of thing missing from almost everything other managed runtime I've worked with.

The amount of R&D that has gone into making it execute with good performance, and its overall stability...

Yeah, it's got the curse of being boring.

I do think it is perhaps unfortunate that Clojure is tied so heavily to the JVM, because I actually don't think it gains much from that ecosystem... but it's a product of the time it was first written.

Actually hell. I'm between jobs, I like Lisp, and I miss the JVM. I've never worked in Clojure, but does anybody want to hire me to work in it? :-)

> I do think it is perhaps unfortunate that Clojure is tied so heavily to the JVM, because I actually don't think it gains much from that ecosystem... but it's a product of the time it was first written.

When I was doing more Clojure, I loved that it was on the JVM because it meant I got to use every Java library under the sun. There are tons of battle tested Java libraries that didn't have to be rewritten in Clojure, and getting to use them for approximately zero financial and runtime cost was a HUGE benefit of Clojure compared to other niche FP languages.

I prefer CL, but… clojure at least has some commercial usage and is by far the most successful of current lisps, if we do not count elisp.
Just to counter-balance the inferred conclusion that Common Lisp would not have any commercial usage (sorry, words are important, FUD is too close from hasty wording or hasty conclusions): https://github.com/azzamsa/awesome-lisp-companies/ (example companies using CL today, and yes some pick it for new projects, and yes some hire) (and I don't want to argue if the list is impressive or not: it's some commercial usage :D best,)
Clojure is not going anywhere anytime soon.

It sees plenty use as Clojure/Clojurescript and Babashka. (and other niche variants). Jank is shaping up to be real nice too.

I don't care if it's niche if it solves my problems and gets the job done faster.
You're saying that Clojure is looking more dead, so you suggest... Common Lisp? That looks considerably more dead than Clojure.
I'm not sure that Common Lisp looks less dead, but rather, more eternal.
> the JVM, which looks more dead with every passing year.

Lol, only dying/dead in the febrile imagination of some HN commenters. The JVM has had some of the most explosive feature activity in the last several years. Java had several million greenfield projects in 2024-25 - among the top 6 greenfield programming languages according to the Github Octoverse.