Hi! What do you actually use to edit Joker code?
And to work with the REPL?
I guess that repurposing Emacs/CIDER or VSCode/Calva would be possible.. but kinda hacky, so I'm wondering if maybe I'm missing something
Wow, this brings back memories! I’m sure Roman and I discussed possibly adding nREPL support years ago; and ISTR researching what that would entail, but don’t recall what I learned offhand nor how difficult it would be.
@alex.murataev — does Joker (being Golang-based) meet your needs in terms of being “leaner”, aside from nREPL and perhaps other issues? I ask because, while I’ve not been actively developing my fork of Joker (nor Joker itself) for years now, I wonder whether it’s worth picking up that work again someday versus using Babashka versus doing something rather different, like looking into a Rust-based Clojure interpreter designed for compact executables and very fast startup (which is what drew me to Golang and then Joker in the first place). When I evaluated various languages and shells, back around 2017, looking for fast startups that might be suitable for a Lisp-like language interpreter (a scripting language that could still be compiled and heavily optimized, was my ideal), Golang came out shining at about 2x the startup time compared to C. Rust wasn’t among the languages I tested out; and that was 7 years ago, and I don’t know how Golang is doing these days, even though I use it (and Joker) quite a lot at home, and Golang at work.
I think the benefit of Joker over Babashka or Nbb is the Go standard library. Other then that, I feel Babashka and Nbb are nicer, as they're more complete, share libs with Clojure and ClojureScript, support having dependencies of their own, uberscript, have nRepl support, and so on. Babashka can even be embedded if I recall.
There's also basilisp now as another option for "Clojure scripting".
I've used Emacs/cider in the past. But I don't think nRepl was supported.
It might now.
Joker is very nice, and I don't want to discourage its use. But since you asked for repl, Babashka is similar to Joker and has full nRepl support. Which maybe joker has, but I'm not sure. So whatever you want to do you could try with Babashka.
Yeah, I actually already use Babashka, it's awesome. Was looking for an even leaner option for some specific cases where a single small executable with all the built-in libraries that Joker has would've been great. I think Joker doesn't support nREPL out of the box. For reference, the only mention of it I've found was someone wanting to implement it: https://www.reddit.com/r/Clojure/comments/rergw8/comment/hobur7v.
If there’s a repl, adding a basic nrepl isn’t too hard. The one in Babashka (or the one in #joyride) could probably form a template for “minimum viable nrepl server”.
Calva treats *.joke files as Clojure. (And VS Code lets you easily treat any file as Clojure). I don’t know if there’s a REPL though. If it is it needs to support nREPL to be useable in Calva.