3 ms·
I started out with Clojure, but recently have been really enjoying Janet.[0] Janet is a tiny (the entire language, core library, interpreter, assembler, and co
by cfiggers 3y ago
I started out with Clojure, but recently have been really enjoying Janet.[0]
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.
[0] https://janet-lang.org https://janet-lang.org
- scruple 3y agoI started with CL in December '20 and used it for small toy projects for about 18 months and then, when my last child was born, completely forgot it exists. Janet looks really interesting. How did you go about learning it?
- cfiggers 3y agoI learned it mostly just by reading through the official documentation[0], but also by looking at code examples in the test suite of the compiler itself at janet-lang/janet[1], the official contrib library at janet-lang/spork[2], and hanging out in the community chatroom on gitter[3]. 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 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 https://janet-lang.org/docs/index.html [1] https://github.com/janet-lang/janet https://github.com/janet-lang/janet [2] https://github.com/janet-lang/spork https://github.com/janet-lang/spork [3] https://gitter.im/janet-language/community https://gitter.im/janet-language/community
- omgmajk 3y agoSounds interesting, I have bene following https://llthw.common-lisp.dev/ https://llthw.common-lisp.dev/ and it seems to be fine. I might need to do it twice because some of this is not intuitive to me at all. Will take a look at Janet! Thanks for the tip!
- sph 3y agoIt does seem majorly incomplete, that just gives you a very-high level overview of Common Lisp. Not to disparage the effort, but I hate following a guide or tutorial just to learn it ends when it starts to get good.
- omgmajk 3y agoAgreed. I wish more books, essays and tutorials were aimed at more intermediate or senior people - or at least a little higher than basics.
- pharmakom 3y agoHow does it compare to ClojureScript on Node.js?
- cfiggers 3y agoI'm not familiar with running ClojureScript on Node.js, so I can't give a confident answer. :)
- gorjusborg 3y agoI checked out Janet and it is pretty cool. However, if your goal is to learn a lisp, Janet isn't the best option. 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!