I realize this might be slightly OT but, yeah.
I realize this might be slightly OT but, yeah.
Janet is a tiny (the entire language, core library, interpreter, assembler, and compiler are all < 1 MB combined), some-batteries-included, embeddable Lisp implemented in C. It borrows a number of Clojure's design sensibilities but isn't married to the JVM. It has super-fast startup times, so it's great for scripting. It has a built-in event loop, so you can do concurrent stuff out of the box. And the accompanying build tool compiles straight to native executables (either statically or dynamically linked) so distribution is a breeze.
If you're Clojure-curious but want something lighter-weight with (IMHO) a much more gradual learning curve, Janet is a great pick.
Janet looks really interesting. How did you go about learning it?
Recently, one of the veterans in the community published an online beginner-focused book called "Janet for Mortals" that I wholeheartedly recommend: https://janet.guide
Aside from that, the community and ecosystem around Janet is still very much developing. I don't know of any really good tutorials on YouTube, for example, and while I know of a blog or two there aren't many. So there's totally a niche for someone to create new content, if that's something you're interested in doing.
[0] https://janet-lang.org/docs/index.html
[1] https://github.com/janet-lang/janet
Will take a look at Janet! Thanks for the tip!
Not to disparage the effort, but I hate following a guide or tutorial just to learn it ends when it starts to get good.
Janet looks lispy, but it really deviates from both core lisp and clojure conceptually.
To me, the biggest benefit of learning a lisp variant is in the concept, not the parens.
Scheme is probably the most beautiful, clojure the most fun, and common lisp the most standard. Racket is very close to scheme, has good libs, and feels modern.
I cut my teeth on 'The Little Schemer' book, and found it super enjoyable. Good luck!
Racket is, to my mind, the most interesting Lisp variant that's actively developed. The macro system / build-your-own-language facilities are like nothing else I'm aware of. This is worth learning about, because it's genuinely something that other languages don't offer. A lot of the rest of the ideas in the Lisp-family can now be found in other languages.
omgmajk, if you care to see some random Racket code/projects, https://github.com/evdubs?tab=repositories&q=&type=source&la... has some stuff to look at.
I'm a lowly systems analyst at ${large_employer}. We're allowed to have Python for data analysis and RPA, but I really prefer the syntax, editor tooling, and REPL-driven development style of Lisp.
Hy has been great!