34 comments

[ 2.8 ms ] story [ 58.4 ms ] thread
In a previous life, I wrote Clojure every day and still look back fondly attending Clojure/Conj and sitting next to Rich Hickey and other Clojure greats at dinner.

My first startup was all Clojure. AWS only had a dozen or two products and I think we must have been the first to compile Clojure to JS and run it on Lambda in production (the only runtime was Node.js 0.10 at the time).

Anyway, I cannot wait to watch this

How do you feel about it now? Like holistically.
What are you using now? how do you feel about clojure now?
[flagged]
You know there's a saying in Russian, that roughly translates to: "an expert surgeon is capable of helping a bad dancer", which is on itself is a reference to another idiom: "a bad dancer always blames his own balls".

That's quickly becoming befitting for cases like this - so often people rush to blame AI without even trying to use their own reasoning. I don't know what to say, hope you find a good surgeon, because it is obvious - you're shit of a dancer.

is clojure still relevant in the post agentic coding reality that opens up pretty much all esoteric languages to everyone ?

back in the day used to use clojure to write a fintech app but not sure if it is still relevant has uses vs other langs that have emerged

One of the main problems I have with the models coding is the feedback loop is way down the chain from generation, it's out at the commit boundary for python when your hooks are running, maybe at the point where the model wants to push a PR. The REPL lets that happen during generation, and the other safety measures help immensely. Immutable data, STM, all of the features in Clojure that gave devs super powers now do the same for a model.
Clojure had lousy error messages, agents deal with this well. Clojure is capable of producing some of the most dense code I’ve ever seen, so manual code reviews really start to feel like a bottleneck unless your goal is to level up.
I find it actually the best substrate to write AI tooling. All my custom MCPs are written in Clojure (bb). You hook up the agent to the REPL and let it go wild - it builds something nice. Also, Clojure is one of the most token efficient PLs.
I would say with the nREPL feature and letting the AI Agent jack in, Clojure may actually be the most well positioned language for this use case.
I work on a large Clojure codebase with AI, and I'm getting excellent results. Likely factors are code density, the resulting token density, and a lot of well-architected code that the AI can follow — I'm not sure exactly, but the results are really good.
Personally this is a hidden trick I use.

Ask AI to build something. By default it will use python. Sometimes js or typescript.

Ask then to do the same thing in Clojure. The result is generally an order of magnitude better. Shorter, easier to read for both humans and llm. Easier to adapt to changes.

This is like asking if violins are still relevant because we have cars now.
Incredible: I had not idea NuBank discovered Datomic first and that it's Datomic that led them to Clojure, 100 million+ customers, and eventually acquiring Cognitect.

Good to see David Nolen (aka "swanodette") is in the documentary too.

As a bonus here's a recent talk from David Nolen about Clojure/ClojureScript and using DOM morphing instead of React.

If you don't want to watch it all, just take two minutes to watch from 23m15s to 25m15s. He compares a behemoth slurping all the browser's CPU and RAM resources versus a 13 Kb of JavaScript + Web components and DOM morphing:

https://youtu.be/BeE00vGC36E

His talk is presented from Emacs, gotta love that too...

Emacs has always had a tight link with Lisp communities, due to its history, including ties to Lisp Machines, so naturally many use it.

However, as someone that rather use Lispworks, Allegro, Racket, there is also Cursive on top of InteliJ.

However note that XEmacs was my IDE replacement during my first UNIX decade, due to lack of proper alternatives, so I do know about what Emacs and its derivatives are capable of, no need for yes but replies.

Datomic was the reason I switched [^1] to Clojure as my primary language in 2014. It was a gamble, but it paid off in the end.

I maintain that Clojure is the best AI-first language due to the lightning-fast iteration via the nREPL and Clojure's token efficiency.

[^1]: https://petrustheron.com/posts/why-clojure.html

didn't know datomic was free of licensing fees - I didn't use it back in the day because the cost was prohibitive... interesting
The double belt buckle is a pretty classic diffusion model artifact — it struggles with symmetrical accessories because it's essentially pattern-matching textures rather than understanding "this person is wearing one belt." Same reason you see six-fingered hands.

The repeated code on the steps is actually the more interesting tell to me. An artist would vary that deliberately for visual interest. A model just tiles what it learned looks like "code."

That said, the pencil sketch theory is compelling. Hybrid workflows where a human does the composition and an AI handles color/rendering are increasingly common, and they produce exactly this kind of uncanny result — strong underlying structure with strange surface artifacts.

Whether it is or isn't AI, the irony of a documentary about a language whose community deeply values craft and intentionality potentially using generated art for the thumbnail is at least worth a raised eyebrow. Not outrage-worthy, just... a little incongruous.

Excellent. The only thing I wish they had added was borkdude.
Clojure is my favourite alternative language on the JVM, besides offering what Lisps have provided for decades, their philosophy of embracing the host platform, instead of all the talk that the next JVM will be rewriten in it like some others do, makes being around Clojure folks much more appealing.
I’ve been using Clojure since 2013, and can say that it has been an enormous positive force in my life. I’ve been a very unorthodox user, most of my artworks were built using Clojure in some way. But I’ve also worked in industry, and there I think Clojure helped me avoid burnout on more than one occasion. Especially when running a startup built half on it :)

It’s also been a privilege to participate in the community. From Clojure west to the Conj, to the online discussions. Huge thanks to everyone that’s made this possible over the decades.

Looking back Clojure has been the best thing to happen to me in this industry

I doubled my salary using it and changed industries to much more stable industries

I've been to a lot of conferences and meet ups in my career but the feeling of joy and inclusivity at Heart of Clojure was unreal

The community is still alive and well, my favourite passionate sub culture in the Clojure community at the moment is the Jank community, building a Clojure Dialect for low level work an incredible amount of work but they're doing it anyway

The problem is businesses aren't really interested in stability integrity or joy when it comes to their languages they want to commodify their developers by forcing them to write the most popular and replaceable languages possible

Then they're surprised when the quality of developers they're able to hire drops and the quality of their software drops it's all just a race to the bottom - emboldening companies to try and replace developers with AI and destroy their own companies in the process

What surprised me the most in working with Clojure commercially is how many commercial developers did not get the ethos of the language or have watched the rich hickey talks or use the REPL, all they see is restrictions and unfamiliarity I don't know how these people got hired without a passion for the language - lots of them get promoted to run Clojure codebases

Guess you could say it helped you find some clojure
I am so thankful for Clojure. It enabled me to run a solo-founder business for the last 10 years in a sustainable and maintainable way. It allows me to manage a large complex codebase (client+server) because of low incidental complexity and the fact that the server and the client share most of the business logic code.

Also, thanks to the focus on stability and practical usage, I don't get my rug pulled out from under me every couple of years, like with so many other languages and environments. This is incredibly important and not immediately visible when "choosing a language to use", because the new shiny and the warm fuzzy are irresistible pulls. Clojure is not the new shiny and it's not the warm fuzzy, but it is your stable long-term companion for building complex software that is maintainable.

I've always enjoyed using Clojure. Unfortunately, most of the things I do require interacting with the C world, so it has never been a real option as my primary language.
the "stable long-term companion" framing from jwr's comment is the part that sticks with me. every company I've worked with that chased the new shiny ended up spending more time on migrations than on the actual product.

stability is boring to talk about but it's the thing that actually lets small teams survive long enough to win.

Clojure is a great language and ecosystem. I donated a little money to Rich's efforts in the early days (I loved his older Common Lisp - Java bridge so his Clojure project was immediately interesting) and I have been paid for a few years of Clojure development.

I like maintaining the history in one place, nicely done.

I don't use Clojure much anymore, but two hours ago I updated two chapters in my old Clojure book because the examples had 'gone stale' and that was fun.

Hey other Mark Watson ( ^_^)/
Interesting, how many ex-users of Clojure are in the comments. Everyone is praising it, but also everyone moved to something else?
Less ex-user, more like: never really managed to get to use it at work I guess (just like it is for me). It is still a niche language (compared to the big ones) after all.