Official Clojure Documentary page with Video, Shownotes, and Links
Posted by adityaathalye 19 hours ago
Comments
Comment by slifin 4 hours ago
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
Comment by embedding-shape 3 hours ago
Yeah, this continues to stick out. The amount of people I've come across who do Clojure development and restart the application (really, the JVM process, kill it and launch it again, over and over!) is way too high, considering the first "real" reason I had for moving wholesale to Clojure was a shorter feedback loop. If that's not one of your goals when moving to Clojure, I'm not sure what you're up to really.
Comment by jgalt212 3 hours ago
Comment by embedding-shape 2 hours ago
What I've seen people do, is restart the process after each change like you typically do in other languages, rather than evaluating the current form...
Comment by cfiggers 2 hours ago
Is this a skill issue? Absolutely. Do I still restart the REPL frequently (not after every def, but often) just to make sure I'm working with the same environment my program will be experiencing at run time? Yes I absolutely do.
Comment by embedding-shape 7 minutes ago
I have a this little function for clearing the current namespace that I call every time I rename any var inside a namespace:
(defn clear-ns []
(map #(ns-unmap *ns* %) (keys (ns-interns *ns*))))
Not a perfect solution, but personally I also don't know a better solution that doesn't involve loosing out on other (non-negotiable for me) benefits.Comment by Folcon 1 hour ago
Just fire that off every now and then?
Basically the same thing, but you don't lose repl state
Comment by TacticalCoder 1 hour ago
vars and functions too. It's the biggest issue: the inevitable mismatch after a while.
As soon as I've got any doubt there might be a stable cache or a mismatch, I'll just "nuke the current CIDER buffers and relaunch cider-jack-in-clj&cljs". And it takes 1.3 seconds.
I'll also regularly spawn, from a terminal next to my Emacs, all the unit tests related to what I'm working on, in its own JVM / process(es). I'm not talking about running tests on commit (which I can do too). I'm not talking about running tests when I modify a function.
I was there 3000 years ago when Java 1.1 was using green threads on Linux and using Java on Linux required a serious leap of faith (but I knew... I knew it'd take the world... And I knew great things like Clojure would then come).
Now a JVM starts and exits in 40 ms.
Emacs starts and exit, with 4 000 lines of elisp customization I created over the years, in 1.1s.
I cider-jack-in-clj&cljs spawning both a CLJ and a CLJS REPL in 1.3s.
Clojure devs definitely should modify vars and redefine functions at runtime and use the REPL etc.
But there's no need to let a REPL live for one week like GP is suggesting. I can launch my entire app, including Emacs and two REPLs, in 2.5s. While at the same time having all my unit tests being launched in another process.
At 2.5s to "restart the world", there's no reason not to do it more than once a week.
P.S: also stale caches are a thing in this world. It's sad but it's simply how it is. How it's always been. Restarting the whole world, while in dev, helps also deal with a great many stale caches issues that may not be related to Clojure but to other things (e.g. I didn't invent the "disable cache" button in browsers' developer tools and there's a reason it's there).
Comment by jwr 3 hours ago
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.
Comment by mkw5053 17 hours ago
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
Comment by throwawaygod 10 hours ago
Comment by mkw5053 10 hours ago
Comment by chii 10 hours ago
studying them makes you smarter, which makes you better at using the practical stuff.
Comment by TurboHaskal 7 hours ago
Comment by xmonkee 12 hours ago
Comment by mkw5053 10 hours ago
I miss it just like I miss the program language and type theory group meetups in SF and working through problems in dependently types languages like Idris and being out of my depth.
Comment by wazHFsRy 9 hours ago
Comment by boriskourt 7 hours ago
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.
Comment by ch4s3 37 minutes ago
Comment by pjmlp 9 hours ago
Comment by dgb23 6 hours ago
However there's no doubt that this is one of the primary reasons why Clojure became relevant and widely used (for a niche language). Seamless integration (or even improved integration) is very useful.
Another language that takes this approach is Zig. My intuition is that here as well, it's a unique selling point that will help with adoption and day to day usefulness.
Comment by bachmeier 1 hour ago
Comment by perrygeo 52 minutes ago
Comment by erichocean 53 minutes ago
Comment by christophilus 13 hours ago
Comment by iLemming 13 hours ago
Comment by ajdegol 15 hours ago
Comment by TacticalCoder 15 hours ago
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:
His talk is presented from Emacs, gotta love that too...
Comment by pgt 5 hours ago
I maintain that Clojure is the best AI-first language due to the lightning-fast iteration via the nREPL and Clojure's token efficiency.
Comment by pjmlp 9 hours ago
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.
Comment by mkw5053 15 hours ago
Comment by adityaathalye 9 hours ago
Things have been different for well over five years --- about a third of Clojure's life. There are so many first-class options now. When teaching Clojure, I direct everybody to either VSCode + Calva, or Intellij + Cursive.
LSP has really upped the game too. I rebuilt my Emacs development workflow around LSP for all the things.
These days, I sometimes forget to fire up the REPL, because of all this fantastic "static analysis style" developer tooling by borkdude and eric dallo.
Much gratitude to all the toolsmiths from all over the Clojure ecosystem. Special shout-out to LightTable for upping the game for everybody. I was very sad when the project went dormant.
Comment by lemming 9 hours ago
In fact, I first presented Cursive at the conj 2014, and I'd been working on it in open beta for perhaps a year before that, so well over 10 years!
...all this fantastic "static analysis style" developer tooling by borkdude and eric dallo.
ahem
Comment by adityaathalye 6 hours ago
So think of it more like "static analysis stuff for the rest of us" :D
Comment by lemming 4 hours ago
j/k of course, and no offence taken :-)
Comment by tgdhtdujeytd 13 hours ago
Comment by agentifysh 16 hours ago
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
Comment by jwr 3 hours ago
Comment by slifin 2 hours ago
but in my experience its amazing the overall quality of Clojure code in the wild tends to be higher than your typical language so AI's training on Clojure tends to be on modern and high quality code and the language is very token efficient, you can also tell AI to interact with the REPL to avoid restarts
The only downside I've seen reported is mis-matched parens but for me models have been strong enough to balance parens for about a year at least it's not something I actively work-around even though there are work-arounds like brepl and others
Comment by hsaliak 14 hours ago
Comment by embedding-shape 2 hours ago
For me it's the opposite, the dense code is easier to review, because the proposed changes are almost always smaller and more informative. Contrast a change in a typical TypeScript project where changes propagate across tens of files, that you need to jump in-between just to understand the context. In the time it takes me to ramp up understanding what the change is, I've already completed the review of a change in a Clojure program.
Comment by asa400 1 hour ago
Comment by tosh 6 hours ago
I find it also easier to just grab the code and interactively play with it compared to do that with 40 pages of code.
Comment by iLemming 13 hours ago
Comment by yogsototh 3 hours ago
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.
Comment by embedding-shape 2 hours ago
Comment by erichocean 51 minutes ago
Comment by MarkMarine 14 hours ago
Comment by asa400 1 hour ago
Comment by arikrahman 6 hours ago
Comment by netbioserror 16 hours ago
Comment by agentifysh 15 hours ago
Comment by iLemming 13 hours ago
The industry should have optimized for hiring people interested in PLs like Clojure instead of LeetCode drillers. Clojure is rarely the first, second, or even third programming language people choose to learn. It demands a specific vision, dedication, and discipline that fundamentally transforms how people think about computation, data flow, distributed systems, and concurrency. The ROI from hiring an average developer experienced in Clojure has the potential to significantly exceed that of a typical hire. Even when there's zero Clojure in prod.
Comment by acheron 11 hours ago
Comment by iLemming 11 hours ago
Comment by uxcolumbo 9 hours ago
Comment by yogthos 15 hours ago
I've wrote about this in more detail here if you're interested https://yogthos.net/posts/2026-02-25-ai-at-scale.html
Comment by malindasp 14 hours ago
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.
Comment by puredanger 1 hour ago
Comment by JB024066 2 hours ago
https://www.linkedin.com/posts/cult-repo_call-us-old-fashion...
Comment by kevinten10 6 hours ago
Comment by kevinten10 6 hours ago
Comment by ares623 16 hours ago
Comment by iLemming 12 hours ago
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.
Comment by lsh0 10 hours ago
Comment by TacticalCoder 15 hours ago
It's not because Rich doesn't want AI-generated pull-requests by people then taking credits that the Clojure community is anti-AI.
I use Claude Code CLI daily with Clojure, just not in a "write me five thousands lines of Clojure code I won't read" type of way.
Comment by mkw5053 16 hours ago
Comment by Jeaye 16 hours ago
Comment by FelipeCortez 16 hours ago
[1]: https://bsky.app/profile/cultrepo.bsky.social/post/3mjhubrh3...
Comment by pixelmonkey 15 hours ago
- two belts and two Clojure logo belt buckles
- same code repeated on the steps (odd artistic choice if made by the artist)
- the seemingly out-of-place scarf, stylistically its color/pattern doesn't seem to fit
Either way, it seems like an homage to this Indiana Jones and the Temple of Doom poster:
https://www.slantmagazine.com/wp-content/uploads/2008/05/tem...
Comment by latexr 6 hours ago
The weird choice is having a belt and suspenders. That only works as a fashion choice, which makes little sense for an explorer.
Comment by dmix 10 hours ago
Comment by FelipeCortez 13 hours ago
Comment by pixelmonkey 13 hours ago
Comment by pixelmonkey 15 hours ago
Comment by keychera 10 hours ago
Comment by Fitzero 10 hours ago
https://www.linkedin.com/posts/emmalouisetracey_one-of-my-fa...
Comment by agentifysh 16 hours ago