joker

Discuss all things joker, the Clojure interpreter/linter on top of Go. https://github.com/candid82/joker
jcburley 2019-06-23T02:48:08.042Z

Wow — I did a similar analysis, focusing on (free) Lisp implementations’ startup times and memory usage, after discovering the straight Clojure would consume so much VM on my little VPC, running just a small demo program, that the machine wouldn’t continue to serve sufficient IMAP and SMTP connections to keep my email server running.

jcburley 2019-06-23T02:50:01.044200Z

I have notes somewhere (posted some perf analysis on my consulting site, http://burleyarch.com, awhile back, but not all this stuff I did) comparing Emacs Lisp, Scheme, Guile, GCL, Clojure, and so on. Wanting to use a Clojure dialect, that led me to ClojureC. Explored that, found and fixed a bug or two, liked what I saw, but in talking with the author about its future (it was really behind the Clojure-version curve), he suggested I look into ClojureScript in combination with the Google v8 engine.

jcburley 2019-06-23T02:51:01.045300Z

That seemed a little better, but in the meantime I was also checking out languages to implement a fast Clojure interpreter in, and discovered Go was only about 2x slower starting up a “Hello World” program than C. (Bash does surprisingly well, FWIW, so shells are not, in and of themselves, slow beasts.)

jcburley 2019-06-23T02:52:10.046500Z

I was actually considering implementing a Clojure variant in Go, when it occurred to me to search for one — and found Joker! Wish I had more time to work on it, but I’ve been running it for one-shot, lowish-latency-needed scripts on my email server for many months now (maybe a year).

jcburley 2019-06-23T02:53:27.047800Z

My current thinking is that its startup time could be substantially improved, but I want to investigate this only after I finish automating wrapping the Go STD for use by joker scripts, since that’s my main blocker for further adoption — after which improving the startup time would probably be at or near the top of the list.

richiardiandrea 2019-06-23T22:16:30.050500Z

Thanks for the comments, really nice to see what people are trying to explore. A compiler is a lot of work...I am thinking about it more and more in this period but then the whole "I can I make it sustainable" problem comes up

👍 1
pyrmont 2019-06-23T03:32:04.049300Z

FWIW, I think Planck might still be slower but plk is a wrapper script that runs Clojure to support deps.edn: https://github.com/planck-repl/planck/blob/master/README.md

2019-06-23T05:22:09.049800Z

Ya, I tried with planck directly as well, and it was the same timings

👍 1