I’m a big fan of janet and have written a few libs and programs that I find quite useful:
Anyway, my point is janet is quite fun and usable, I encourage you to give it a try, and feel free to ask questions in the community gitter.
I feel like janet has a few killer features I want to elaborate further on, but would require more explanation than I can post here.
Thanks for sharing! I know it’s a sort of “depends” kind of question, but is Janet comparable to Lua in terms of speed and memory footprint?
A janet vm currently takes about 700kb to run, The design is very similar to lua, so I suspect if the performance doesn’t match lua currently, it would be able to match it. It definitely is not as fast as something like luajit.
For comparison, the latest version of the reference Lua VM complies to 278kb.
Janet does beat lua and python in a few benchmarks here.
I would love to learn more and read your elaboration, actually.
I’ve been having a lot of fun with Janet. It’s my current go-to for writing CLI-able scripts and personal programs. (It’s also my current go-to for wanting to be better acquainted with Lisp-style metaprogramming).
It’s a bit controversial, to a certain set, because it doesn’t use cons cells under the hood. That means I’ve had to unlearn a few linked-listisms. But basically it’s a powerful and compact lisp with a well-composed Standard lib.
Coincidentally, it also makes heavy use of fibers, a topic of another article on this site right now. Heavy as in, there’s not even any try/catch; you use fibers instead. It’s an interesting approach that I’m only scratching the surface of.
For those who want to read some Janet, I have a literate program here:
Ah interesting it uses CL style gensym instead of Scheme hygenic macros.