News for hackers. Stuff that matters.
Re:Differences with other Lisps by staplung on Wednesday November 03, 2021 @12:00AM (#29090974)
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.
Re:Differences with other Lisps by naruhodo on Wednesday November 03, 2021 @12:35AM (#29091143)
> 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), 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 <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

Apologies for the formatting.

Re:Differences with other Lisps by rawoke083600 on Wednesday November 03, 2021 @02:57AM (#29091806)
These 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 :)
Re:Differences with other Lisps by slgeorge on Wednesday November 03, 2021 @04:55AM (#29092367)
For Clojure on the JVM I've seen etaoin (https://github.com/igrishaev/etaoin) and there's 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.

Re:Differences with other Lisps by Zababa on Wednesday November 03, 2021 @06:16AM (#29092769)
I'm surprised to see no Clojure built on Go. Is there a technical reason why this wouldn't be a good idea?
Re:Differences with other Lisps by dmurray on Wednesday November 03, 2021 @07:16AM (#29093135)
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.

Re:Differences with other Lisps by Zababa on Wednesday November 03, 2021 @08:29AM (#29093685)
> 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 is a dialect of Lisp that compiles to Python.

Re:Differences with other Lisps by gilch on Saturday November 06, 2021 @07:01PM (#29134664)
Hy actually compiles directly to Python AST, not to Python. For a Lisp that compiles to Python, see Hissp: https://github.com/gilch/hissp
Re:Differences with other Lisps by capableweb on Wednesday November 03, 2021 @06:32AM (#29092884)
> - There's 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.

Re:Differences with other Lisps by Zababa on Wednesday November 03, 2021 @06:34AM (#29092894)
By "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.
Re:Differences with other Lisps by capableweb on Wednesday November 03, 2021 @06:39AM (#29092920)
I 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.

Re:Differences with other Lisps by zcam on Wednesday November 03, 2021 @01:40AM (#29091441)
And soon clojure-dart.
Re:Differences with other Lisps by mathisonturing on Wednesday November 03, 2021 @04:02AM (#29092123)
Curious - why is running on JVM bad?
Re:Differences with other Lisps by LandR on Wednesday November 03, 2021 @09:05AM (#29094036)
Very slow startup for one.
Re:Differences with other Lisps by the-alchemist on Wednesday November 03, 2021 @09:36AM (#29094333)
Yeah, somewhat agree. The Clojure community has put so much effort into working with GraalVM.

* https://convexhuman.com/graalvm-clojure.html * https://nitor.com/en/articles/fast-cold-starts-for-clojure-i... * https://www.innoq.com/en/blog/native-clojure-and-graalvm/

Since development in the REPL is so common (watch any Clojure live coding session), JVM startup time isn't much of an issue in practice.

Re:Differences with other Lisps by lispm on Wednesday November 03, 2021 @11:41AM (#29096201)
This solves the startup-time of (static) applications, but not the startup time of for example executables, which include the development environment.
Re:Differences with other Lisps by subderisorious on Wednesday November 03, 2021 @12:19AM (#29091063)
Like ClojureScript?