In many ways I feel like Clojure is a better Lisp than Lisp itself. Syntactic niceties like support for vectors/maps/sets are, once you've gotten used to them, hard to do without. And although it's orthogonal to the syntax, I also appreciate its focus on immutability. I just with there was a Lisp like it that didn't run on the JVM.
> I just with there was a Lisp like it that didn't run on the JVM.
There are a few, with varying degrees of distance from the JVM and varying degrees of similarity to Clojure.
- There's ClojureScript, which is Clojure transpiled to JavaScript.
- See also Lumo () and Planck ()
- There's Babashka (https://github.com/babashka/babashka), which is a natively-compiled Clojure interpreter, implemented with the Small Clojure Interpreter (https://github.com/babashka/sci) and GraalVM for native compilation.- There's Joker (https://github.com/candid82/joker) with a similar mission to Babashka, but commonly used as a linter.
- There's ClojureCLR (https://groups.google.com/g/clojure-clr) on the Common Language Runtime.
- There's Cloture (https://github.com/ruricolist/cloture), which is Clojure in Common Lisp.
- There's Clojerl (https://www.clojerl.org/), which is Clojure for the Erlang VM.
- There's Pixie (https://blog.goodstuff.im/pixie), with Clojure syntax, but compiling to native.
- There's Ferret (<https://github.com/nakkaya/ferret>) which is Clojure transpiled to C++11.
- There are some Lisps that have borrowed Clojure's syntax:
- Janet
- Carp
There are a variety of other Lisp-like languages listed here: https://github.com/dundalek/awesome-lisp-languagesApologies for the formatting.
I'm surprised to see no Clojure built on Go. Is there a technical reason why this wouldn't be a good idea?
Is this surprising? I don't see an ecosystem of languages targeting the Go runtime, in contrast to the JVM, Javascript, Erlang, MS CLR...
I don't think this is necessarily a matter of popularity or maturity. I don't know of languages that compile to Python bytecode, either. In Python's case I suspect the VM is so optimized for Python that it makes an inflexible target for other languages: I don't know enough about this subject to say whether that's the case for Go as well.
I think I'm surprised in general that no language targets the Go runtime. A ML built on Go could probably be popular, lots of people would like features from it.
Not exactly bytecode but Hy https://github.com/hylang/hy is a dialect of Lisp that compiles to Python.