janet-sh
termp
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
janet-sh
- Writing Small CLI Programs in Common Lisp (2021)
-
Getting started with lisp
Right now, the one that is most attractive is Janet, with its wonderful shell programming integration and built-in http request. Those are both things I'm working a lot with.
-
Janet – a Lisp-like functional, imperative programming language
I use Janet most often as a glue for shell utilities using the sh package (https://github.com/andrewchambers/janet-sh). It's a great tool for building small containerized jobs. I think it has a ton of potential as the ecosystem grows and matures.
Some rough spots:
- No canonical http client. There are a few attempts at wrapping libcurl but nothing complete and well documented yet. However, the creator of Joy framework for Janet does have an http client library.
- The main http server circlet is MIT licensed, but it is built on top of Mongoose, which is GPL/paid commercial. Something to be aware of if you want to distribute binaries made with this library.
- I have never been successful getting any of the UI or drawing libraries to work.
- Naming of packages is a bit confusing even if you have watched the Good Place and are aware of all of the inside jokes.
-
Writing Small CLI Programs in Common Lisp
The arguments I have seen are based on Janet using arrays/tuples rather than cons cells. Here is the author addressing this on reddit a while back. https://old.reddit.com/r/programming/comments/aqwedz/janet_i...
The debate continues in the thread. Either way, I think Janet is very useful for situations where you want something lisp like and also want/need small executables. I've experimented with it quite a bit and have found it really useful for putting together cli apps. The sh package is really useful for gluing together other shell programs. https://github.com/andrewchambers/janet-sh
termp
-
Writing Small CLI Programs in Common Lisp
About uiop:quit, that sometimes are in the middle of a script: lately I have wrapped it around a check of the nature of the terminal: if the terminal is dumb ($TERM), we are very likely inside Emacs/Slime, so we don't quit. https://github.com/vindarel/termp
What are some alternatives?
roswell - intended to be a launcher for a major lisp environment that just works.
rich - Rich is a Python library for rich text and beautiful formatting in the terminal.
janetdocs - A community documentation site for the janet programming language
cligen - Nim library to infer/generate command-line-interfaces / option / argument parsing; Docs at
freja - Self-modifiable editor for coding graphical things
janet-pobox - Clojure like atoms/spinlocking in Janet
hofmod-cli - Hofstadter generator for Golang CLIs
janet - A dynamic language and bytecode vm
Mongoose - MongoDB object modeling designed to work in an asynchronous environment.