1. 27
  1.  

  2. 15

    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.

    1. 5

      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?

      1. 3

        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.

        1. 2

          For comparison, the latest version of the reference Lua VM complies to 278kb.

          1. 2

            Small followup:

            https://github.com/MikeBeller/janet-benchmarksgame/tree/master/binarytrees

            Janet does beat lua and python in a few benchmarks here.

      2. 3

        I would love to learn more and read your elaboration, actually.

      3. 4

        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:

        http://zdsmith.com/tamerlane

        1. 3

          Ah interesting it uses CL style gensym instead of Scheme hygenic macros.