Live data from Hacker News

Ask HN: Is Clojure Dead?

news.ycombinator.com

31–40 of 145 posts

Re: Ask HN: Is Clojure Dead?

#31
post #30
post #5

Clojure is not dead, the core language is still very strong, but the dev experience has been degrading IME. This is due to a lack of heavy corporate backing and investment, probably by choice. Taking a PL to the mainstream is very expensive. You cannot compare Clojure and Rust in any way as they're completely different design philosophies.

Do you have examples of the dev experience degrading? My experiences is that the tools and libraries only continue to mature (as does the Clojure language itself). Do you just mean that things are improving less quickly than they are for, e.g., Typescript?

I mean compared to a few years ago. I tried setting up a new project after 1 or 2 years away from the ecosystem, and struggled a lot : all existing templates to set up new projects (esp. with CLJ/CLJS combined) had bitrotten and were not usable out of the box ; emacs integration no longer working out of the box, etc.

I think it's a "death by a 1000 cuts"/"broken windows" that is may be happening when the ecosystem lacks funding to take care of the boring maintenancey stuff. If I remember well, this is a conscious choice by Rich Hickey, a choice that one should respect, but will prevent Clojure from ever getting to the next level IMO.

Re: Ask HN: Is Clojure Dead?

#33
post #29
post #5

Clojure is not dead, the core language is still very strong, but the dev experience has been degrading IME. This is due to a lack of heavy corporate backing and investment, probably by choice. Taking a PL to the mainstream is very expensive. You cannot compare Clojure and Rust in any way as they're completely different design philosophies.

> You cannot compare Clojure and Rust in any way as they're completely different design philosophies. That's actually why it is interesting to compare them. Comparing things that are the same would quickly become very boring.

What I mean is that you can only maybe compare them in a vacuum. For a concrete given task, "is Clojure or Rust better" rarely comes up because there is little overlap in application domains.

For instance, one domain where Clojure shines is for complex web apps, as your frontend and backend are in the same language, and can be tightly integrated. I believe dustingetz is working on taking this to the next level.

Re: Ask HN: Is Clojure Dead?

#34
post #28
post #14

One benefit of learning functional languages, whether Haskell or Clojure, is that it makes you a better developer in other, non-functional, languages.

can you clarify "how" it makes one a better developer? When I think of how the java streams API is used, it generates lots of garbage (i.e. lots of intermediary allocs), doesn't always make things clearer.. i'm genuinely curious (and in fact i like the streams API, it's just often misused by collecting at the wrong step..).

Your programmer’s worldview will expand, you’ll learn new ways of doing things.

Re: Ask HN: Is Clojure Dead?

#35
Clojure is a wonderful language, but not so wonderful that I can tolerate its slow startup and compile times. I think lots of developers think the same way. Imo any language nit facilitating fast startup and compile is stillborn. Imo the same goes for any language requiring you to setup a "project" or something to get started.

Re: Ask HN: Is Clojure Dead?

#36

Clojure is definitely not dead. There are active Clojure user groups in most countries (even in my little region) and i still (or even more than ever) stumble uppon cool and exiting projects and libs (e.g. https://github.com/borkdude . It's just incredible what a surplus value this dude alone provides to the ecosystem) Clojure may not have the biggest audience but like others said, it generally focuses more on stabil…

"Dead" is a strong word.

Languages that reach the maturity Clojure has never die, they become undying.

There are active Perl groups in some countries. Perl is so undying. Clojure less so, but...

It's a spectrum where Clojure neither has massive adoption (1.51% in SO's 2022 survey [0]) or rapid community growth (compared to hyped or massively adopted technologies).

Clojure is listed as the top paying language in StackOverflow's 2022 survey.

Clojure is an acquired taste. And it isn't a bad one, either!

[0]: https://survey.stackoverflow.co/2022/

Re: Ask HN: Is Clojure Dead?

#37
post #28
post #14

One benefit of learning functional languages, whether Haskell or Clojure, is that it makes you a better developer in other, non-functional, languages.

can you clarify "how" it makes one a better developer? When I think of how the java streams API is used, it generates lots of garbage (i.e. lots of intermediary allocs), doesn't always make things clearer.. i'm genuinely curious (and in fact i like the streams API, it's just often misused by collecting at the wrong step..).

I think it helps you better understand how data flows through you program.

My input is A, and I need to create D. A -> A', then another function makes B, then another makes C, then another makes D. You can reason about and relatively easily test each of these steps. However, testing in a repl gets quite messy with calls such as h(g(f(x))). In python, you'd need to decorate you functions with an input/output logger.

Re: Ask HN: Is Clojure Dead?

#38
post #35

Clojure is a wonderful language, but not so wonderful that I can tolerate its slow startup and compile times. I think lots of developers think the same way. Imo any language nit facilitating fast startup and compile is stillborn. Imo the same goes for any language requiring you to setup a "project" or something to get started.

Yeah, Clojure is not great for CLIs, but pretty much every other use case it excels at. For CLIs, there is always Babashka (https://babashka.org/) which works good enough.

For local development, you usually just compile+eval one function at a time as you change them, and those happens under 1ms, not enough to even notice (unless you develop with a remote REPL, but then network is to blame)

For server usage, you usually compile once in CI and put the resulting binary/JAR on the server. A few seconds for startup matters less in those cases.

The drama of slow Clojure startup is wildly overblown, because basically for no other use case than writing CLIs, does the startup time matter so much it becomes a problem.

Re: Ask HN: Is Clojure Dead?

#39
post #28
post #14

One benefit of learning functional languages, whether Haskell or Clojure, is that it makes you a better developer in other, non-functional, languages.

can you clarify "how" it makes one a better developer? When I think of how the java streams API is used, it generates lots of garbage (i.e. lots of intermediary allocs), doesn't always make things clearer.. i'm genuinely curious (and in fact i like the streams API, it's just often misused by collecting at the wrong step..).

> When I think of how the java streams API is used, it generates lots of garbage (i.e. lots of intermediary allocs)

Not extremely relevant because it’s Lean 4 and not Java, but destructive updates can help with that:

https://arxiv.org/pdf/1908.05647.pdf

Edit: Now linking to the right paper.

Re: Ask HN: Is Clojure Dead?

#40
post #31
post #30

Earlier quoted context omitted.

Do you have examples of the dev experience degrading? My experiences is that the tools and libraries only continue to mature (as does the Clojure language itself). Do you just mean that things are improving less quickly than they are for, e.g., Typescript?

I mean compared to a few years ago. I tried setting up a new project after 1 or 2 years away from the ecosystem, and struggled a lot : all existing templates to set up new projects (esp. with CLJ/CLJS combined) had bitrotten and were not usable out of the box ; emacs integration no longer working out of the box, etc. I think it's a "death by a 1000 cuts"/"broken windows" that is may be happening when the ecosystem la…

I've very recently changed my system from MacOS to Linux, so I've been reibuilding my Clojure environment from scratch. I've found the exact opposite in terms of maturity; Emacs support in particular is far more complete and usable out of the box than it ever was.

I installed Spacemacs fresh, loaded up a Clojure file, and not only did I get automatically get CIDER, but I also got LSP support via clj-kondo and a bunch of other extras. I was genuinely impressed at how mature the tooling was, and how trivial it was to install.

Post reply on HN