janet-sh
joy
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
joy
-
Joy: A maximalist web framework for Lisp aficionados
Hmm I see, that link may be a bit unfortunate, as it only shows the introduction to the docs.
More pages are here: https://github.com/joy-framework/joy/tree/master/docs
PS: I did a very minor contribution to Joy once, so minor that I actually forgot about it :) I don't use Joy myself at the moment as I'm using my own framework, but the Joy docs + source code helped me out a lot in figuring out how to do authentication, csrf, etc!
-
Coast on Clojure
He made a similar framework for Janet lang in Joy Framework[1] and it's unironically a joy to work with. Joy is one of those tools that is almost enough to make you use a different language imo. Got it where it counts, but still minimal and low mental overhead.
[1]: https://joy.swlkr.com/
-
Where is Ruby Headed in 2021?
>Node.js comes so close but anemic standard library
The nodejs API is rather big really. If you're using Ruby as your standard of normal sized almost everything would look small in comparison, but "anemic" is a stretch. You'd really hate Lua.
If you're taking suggestions, you might enjoy Janet[1]. It has a pretty large user API, lots of bells and whistles included in the standard libs like you'd find in Ruby, and lots of different ways to achieve the same result like Ruby. It's been a while since I checked out the ecosystem, but I was _very_ happy with the Joy Framework[2]. It definitely doesn't come close to the scope of Rails, but I think it _does_ near Rails in it's easy of use for the developer with it's scaffolding, controller generation etc.
[1]: https://janet-lang.org/
[2]: https://github.com/joy-framework/joy
- Janet – a Lisp-like functional, imperative programming language
What are some alternatives?
roswell - intended to be a launcher for a major lisp environment that just works.
janet-pobox - Clojure like atoms/spinlocking in Janet
janetdocs - A community documentation site for the janet programming language
TypeORM - ORM for TypeScript and JavaScript. Supports MySQL, PostgreSQL, MariaDB, SQLite, MS SQL Server, Oracle, SAP Hana, WebSQL databases. Works in NodeJS, Browser, Ionic, Cordova and Electron platforms.
termp - Trivial utility: are we in a terminal window or in a dumb one? (like Emacs' Slime)
freja - Self-modifiable editor for coding graphical things
solargraph - A Ruby language server.
net_skeleton - Async non-blocking multi-protocol networking library for C/C++
hofmod-cli - Hofstadter generator for Golang CLIs
Mongoose - MongoDB object modeling designed to work in an asynchronous environment.