Rust itself, at least the early incarnations, was pretty strongly influenced by ML. The first rustcs, before it became self-hosted, were written in Ocaml.
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.
> 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.
> 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.
> I think Gloat/Glojure has the best hosted runtime story because of its AOT to Go src pipeline - you can grab anything Go at compile time. OTOH let-go can roundtrip any Go value including structs, functions and channels but it does not allow pulling arbitrary go libs without wrapping them up first - they'd need to be built into the runtime for this.
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.
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.
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.
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.
There’s also typed fp on Go: https://lisette.run/
The Go runtime, toolchain, and ecosystem are great- it makes sense to target it.
Looks like a nice language. They market it as a Rust-like looks more like an ML to me.
Rust itself, at least the early incarnations, was pretty strongly influenced by ML. The first rustcs, before it became self-hosted, were written in Ocaml.
Found this previous thread about Lisette: https://news.ycombinator.com/item?id=47646843
Gosh this is exactly what I’m looking for, would love for this to become mature and popular.
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.
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.
Previous discussion from 2024:
https://news.ycombinator.com/item?id=42272524
68 comments
I wonder how it’s progressed in the past two years?
Judging by the changelogs in the releases section, there haven't been radical changes, just incremental improvements.
This is the way.
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.
dialects are IMO the most exciting thing about clojure. they are making progress quickly and reaching parity.
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.
https://github.com/nooga/let-go has been making huge leaps in terms of perf and interop since its launch.
Has something changed since you last told me:
> I think Gloat/Glojure has the best hosted runtime story because of its AOT to Go src pipeline - you can grab anything Go at compile time. OTOH let-go can roundtrip any Go value including structs, functions and channels but it does not allow pulling arbitrary go libs without wrapping them up first - they'd need to be built into the runtime for this.
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
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
since this is tree walking interpretator, won't it be quite slow?
Another really interesting Lisp that I recently came across:
https://github.com/carp-lang/Carp
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/
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
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
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.
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.
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.