6 ms·
> 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 simila
by naruhodo 5y ago
> 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 (<https://github.com/anmonteiro/lumo>) and Planck (<https://planck-repl.org/guide-all.html>)
- There's Babashka (https://github.com/babashka/babashka https://github.com/babashka/babashka), which is a natively-compiled Clojure interpreter, implemented with the Small Clojure Interpreter (https://github.com/babashka/sci https://github.com/babashka/sci) and GraalVM for native compilation.
- There's Joker (https://github.com/candid82/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 https://groups.google.com/g/clojure-clr) on the Common Language Runtime.
- There's Cloture (https://github.com/ruricolist/cloture https://github.com/ruricolist/cloture), which is Clojure in Common Lisp.
- There's Clojerl (https://www.clojerl.org/ https://www.clojerl.org/), which is Clojure for the Erlang VM.
- There's Pixie (https://blog.goodstuff.im/pixie https://blog.goodstuff.im/pixie), with Clojure syntax, but compiling to native.
- There's Ferret (<https://github.com/nakkaya/ferret https://github.com/nakkaya/ferret>) which is Clojure transpiled to C++11.
- There are some Lisps that have borrowed Clojure's syntax:
- Janet <https://janet-lang.org/>
- Carp <https://github.com/carp-lang/Carp>
There are a variety of other Lisp-like languages listed here: https://github.com/dundalek/awesome-lisp-languages https://github.com/dundalek/awesome-lisp-languages
Apologies for the formatting.
- Zababa 5y agoI'm surprised to see no Clojure built on Go. Is there a technical reason why this wouldn't be a good idea?
- capableweb 5y ago> - There's Joker (https://github.com/candid82/joker https://github.com/candid82/joker) with a similar mission to Babashka, but commonly used as a linter. Joker is a Clojure interpreter, mostly used as a linter in the community but can be used as a runtime as well.
- Zababa 5y agoBy "built on Go" I meant like Java: you can use Go libraries and compile it as you would compile Go code, to a single binary.
- capableweb 5y agoI see! "Built on X" would usually refer to what language something is built in, while what you're talking about is "interoperability" with the host language. But yeah, unfortunately Joker doesn't do interop, which is sad because it's one of the coolest features of the Clojure language.
- dmurray 5y agoIs 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.
- Zababa 5y ago> 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 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 https://github.com/hylang/hy is a dialect of Lisp that compiles to Python.
- gilch 5y agoHy actually compiles directly to Python AST, not to Python. For a Lisp that compiles to Python, see Hissp: https://github.com/gilch/hissp https://github.com/gilch/hissp
- rawoke083600 5y agoThese projects are great and definitely needed as a first requirement for an extensive 3rd-party-library. Been looking around at LISPs/CJ and there doesn't seem a very up2date library for dynamic-web-scraping or controlling headless-Chrome. Compared say to Golang. Of course this a nitpick and a sample size of one :)
- slgeorge 5y agoFor Clojure on the JVM I've seen etaoin (https://github.com/igrishaev/etaoin https://github.com/igrishaev/etaoin) and there's clj-chrome-devtools (https://github.com/tatut/clj-chrome-devtools https://github.com/tatut/clj-chrome-devtools). I would ask on Clojureverse or the Clojure Slack/Zulip for opinions. For ClojureScript I guess there's lots of options since you can access the Javascript ecosystem. One of the benefits of being hosted is that we can always fall back on the host language's options.
- zcam 5y agoAnd soon clojure-dart.