The post is a personal case for Janet, a modern Lisp with a small runtime, built-in parser tools, macros, image-based workflows, and a packaging story that can emit standalone binaries. It pitches Janet as unusually good for exploratory programming and for the class of jobs that often end up split across shell, Python, awk, and a grab bag of small tools. Several comments backed that up with concrete use. People are replacing shell scripts with Janet because it starts almost as fast as dash, has a shell DSL in the standard library, and can compile code and data into tiny self-contained executables. Others pointed to art tools, web apps, and embedded scripting use cases as evidence that Janet is not just a toy REPL language.
The praise was strongest around developer experience. Even people comparing it to Babashka, Fennel, Tcl, Lua, and Hy kept landing on the same shape of tradeoff. Janet gives you a compact standalone runtime, strong macros, built-in networking, a good debugger and REPL, and a path to compile-time computation that lets you bake datasets and generated structures straight into the binary. That combination makes it feel closer to a practical systems scripting language than many Lisps. The comments also clarified that some of the article’s “Janet is simple” framing needs nuance. Janet has immutable collections, but the standard library often returns mutable ones. Its parser story is based on Parsing Expression Grammars rather than regular expressions, which some people love because grammars stay explicit and readable, and others dislike because
PEG rules are order-sensitive and reject patterns a general parser would accept.
Where people cooled on Janet was mostly ecosystem and boundaries. Multiple comments called out weak package versioning, a thin library set, and awkwardness around advanced web features unless you adopt community frameworks like Joy or third-party wrappers such as jurl and churlish. Others pushed on architectural gaps rather than syntax. Janet’s embedding model uses thread-local global state, which is fine for many applications but looks like a poor fit for host environments that need many independent interpreter instances scheduled across arbitrary threads, such as audio plugins. There was also a small but sharp argument over namespaces, with defenders saying Janet environments are first-class and import just adds prefixes, while critics said that is not the same as first-class namespace objects.
The broader mood was old-school language nerd excitement. A lot of people were less interested in whether Janet will “win” than in the fact that it revives a style of programming centered on macros, structural editing, REPL-driven development, and tiny embeddable runtimes. The useful conclusion was not “everyone should use Janet.” It was that Janet occupies a rare slot: more coherent and batteries-included than many tiny embeddable languages, more lightweight than Clojure or Python, and best when you want to build tools, CLIs, embedded scripting, or small services without dragging in a large platform.