What makes a modern Lisp? I am aware of Fennel and Jannet. Anyone havng experience with one of those or another one I am not aware of?
xlii•4h ago
Having experience with many IMO it's all about value added. There might be concurrency, message passing (Janet) od global scope isolation (Fennel). Personally I had difficulty getting into Fennel, but no problems incorporating Janet into my flow even though the author is the same. I'm not a fan of hygienic macros though.
I would add Clojure to the modern Lisps, too, which I find the most feature rich (even though had much more blast writing Janet).
TacticalCoder•4h ago
> I would add Clojure to the modern Lisps, too, which I find the most feature rich (even though had much more blast writing Janet).
Yup. Clojure may not be the most lispy Lisp but it reaches: it works on top of the JVM (with super easy Java interop), it transpiles to JavaScript and I also use it to write script using Babashka (GraalVM/AOT native Clojure interpreter which starts in milliseconds, avoiding JVM startup time [notoriously slow for regular Clojure programs]).
Being able to share code between Clojure and ClojureScript is really sweet.
Clojure(Script) / Emacs (CIDER) / eglot (LSP client for Emacs): life is good!
neutronicus•15m ago
I know the homoiconicity purists hate the additional braces in Clojure, but I consider the literal vectors and hash tables a pretty big win over `#()` and the mess that is dealing with hash tables in CL.
tmtvl•3h ago
Common Lisp, which I would consider the most modern, has convenience features which most other languages (even other Lisps) lack. CLOS, macro expansion, and, of course, the condition system.
terminalbraid•11m ago
Which lisps lack a macro expansion system?
setopt•4m ago
Do you consider Common Lisp more "modern" than say Scheme or Racket?
As far as I know, the CL spec hasn’t been updated for 30+ years, and most of its design is far older.
radiator•2h ago
Janet (with one l) is modern because it is, well, new. It doesn't need to carry the historical baggage of Common Lisp. It has many data structures, a concurrency model, it is suitable for functional programming and for object-oriented programming. It has libraries for common tasks and is well documented.
ritenuto•1h ago
> Janet (with one l)
Typo, it should be: “with one n” (as the earlier commenter wrote “Jannet”). It took me a while to parse this, I was searching for the nonexistent “l” embarrassingly long.
psychoslave•4h ago
Sorry, but what is Fennel?
Lyngbakr•4h ago
Fennel[0] is a Lisp-like language that transpiles to Lua. It was originally developed by Calvin Rose (author of Janet[1]), but is now maintained by Phil Hagelberg (author of Leiningen[2]).
Fennel absolutely rocks for creating games. It integrates with TIC-80 (open source fantasy console) and also Love (game engine) and PICO-8. Lots of blog articles on getting started. Check it out!
adastra22•2h ago
TIL you can configure Emacs with Brainfuck. This is so appropriate and I can’t think of a better language to use.
campak•58m ago
came thinking somehow fennel the seed extended Emacs
jhoechtl•5h ago
xlii•4h ago
I would add Clojure to the modern Lisps, too, which I find the most feature rich (even though had much more blast writing Janet).
TacticalCoder•4h ago
Yup. Clojure may not be the most lispy Lisp but it reaches: it works on top of the JVM (with super easy Java interop), it transpiles to JavaScript and I also use it to write script using Babashka (GraalVM/AOT native Clojure interpreter which starts in milliseconds, avoiding JVM startup time [notoriously slow for regular Clojure programs]).
Being able to share code between Clojure and ClojureScript is really sweet.
Clojure(Script) / Emacs (CIDER) / eglot (LSP client for Emacs): life is good!
neutronicus•15m ago
tmtvl•3h ago
terminalbraid•11m ago
setopt•4m ago
As far as I know, the CL spec hasn’t been updated for 30+ years, and most of its design is far older.
radiator•2h ago
ritenuto•1h ago
Typo, it should be: “with one n” (as the earlier commenter wrote “Jannet”). It took me a while to parse this, I was searching for the nonexistent “l” embarrassingly long.