Clojure Hosted on Go

194 points by dnlo 9 days ago on hackernews | 24 comments

giancarlostoro | 9 days ago

Previous discussion from 2024:

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

metadat | 9 days ago

68 comments

I wonder how it’s progressed in the past two years?

ameliaquining | 9 days ago

Judging by the changelogs in the releases section, there haven't been radical changes, just incremental improvements.

seanc | 9 days ago

This is the way.

adityaathalye | 9 days ago

Work is being furthered by Ingy döt Net [0] (Creator of Gloat, YAML, YAMLScript, and other stuff), supported by a Clojurists Together grant [1].

[0] https://gloathub.org/blog/2026/06/16/gloat-q2-grant-halfway-...

> We are halfway through the Q2 2026 Clojurists Together funding cycle, so this is a good time to report what has been done for Gloat and Glojure.

...

> Since the start of the grant period, Gloat and Glojure have had over 20 releases, with Gloat moving from v0.1.26 to v0.1.50. The Glojure work was all being done on the long running fork gloathub/glojure, but I'm thrilled to announce that as of today, the work has been fully moved back to the upstream glojurelang/glojure and will continue to be maintained and released from there.

> My overall ambition for Gloat is to have Clojure be as full featured and prominent to Go programming as it is to Java. The industry is crazy about Go. Let's get it crazy about Clojure.

[1] https://www.clojuriststogether.org/projects/#Gloat:~:text=Ma...

> Make Gloat/Glojure binaries smaller and faster. Pass more of the Clojure Compatibility Test Suite. Create tutorial docs on: How to use Gloat to integrate Clojure into Go projects and How to use Gloat instead of GraalVM to (cross-)compile Clojure.

hardwaresofton | 9 days ago

Another really interesting Lisp that I recently came across:

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

adityaathalye | 9 days ago

Jank, a Clojure dialect, is playing in the same field:

> Where jank differs from Clojure JVM is that its host is C++ on top of an LLVM-based JIT. This allows jank to offer the same benefits of REPL-based development while being able to seamlessly reach into the native world and compete seriously with JVM's performance.

https://jank-lang.org/

adityaathalye | 9 days ago

PSA: glojure maintenance has moved here: https://github.com/gloathub/glojure

Worth changing the submit URL to this one?

Edit: never mind. Spoke too soon. Ingy is keeping gloathub/glojure fork and glojurelang/glojure source at parity.

shikck200 | 9 days ago

Thats pretty sweet.

How does the repl work? Does it compile to Go, then execute? Or does it ship with a full vm? Most go repls are really slow because they need to compile/execute (they fake the "e" part in repl). Its a niche case, but could enable some fun projects.

gregwebs | 9 days ago

There’s also typed fp on Go: https://lisette.run/

The Go runtime, toolchain, and ecosystem are great- it makes sense to target it.

solumunus | 9 days ago

Gosh this is exactly what I’m looking for, would love for this to become mature and popular.

rienbdj | 9 days ago

Looks like a nice language. They market it as a Rust-like looks more like an ML to me.

samuell | 9 days ago

Found this previous thread about Lisette: https://news.ycombinator.com/item?id=47646843

didibus | 9 days ago

I believe this is the most promising Clojure hosted on Go, as their has been a few recently, this is the only one with full proper interop.

marcingas | 9 days ago

https://github.com/nooga/let-go has been making huge leaps in terms of perf and interop since its launch.

kpassapk | 9 days ago

dialects are IMO the most exciting thing about clojure. they are making progress quickly and reaching parity.

mono442 | 9 days ago

since this is tree walking interpretator, won't it be quite slow?

jonathanstrange | 9 days ago

From what I can gather from the site it has no security or sandboxing features. Or am I missing something?

I'm asking because I'm thinking about R7RS Wile scheme[1] as an embedded language, which has some basic security features. But it's heavily vibe-coded and that puts me off a bit, so I'm looking for other Lisp or Scheme dialects in Go.

[1] https://github.com/aalpar/wile

kitd | 9 days ago

A Go executable is self-contained. You can put it in a Docker container with very little overhead. That would give you some sandboxing at least.

jonathanstrange | 9 days ago

I'm creating cross-platform GUI applications in Go. Besides that, there are numerous reasons why an extension/scripting language might need various security and sandboxing features on a server, too.

networked | 9 days ago

Sandboxing in Wile is based on "A Security Kernel Based on the Lambda-Calculus" by Jonathan A. Rees (https://dspace.mit.edu/entities/publication/ef87c5a4-aae4-41...). This 2020 HN comment recommends it as the best paper the user read that year: https://news.ycombinator.com/item?id=25354770. The report itself is from 1996. Sounds worth reading.

My current choice of Go interpreter for untrusted code is Starlark in Go (https://github.com/google/starlark-go/). Since Starlark is a dialect of Python, it's occurred to me it might be fun to put a Hy-like (https://hylang.org/) layer on top.

igtztorrero | 9 days ago

Clojure is difficult for me, that's why I use Tengo script language in our Go Projects, to allow user run certain code.

https://github.com/d5/tengo

nathell | 9 days ago

Another recent Clojure dialect written in Go: [0], HN discussion: [1]

[0]: https://github.com/nooga/let-go

[1]: https://news.ycombinator.com/item?id=48076815

rcarmo | 9 days ago

My take on this is a turbocharged fork of joker, with an IR-driven runtime and a WASM bridge via wazero: https://github.com/rcarmo/go-joker