News for hackers. Stuff that matters.
Re:Clj.rs – a Clojure dialect implemented in Rust by jiehong on Sunday November 08, 2026 @04:07AM (#50411586)
Nice, but what are the non goals?

Except maybe the compilation to native binary, this is closer to clojurescript than clojure I suppose ?

How about a comparison with Jank?

Re:Clj.rs – a Clojure dialect implemented in Rust by sshine on Sunday November 08, 2026 @04:25AM (#50411667)
Cool.

I'm already a big fan of the scheme-rs crate.

I use it any time I need a dynamic scripting language.

It allows for more flexible hot-reloading of parts of a program.

I don't personally have any Clojure interop holes that need filling.

But I can imagine a future where one moves partially away from the JVM if e.g. faster starts or leaner container images are desired.

Re:Clj.rs – a Clojure dialect implemented in Rust by benrutter on Sunday November 08, 2026 @04:41AM (#50411751)
I love scheme and rust but somehow did not know about scheme-rs! Looks like such a good project, thanks for the recommendation!
Re:Clj.rs – a Clojure dialect implemented in Rust by petre on Sunday November 08, 2026 @07:28AM (#50412687)
Any advantages over steel?

https://github.com/mattwparas/steel

Re:Clj.rs – a Clojure dialect implemented in Rust by tux on Sunday November 08, 2026 @04:41AM (#50411749)
Why not name it “Cloju.rs” instead? :-)
Re:Clj.rs – a Clojure dialect implemented in Rust by imafish on Sunday November 08, 2026 @05:30AM (#50411996)
came here to write exactly that xD
Re:Clj.rs – a Clojure dialect implemented in Rust by rfgplk on Sunday November 08, 2026 @05:42AM (#50412070)
I'm working on something similar.

My guess is, within the next 3-5 years, most ALGOL descendant languages will become obsolete, and S-exp based Lisp dialects will take over. Objectively superior.

Behold a native kernel, no inline asm or linker scripts, of any kind. The full compiler pipeline is controllable through the compiler (you can arbitrarily target, devise, or enable/disable various optimization passes, for instance you can enable LICM at will). Also has a hard 1:1 correspondence to C/C++/Rust/adding more languages soon.

   ;; GNU multiboot kernel
   (image (target x86-64) (origin 0x100000) (entry "boot32")
     (section ".multiboot" (align 4) (keep))
     (section ".bss" (align 4096) (zero))
     (stack "bootstrap" 16384) (stack "kernel" 32768)
     (assert (<= (address "kernel.end") 0x40000000) "early memory must fit the first GiB identity map"))
   
   (static header (Array u32 8)
     (declare (section ".multiboot") (used) (link-name "multiboot_header"))
     (arr (0x1badb002 0x10003 0xe4514ffb
           (link u32 (address "multiboot_header")) (link u32 (origin))
           (link u32 (+ (origin) (image-size))) (link u32 (+ (origin) (image-size)))
           (link u32 (address "boot32")))))
   (static gdt (Array u64 3) (declare (aligned 8) (link-name "boot_gdt"))
     (arr (0 0x00af9a000000ffff 0x00cf92000000ffff)))
   (static pml4 (Array u64 512) (declare (mutable) (aligned 4096) (link-name "boot_pml4")))
   (static pdpt (Array u64 512) (declare (mutable) (aligned 4096) (link-name "boot_pdpt")))
   (static pages (Array u64 512) (declare (mutable) (aligned 4096) (link-name "boot_pages")))
   
   (fn prepare-paging ()
     (declare (mode protected32) (noinline))
     (dotimes (i 512)
       (at pml4 i (->u64 0)) (at pdpt i (->u64 0))
       (at pages i (| (* (->u64 i) 0x200000) 0x83)))
     (at pml4 0 (| (link u64 (address "boot_pdpt")) 3))
     (at pdpt 0 (| (link u64 (address "boot_pages")) 3))
     (unsafe
       (x86::write-cr 'cr3 (link u64 (address "boot_pml4")))
       (x86::write-cr 'cr4 (| (x86::read-cr 'cr4) 32))
       (x86::write-msr 0xc0000080 (| (x86::read-msr 0xc0000080) 256))
       (x86::load-gdt (link VirtAddr (address "boot_gdt")) 23)))

   (fn show-greeting ()
     (unsafe
       (auto video (i->ptr (Volatile u16) 0xb8000))
       (dotimes (i 2000) (at* video i (+ 0x5725 (->u16 i))))
       (auto greeting ":d")
       (dotimes (i (size greeting))
          (auto byte (->u8 (at greeting i)))
         (at* video i (| 0x0f00 (->u16 byte)))
         (x86::out8 0xe9 byte))
       (x86::out8 0xe9 10)))

   (boot-entry boot32 (mode protected32)
     (handoff (magic eax u32) (information ebx PhysAddr))
     (with-stack "bootstrap"
       (prepare-paging)
       (unsafe
         (x86::enter-long-mode 'kernel64 8 magic information (link u64 0x123456789abcdef0)))))

   (boot-entry kernel64 (mode long64)
     (handoff (magic rdi u32) (information rsi PhysAddr) (cookie r12 u64))
     (with-stack "kernel"
       (unsafe
         (x86::write-segment 'ds 16) (x86::write-segment 'es 16) (x86::write-segment 'ss 16)
         (auto valid (and (= magic (->u32 0x2badb002)) (> (address-bits information) 0)
                          (= cookie (->u64 0x123456789abcdef0))
                          (= (& (x86::read-cr 'cr0) 0x80000001) 0x80000001)
                          (= (& (x86::read-msr 0xc0000080) 0x500) 0x500)))
         (if valid (show-greeting)
           (progn (x86::out8 0xe9 70) (x86::out8 0xe9 10))))))
Re:Clj.rs – a Clojure dialect implemented in Rust by neutronicus on Sunday November 08, 2026 @06:36AM (#50412377)
Curious why you’re so bullish on S-Expressions now of all times.

It seems like the idea of the macro, and more generally of expressing code succinctly, is the closest to obsolete in my memory?

The other half of the Lisp sales pitch (image based development, constantly inspect state, hot swap code, REPL, etc) seems like what has retained currency in the LLM age.

Re:Clj.rs – a Clojure dialect implemented in Rust by frje1400 on Sunday November 08, 2026 @07:39AM (#50412747)
> It seems like the idea of the macro, and more generally of expressing code succinctly, is the closest to obsolete in my memory?

That seems true in a world where we completely stop looking at code. Right now my reality is giant verbose PRs written by agents in Java, and it sucks to review.

Re:Clj.rs – a Clojure dialect implemented in Rust by neutronicus on Sunday November 08, 2026 @08:44AM (#50413311)
Yeah, I mean this is somewhat compelling, although the old arguments people brought out (macros are obfuscatory) seem to grow more teeth if agents are writing the macros.

So I guess the idea is tastemaker humans spend all their time coming up with sweet macros and telling agents to refactor the ever shrinking code base.

But even still I think the main argument for S-Expressions (it’s easiest for humans to create DSLs by working on serialized AST) has become weaker. If DSLs are the best way to make a code base readable, you can now have your agent create one with whatever syntax you like!

Re:Clj.rs – a Clojure dialect implemented in Rust by rgoulter on Sunday November 08, 2026 @09:00AM (#50413454)
> If DSLs are the best way to make a code base readable, you can now have your agent create one with whatever syntax you like!

I think these things are going to be true:

- For a specific well-defined coding task, an LLM coding agent will be able to execute it quicker than humans, regardless of how it does it.

- Codebases which are well organised will be easier for an LLM to manipulate than codebases which are obscure and surprising.

I mean.. I think it's plausible that something like "lisp makes DSLs easy, DSLs are a great way to arrange code" is especially true with LLMs; but I'd also think you'd need to know when to use (& when to not use) DSLs to get effective results from this.

Whereas, say, you could have the LLM come up with a DSL in a way which is high friction for the LLM to do it ... but, you'd get the result a bit slower, & maybe worse.

Re:Clj.rs – a Clojure dialect implemented in Rust by ianjbutler on Sunday November 08, 2026 @10:04AM (#50413907)
Thinking along these lines myself lately. Even better than dsls is dsls directly descended from recognizable formalisms, which achieves compression for humans and agents at the same time, and is even more effective than any other kind of dsl’s at restricting the bad kind of ai “creativity”.

I’ve been experimenting with stuff like “this project is a Kahn process network, every change is strict conformer to that model, add features only by adding nodes”. As a bonus if you’re strict then porting the specific implementation to a new language should be easy.

To me stuff like this feels like the future of programming.. details don’t matter but design language does. not leet code of fancy data structures from scratch but at least a basic familiarity with LOTS of them, a working knowledge of vast zoos of expressive patterns and automata, etc.

Re:Clj.rs – a Clojure dialect implemented in Rust by embedding-shape on Sunday November 08, 2026 @07:58AM (#50412883)
[delayed]
Re:Clj.rs – a Clojure dialect implemented in Rust by neutronicus on Sunday November 08, 2026 @08:24AM (#50413104)
That’s a plausible story, but doesn’t seem to bear out in terms of models being amazing at Lisp. Like, Sonnet 4.5 was writing me emacs Lisp with unbalanced parentheses.

I don’t really have faith that I could write macros of such incredible brilliance that it would outweigh the models’ facility with Python.

Re:Clj.rs – a Clojure dialect implemented in Rust by KingMob on Sunday November 08, 2026 @10:47PM (#50420832)
Token efficiency is good, but in practice, model familiarity is more important.

Look at what happened with TOON. They came up with a format meant to replace JSON for agents, but despite being way more succinct, its novelty meant that LLMs spent just as many tokens correcting mistakes while using it.

TBF, that was several months ago, an eternity in LLM time. Someone should rerun those language studies, it's possible the SOTA has changed.

Re:Clj.rs – a Clojure dialect implemented in Rust by clx75 on Sunday November 08, 2026 @11:12AM (#50414470)
If you write a compiler for a low level Algol-family language in a LISP, then LISP's homoiconic nature makes certain patterns possible which do not come so easy in other languages.

The compiler becomes a library in the host language. As you can use the syntax of the host language for the compiled language, you can create host-side defining forms like (define-compiled-function [NAME PARAMS & BODY]) which parse the body of the compiled function into an AST and bind the resulting data structure into a namespaced variable of the host language. This way you can rely on the host's namespacing mechanisms and probably reuse even its packaging and code distribution model for your low level language.

Another interesting feature which just "falls out" is compiler macros: you can use ordinary functions of the host language as macros (code transformers) in the compiled language.

Then you can write a lowering function which takes one of these AST vars, walks its call graph, resolves references and lowers the whole thing into your target language, be it Python, Go, LLVM IR, assembly, whatever.

If you pass a context to your lowering function which binds settings dynamically like target arch, word size, C calling convention, etc. then the code generators can emit the corresponding lowerings and you get portability using the dispatch/polymorphism facilities of the host language.

This way you can push most of the complexity of the language to the LISP side. Basically you get a programmable compiler for your low level language.

I expect to see a lot more examples of this pattern in the coming years.

Re:Clj.rs – a Clojure dialect implemented in Rust by neutronicus on Sunday November 08, 2026 @03:05PM (#50416613)
That sounds pretty juicy, but “implementing a C++ compiler in Lisp” is a pretty big squeeze.
Re:Clj.rs – a Clojure dialect implemented in Rust by sham1 on Sunday November 08, 2026 @08:37AM (#50413242)
This does look interesting, although I did get a chuckle from the "no inline assembler" claim and then seeing x86 intrinsics in the source for seeing some special registers like the segment registers, GDTP, setting IO ports, and some such. Those are of course necessary, but at least in terms of portability, they're not that far off from inline assembler.

From a quick glance over your example, it looks like a hodgepodge of Scheme, Clojure, and Common Lisp with some Rust-y constructs in it. If you don't mind elaborating, why not take some existing "embedded" dialect like Pre-Scheme and compile that? Because currently this looks a lot more like Rust-with-parenthesis rather than a Lisp. Of course if that's the goal then that's fine, but I'd like to hear some elaboration on that.

Re:Clj.rs – a Clojure dialect implemented in Rust by forgotpwd16 on Sunday November 08, 2026 @10:11AM (#50413965)
[delayed]
Re:Clj.rs – a Clojure dialect implemented in Rust by jazzypants on Sunday November 08, 2026 @10:29AM (#50414093)
What does the S-exp form buy you here? Most of this is magic constants and register writes, which seem about equally hard to read in any syntax. "No inline asm or linker scripts" is also doing a lot of work when x86::write-cr is basically asm with parens and image/section are basically a linker script.

Compiler pass control seems like the interesting part, but why does that imply ALGOL-family languages will be obsolete in 3-5 years? Lisp has had 60+ years to take over. What changes now?

Re:Clj.rs – a Clojure dialect implemented in Rust by olmo23 on Monday November 09, 2026 @09:18AM (#50426005)
> I'm working on something similar.

Is there any place we can follow along because this looks cool!

Re:Clj.rs – a Clojure dialect implemented in Rust by lightningspirit on Sunday November 08, 2026 @05:45AM (#50412091)
I expect this to take over within the next couple of years. Great job!
Re:Clj.rs – a Clojure dialect implemented in Rust by pseudony on Sunday November 08, 2026 @05:50AM (#50412115)
Take over what, exactly? The java ecosystem version? The javascript ecosystem version ? The c++, clojure-like dialect ?
Re:Clj.rs – a Clojure dialect implemented in Rust by pmbauer on Sunday November 08, 2026 @12:02PM (#50414998)
Some vibe slopped lisp where the maintainer doesn't have the technical skills to achieve sustained excellence without consulting an LLM every other minute and almost certainly doesn't have the social juice to evangelize Lisp? That's taking over? Over what?
Re:Clj.rs – a Clojure dialect implemented in Rust by throwawaygod on Sunday November 08, 2026 @04:29PM (#50417502)
Little harsh on the maintainer. But say if the author has the technical chops for creating successful? language but if the project is still vibecoded, will that be acceptable? Should we be excited of such projects?
Re:Clj.rs – a Clojure dialect implemented in Rust by pmbauer on Sunday November 08, 2026 @10:30PM (#50420705)
> The recent work has definitely been done by LLMs instead of me, > [...] Some of the internals might be a horror show, I'm willing to say. I have not looked that closely

You tell me. Should we be excited?

Re:Clj.rs – a Clojure dialect implemented in Rust by JavierFlores09 on Sunday November 08, 2026 @06:19AM (#50412295)
Has Clojure become the new base for Lisp-like languages? What does it got going for it that people seem to want its specific flavor of lisp? Just asking since I've also seen the Clojure talk about Jank[1] recently and it has gotten me interested.

1: https://www.youtube.com/watch?v=tHgApFhevrQ

Re:Clj.rs – a Clojure dialect implemented in Rust by neutronicus on Sunday November 08, 2026 @06:37AM (#50412385)
Hash table literals.
Re:Clj.rs – a Clojure dialect implemented in Rust by skydhash on Sunday November 08, 2026 @07:16AM (#50412606)
SBCL is written in C and have FFI baked in

http://www.lichteblau.com/sbcl/doc/manual/sbcl/Foreign-Funct...

Maybe it’s too much work to write a full lisp vm in another language when it’s easier to write a loader.

Re:Clj.rs – a Clojure dialect implemented in Rust by pjmlp on Sunday November 08, 2026 @10:01AM (#50413887)
Nowadays, historically Lisps have had the primitive forms written in Assembly and everything else bootstrap.
Re:Clj.rs – a Clojure dialect implemented in Rust by stassats on Sunday November 08, 2026 @10:36AM (#50414159)
> SBCL is written in C

That's not quite right.

Re:Clj.rs – a Clojure dialect implemented in Rust by CountVonGuetzli on Sunday November 08, 2026 @07:34AM (#50412714)
Coming from Ruby, wanting to learn a Lisp, there are so many things in Clojure that make the language much easier for me to understand, compare to other Lisps. Simple things like first/rest vs car/cdr make it much more ergonomic and easy to grok, IMHO.
Re:Clj.rs – a Clojure dialect implemented in Rust by neutronicus on Sunday November 08, 2026 @08:57AM (#50413426)
Yeah I alluded to this in my comment, but I think the dict literals just make for a much easier on ramp for someone familiar with Python or JS (or JSON, which is increasingly unavoidable for even C++ devs like me).
Re:Clj.rs – a Clojure dialect implemented in Rust by vindarel on Sunday November 08, 2026 @07:07PM (#50419182)
There's first, second... tenth and rest in CL too. My 0.0002c.

The convention is to use car and cdr with cons cell structures that are not lists.

Re:Clj.rs – a Clojure dialect implemented in Rust by hardwaresofton on Sunday November 08, 2026 @08:18AM (#50413042)
Nothing will ever be a base for lisps because theyre too malleable and the temptation ro create your own is too high

Anyway my recent favorite is Carp:

https://github.com/carp-lang/Carp

Serious projects in it? Zero

Re:Clj.rs – a Clojure dialect implemented in Rust by arikrahman on Sunday November 08, 2026 @08:52AM (#50413389)
Same, I needed a Lisp that was typed for the AI era where Clojure's dynamism didn't fit the bill. Carp was a perfect fit, and I managed to create a few projects with the help of Deepseek
Re:Clj.rs – a Clojure dialect implemented in Rust by cfiggers on Sunday November 08, 2026 @08:49AM (#50413362)
All Clojures are Lisps, but not all Lisps are Clojures. :)
Re:Clj.rs – a Clojure dialect implemented in Rust by netbioserror on Sunday November 08, 2026 @09:06AM (#50413493)
It's immutable, has bracket syntax for data structures, and most of its standard library has very sensible naming and nil-sentinel conventions. The result is that it's astonishingly easy to read and write. The data structure sharing under the hood also keeps it performant. Finding and obtaining packages with its build systems is also easy.

Scheme gets close but has some odd naming conventions and wild conventions for naming and obtaining packages. CL's entire library is full of incredibly odd names first established at the very advent of computing. Using them can be...dense.

Re:Clj.rs – a Clojure dialect implemented in Rust by Dansvidania on Sunday November 08, 2026 @09:13AM (#50413547)
the data structure literals are really pleasant to work with, and oh how I miss get-in and update-in in every other language (with all the ecosystem of functions that follow that pattern and are built to work with it)
Re:Clj.rs – a Clojure dialect implemented in Rust by bjoli on Sunday November 08, 2026 @03:42PM (#50416983)
Aren't get-in and update-in a poor man's lenses? I find similar abstractions in most functional languages.
Re:Clj.rs – a Clojure dialect implemented in Rust by pjmlp on Sunday November 08, 2026 @09:58AM (#50413866)
The ecosystem of Java, .NET and the Web, and contrary to other guest programming language communities, they embrace their host platform instead of downplaying it, and talking about replacing it.

As such you get all the nice stuff that has made Lisp a great language, plus access to modern libraries.

Note that since Common Lisp there has not been another standard, and in what concerns Scheme, Dr Raket is more relevant. Also R7rs Large has been hanging on for years now.

Re:Clj.rs – a Clojure dialect implemented in Rust by pseudony on Sunday November 08, 2026 @11:58AM (#50414948)
My first lisp was Clojure. Was skeptical but willing to try. Within two days I was writing a new component for our stack wrapping parts of the Aws sdk to access sqs (years ago).

Since looped around and had semi serious spells of Racket (scheme++; one could say) and Common lisp - purchasing stacks of books along the way.

For me - Clojure was THE language that really taught me functional programming - there really isn’t anything mutable without significant contortions.

It is also just a really good standard library and full of interesting concepts like specs (as opposed to types), transducers and such.

I would say that common lisp still has some interesting, unique features like conditions, which is essentially what exceptions SHOULD have been. But Clojure has a LOT of bang for buck.

Finally, I would swear my most intelligent, high impact code has been written in clojure. There is something to be said for the decomposition of problems with higher-order functions and immutable data structures and a live REPL.

Re:Clj.rs – a Clojure dialect implemented in Rust by Hammershaft on Sunday November 08, 2026 @02:44PM (#50416427)
Clojure's data structure design & concurrency model is particularly great, and the host interop opens up options for pragmatic development.

Macros are less ergonomic than other lisps.

Re:Clj.rs – a Clojure dialect implemented in Rust by bjoli on Sunday November 08, 2026 @03:40PM (#50416951)
I am just sad core.async is just the same old CSP.

I want to scream every time I have to implement nacks in CSP. It has to be domain specific every time, since there are no first class events.

I do agree that clojure gets a lot right (like an actually well integrated STM layer), the choice to go with CSP seems like a missed opportunity.

Re:Clj.rs – a Clojure dialect implemented in Rust by whalesalad on Sunday November 08, 2026 @03:40PM (#50416967)
clojure is the best lisp by far
Re:Clj.rs – a Clojure dialect implemented in Rust by andersmurphy on Sunday November 08, 2026 @07:32AM (#50412709)
Claude sure is busy these days.
Re:Clj.rs – a Clojure dialect implemented in Rust by agumonkey on Sunday November 08, 2026 @08:08AM (#50412959)
'man' of the year
Re:Clj.rs – a Clojure dialect implemented in Rust by pjmlp on Sunday November 08, 2026 @10:02AM (#50413900)
Which is why when I see it on the contributions list, I close the browser tab right away.

It is like someone talking about culinary recipes, while leaving the frozen food boxes visible to the audience.

Re:Clj.rs – a Clojure dialect implemented in Rust by forgotpwd16 on Sunday November 08, 2026 @10:20AM (#50414026)
[delayed]
Re:Clj.rs – a Clojure dialect implemented in Rust by andersmurphy on Sunday November 08, 2026 @10:59AM (#50414348)
Yeah but what's even sadder is projects like this often end up getting open source funding from the community. Which just means money getting used to pay for claude subscription. Paying claude to give you stolen content to then deprive other non LLM projects from funding. Basically stealing from the community twice.
Re:Clj.rs – a Clojure dialect implemented in Rust by xnfra on Sunday November 08, 2026 @07:41AM (#50412762)
The only thing I know about Clojure is Walmart used it to rewrite their entire inventory system.
Re:Clj.rs – a Clojure dialect implemented in Rust by embedding-shape on Sunday November 08, 2026 @07:56AM (#50412873)
Great job buddy! Now, if you barely know the topic, what makes you feel like HN gets better to have specifically your point of view in this thread, which seems to lack any knowledge of the subject?
Re:Clj.rs – a Clojure dialect implemented in Rust by hardwaresofton on Sunday November 08, 2026 @08:16AM (#50413024)
Incredibly, this snide comment actually delivers even less value than the one it was responding to.

> Be kind. Don't be snarky. Converse curiously; don't cross-examine. Edit out swipes.

We try to avoid condescending put downs here.

With regards to walmarts adventures in clojure:

https://news.ycombinator.com/item?id=19728502

TIL Walmart Labs was so into clojure. I would really like to know to what degree they still are — does datomic have Walmart as a customer?

Re:Clj.rs – a Clojure dialect implemented in Rust by embedding-shape on Sunday November 08, 2026 @08:18AM (#50413044)
> We try to avoid condescending put downs here.

I'm guessing that's why we nowadays have Facebook-like comments responding to a title with "I don't actually have any experience with the subject, and never heard about that, wow!" and similar.

Re:Clj.rs – a Clojure dialect implemented in Rust by Dansvidania on Sunday November 08, 2026 @09:14AM (#50413555)
gotta love that trademark HN snark
Re:Clj.rs – a Clojure dialect implemented in Rust by forgotpwd16 on Sunday November 08, 2026 @11:31AM (#50414671)
[delayed]
Re:Clj.rs – a Clojure dialect implemented in Rust by xnfra on Sunday November 08, 2026 @04:01PM (#50417197)
Re:Clj.rs – a Clojure dialect implemented in Rust by iLemming on Sunday November 08, 2026 @05:46PM (#50418300)
Also the biggest digital world bank built on it. Afaik Apple's app store payments system uses it. Cisco's cybersec layer CTIM/CTIA (Cisco Threat Inteligence Model and API) and project IROH (Incident Response Orchestration Hub) built on it. Netflix uses it. NASA has some of it. CircleCI's backend built on it, frontend initially was also Clojurescript. Docker, Metabase, Qlik, Funding Circle, Splash Financial, Rate.com, etc. Tons of Europeans startups using it.
Re:Clj.rs – a Clojure dialect implemented in Rust by mono442 on Sunday November 08, 2026 @07:54AM (#50412852)
It's vibecoded which makes it unlikely it has been actually tested well.
Re:Clj.rs – a Clojure dialect implemented in Rust by vaylian on Sunday November 08, 2026 @08:11AM (#50412979)
One of the killer features of Clojure is it's seamless interop with the host platform. On the JVM you do something like

(Integer/parseInt my-variable); this calls Integer.parseInt(my_variable) in Java-land

I tried to find examples for how to call Rust code and the best I could find is:

https://github.com/csm/clojurust/blob/b847a29b46e2b6b3fbe624...

It looks like you need to do a lot of leg work to introduce Rust functions into Clojure namespaces. I guess there is no way around it and this is not a criticism of clj.rs. But it doesn't seem to be as seamless as on the JVM.

Re:Clj.rs – a Clojure dialect implemented in Rust by rogerhey on Sunday November 08, 2026 @04:02PM (#50417211)
spot on! we evaluated and chose regular Clojure for this reason. looking at jank now it seems very interesting for the interop
Re:Clj.rs – a Clojure dialect implemented in Rust by arikrahman on Sunday November 08, 2026 @08:49AM (#50413363)
Love to see more Clojure dialects taking fruit. Jank is very promising for C++ and now we have the Rust complement
Re:Clj.rs – a Clojure dialect implemented in Rust by mateuszf on Sunday November 08, 2026 @12:42PM (#50415362)
Babashka is amazing, I recommend you check it if you haven't yet.
Re:Clj.rs – a Clojure dialect implemented in Rust by xedrac on Sunday November 08, 2026 @09:27PM (#50420241)
I think the point of something like Jank or Clj.rs is less about the native compilation aspect (we already have that with Babashka), and more about the seamless interop with the host language. Babashka doesn't help with that.
Re:Clj.rs – a Clojure dialect implemented in Rust by thisisauserid on Sunday November 08, 2026 @01:49PM (#50415875)
I always assumed the j on Clojure was a nod to the JVM but now that wouldn't work.
Re:Clj.rs – a Clojure dialect implemented in Rust by iLemming on Sunday November 08, 2026 @05:54PM (#50418397)
[delayed]
Re:Clj.rs – a Clojure dialect implemented in Rust by lilactown on Sunday November 08, 2026 @02:20PM (#50416162)
REPL on the home page fails in safari: panicked at /rustc/58cf8f9c35b355199727627d07ae34a4e2846d67/library/std/src/sys/time/unsupported.rs:13:9: time not implemented on this platform
Re:Clj.rs – a Clojure dialect implemented in Rust by munro on Sunday November 08, 2026 @03:33PM (#50416875)
When I was using Clojure, I loved how intelligently the stdlib was design. It felt like one person combed over everything in one sitting to make sure naming was consistent, followed conventions, no two ways to do the same thing, and could be composed together, really beautiful stuff.

I do think no types is why I never reach for it. I just love typing in Rust & TypeScript so much. But at the time of Clojure, those languages didn't exist, JS/Ruby/Python/Java/C++ were all still very popular, and typing made easy hadn't caught on yet. ;)

Re:Clj.rs – a Clojure dialect implemented in Rust by caseym831 on Sunday November 08, 2026 @08:10PM (#50419697)
Hi! Author of the project here. I thought I could give some background on the project.

I started this when I was looking for a job in early 2026. Vibe coding was coming up at the time, and my initial work was partially hand-coded and partially given to Claude. The pivot between hand coding and full agent-based coding really took off during that time. I did get a job a few months into this year, and I've been hacking on this in the background when I can. The recent work has definitely been done by LLMs instead of me, but that's also because I have a ton of kids and vibing something on my phone is sometimes the only way I can do it. I do that with $20 per month subscriptions anyway (Claude & ChatGPT), and I'll gladly have them subsidize the compute work for my personal project, while it lasts.

Some of the internals might be a horror show, I'm willing to say. I have not looked that closely, though I'm trying to keep it headed in a reasonable direction. I'm working to understand my life now as a SW engineer as much as everyone else.

Why do it? I loved programming Clojure, and liked Rust when I was learning it early this year. I decided to just try it, and I've enjoyed getting it to a mostly-compatible position. Also Rich had made a post on LinkedIn about how token-efficient Clojure is, and thought a Clojure/Lisp could be a great language for AI assisted code generation. That said I don't know what it'll turn into, I'm just having fun with it.

Re:Clj.rs – a Clojure dialect implemented in Rust by slifin on Monday November 09, 2026 @04:05AM (#50423007)
Clojure's Flowstorm should be the minimal baseline to anything of mild complexity in any language/project

It's the primitive required for Bret Victor's seeing spaces talk and the ideas are still ignored some 15+ years later

Re:Clj.rs – a Clojure dialect implemented in Rust by waffletower on Monday November 09, 2026 @12:14PM (#50428442)
It needs a much better name than Clj.rs. Try 'rusteze'.