Ask FoC: What are your favorite Lisps? Which ones ...
# thinking-together
t
Ask FoC: What are your favorite Lisps? Which ones are good for typical engineering work vs which are good for thinking and creativity?
p
So hard to pick! Logo, Scheme, elisp, Lisp 1.5, MAClisp, RPL. I've had so much fun and learned so much over the years from all of them!
y
Racket is always my go to
t
Which ones are usable from any editor? iirc, some of those have a much better experience from their custom IDE, but I have a hard time giving up my vim bindings
p
Elisp is emacs only. Lisp 1.5 and MAClisp I played with in emulators. RPL is on HP calculators. So Scheme and Logo are the ones you can use in any editor.
k
I have three favorites: Common Lisp, Racket, and Clojure. Common Lisp is standardized, with several implementations optimized for different scenarios. You can even run it interactively on Android. Some implementations provide a decent live programming experience, in combination with a suitable IDE (Emacs + Sly for me). Racket and Clojure are where innovation in the Lisp universe happens. And yet, both have solid and very usable implementations. Racket is the platform to choose for experimenting with language design (inclusing DSLs), and for access to pretty much all ideas in CS in the form of a huge standard library. Clojure (and ClojureScript) let you use Lisp in contexts where other languages (Java/JavaScript) are dominant players you have to arrange yourself with.
t
Thanks for the detailed overviews @Konrad Hinsen
j
I feel like with
LAMBDA
, spreadsheet formulas are pretty much a Lisp? Which would make them my favorite simply because they also happen to be the most inclusive. Add in Coda’s chaining sugar, and that would be pretty much a, uh, sweet spot, IMO, of language expressiveness and readability/writability.
w
The best Lisp is always your own! Common Lisp’s
setf
feels overly elaborate. Scheme is so cleverly non-dynamic and has some weird cons immutability rules. I guess my dislike of a Lisp is proportional to how well I know it!
k
@wtaysom Well, then... the best Lisp, the one you make yourself, is also the one you know best and the one you dislike most.
w
Checkmate! 😂
t
Something with a solid stdlib or ecosystem would be nice. I'd like to be production IRL without needing to rewrite the world
k
@Tony Worm Common Lisp has a huge ecosystem, but it can be hard to navigate. Often there's a choice of five libraries that seem to do the same thing, and figuring out which one is best for you can be challenging. Racket as a smaller but also more legible ecosystem. If it's good enough for do depends on your application. Same for Clojure, with the particularity that you also have easy access to the complete Java ecosystem, if you are willing to "think Java" for interfacing.
g
Why are you asking specifically about Lisp, instead of something more modern? Lisp is a tree-oriented assembler. That’s why I love it. Currently, my 2 favourite tools are Lispworks (for power and debugging) and Ohm-JS with Ohm-Editor (for draping multiple paradigms/syntaxes over powerful baubles). IMO, creativity and engineering are very deep, different topics with many subdivisions, each.
g
i like languages that take risks and go weird, so my favorite lisps are • picolisp (FEXPRs, integrated database, only 3 data types) • newLISP (unique scoping (dynamic and lexical), fexprs, lots of really weird choices) • Red/REBOL (we can argue if they’re lisps or merely inspired by lisp, but the absolute wildest model i’ve ever seen for scoping, program execution, metaprogramming)
b
It's not one that I've used (though I've used Erlang and Elixir), but Lisp Flavoured Erlang (LFE) is an interesting entry into Lisps.