Janet for Mortals (2023)

  • Not to mention https://bauble.studio/ from the same author!

    It doesn't work in my browser - which is understandable because my computer is ancient - but sometimes when I want a break from study in the library I'll spend thirty minutes on a library computer playing in bauble there. I might get around to trying to figure out how the thing works, but the graphics you can make just fiddling with numbers is wild.

    Long life to Janet.

  • It's neat to compare Janet to GNU Guile. Guile's original pitch is that it's intended to be easily used side-by-side with C. However, because it's an older language, it hasn't (to my knowledge) picked up newer sensibilities like having a package manager shipped with the language toolchain.

    One thing I like about Guile is how much effort they've put into describing compatibility with the RNRS standards. Not sure how Schemey Janet actually is, but I'm curious to find out.

  • The book. https://janet.guide/

    The language. https://janet-lang.org/

  • I enjoyed this book’s practical take. It’s a big part of why I am currently learning Janet by doing Everybody Codes in it right now.

    https://everybody.codes

  • > "the turtles are metaphors"

    :( The turtles were real, not metaphorical: http://classicacorn.computinghistory.org.uk/8bit_focus/logo/...

    (it fits the definition of metaphor 'One thing conceived as representing another; a symbol' but it has the feel of people saying "my niece thought the floppy disk save icon is a refrigerator because that's where you save leftover food" not realising that it was a real piece of fun/cute hardware many moons ago).

  • The title made me believe it was just another AI assistant (thinking Janet from "The Good Place" - but for us non-dead people instead. Was pleasantly surprised to see it is a programming language and that the title was just a clever joke on that:

      The Janet language is named after an immortal being in The Good Place who helps mortals navigate the afterlife, hence the title.
    
    It kinda surprised me that they ship the language with a PEG (parsing expression grammer) instead of a basic Regex engine. This has been my wish for any programming language that ships a Regex library by default to also include a capable PEG.

  • I've read the book and I found it very fascinating and kind of playful, which actually makes learning the Janet program language much more fun. However, I found the documentation of the language lacking in many ways. Oftentimes there are functions or commands that are just there, but there's no example or explanation. or explanation as to what they do. In fact, there are a lot of those that I found in the book, but I couldn't find in the documentation. So this is one of the reasons I stopped learning Janet, even though I really like the idea of this language, and the fact that it has many sane defaults and similarities to mainstream languages instead of like adhering to archaic Lisp conventions. At the end of the day, it's not actually a LISP because it's not cons lists. And it is fine by me, but again, I found the language not fully documented.

  • I couldn’t get into Janet, I’m not sure if this is a personal failing on my part. The only other Lisp I’ve spent any significant time in is Emacs Lisp, and everything in Janet seemed similar enough to that but just subtly different that I was always making silly mistakes. The PEG features were really compelling on paper but I found the syntax unwieldy and confusing. The documentation was complete in that it had descriptions of all the functions, but spartan in that it lacked examples or other helpful usage information. There didn’t seem to be any basic batteries included such as JSON parsing; if I want to write a quick script in a language and I have to first write a JSON or XML parser, task is already failed.

    This was like four years ago, so maybe the ecosystem is better now. Or maybe scripting was the wrong ruler to measure Janet by. I don’t know but this post is making me want to reinstall it.

  • Off topic - a separate blog post by TFA got me into split mechanical keyboards. It helped me after years of shoulder and wrist pain. Highly recommend exploring other posts by Ian.

  • > ... has a built-in repl. At any point you can press escape and pull it up, and it’s docked to the bottom of the page...

    probably not a good decision to use `Esc` since browsers have default bindings for it. firefox exits fullscreen on `Esc`

  • This book got me started with Janet a few months ago, and I really think it helped me get past the difficulty I've had in the past starting with Lisp-y languages (Janet is Lisp like only in appearance afaik) but this just clicked. I'm having a lot of fun writing Janet and refer back to the book often.

    I do think the macro example that is early in the book is a little overwhelming; if you can get past that everything is far easier. Whats great is that you can leave the author a comment right from the repl, so I did :)

  • I really like the slightly silly writing style! Reminds me of a toned-down Douglas Adams. Honestly, I'm not particularly interested in Janet but the style sucked me in.

  • This is a very "Internet" comment, but what struck me about the title and very many other titles in the software engineering world is that I'm not sure it's the best idea to belittle readers in the title. The implication of "<x> for normal people, mortals, dummies, etc." titles is that the reader is not on the level of the author of the book and the authors of the tool or topic that one is learning about. Specifically, "for mortals" implies the author and programming language author are immortals, or at least not mortal. I realize this is taking the title more seriously than probably intended, but this type of framing pops up a lot in the software and programming world.

  • Janet looks really interesting. Especially with how easy to embed it is.

    If I understand it correctly creating DSLs in it should also be very easy with its macro and PEG feature?

  • Absolutely love the writing style, which was the reason I got sucked into functional programming and the Janet language deeper than I'd had previously wanted to.

    Thank you!

  • The style and tone of this book (website) is quite funny, I really enjoy it.

  • “We’ll start with some numbers” I was expecting he’ll start by proclaiming it’s that language that uses floats for integers.

  • Love the book! It's fun and inspiring to write programs recreationally!

  • This is very cool:

    > this book contains a repl, and you can summon it whenever you’d like by pressing the escape key on your keyboard. The book will then start downloading like a megabyte of JavaScript and WebAssembly, and once it’s done you will be able to try out Janet right here in the comfort of your browser. No need to install anything; no need to leave the comfort of this book website if you’d like to test something out.

    > The repl is not just a repl, though. It is also a portal into conversation with me, the author. You can use the repl to report typos or factual errors, ask questions, or express confusion. I won’t be able to respond in the repl, but if you include some kind of contact information in your reports I will make an effort to follow up with you.

  • I’m holding out for the one written for immortals.