Settings

Theme

Ask HN: Which Lisp? (Lowercase)

2 points by hawkeyedan a year ago · 6 comments · 2 min read


(Sorry that this retreads past threads … but it’s a topic that easily could have different answers over time.)

I’m working on a blog post titled “which lisp” (lower case) and am soliciting responses to hopefully include in full within the post.

What do I mean by “a lisp”?

I means a lispy language.

1. S-expressions on the surface (not as a substrate or implementation detail) 2. Homoiconicity 3. Fully specified across implementations at the level of day to day use

Decision points In no particular order, here are some questions I think are relevant.

- Practicality for everyday to day generic scripting - Practicality for Web apps - Practicality for data analysis / munging tasks - Language ergonomics - Special sauce

What about Schemes?

For these purposes, each Scheme is considered a different “lisp” since in common use so many non-trivial packages/libraries/projects target a specific Scheme. Ease of learning/using other Schemes can be considered part of the special sauce, though.

What about Common Lisp?

While different CL implementations have special features, CL is fully specified and few significant packages/libraries function only on a single implementation.

What about lisp-over-another-runtime?

As long as the surface language has S-expressions and is homoiconic … it’s “a lisp” for these purposes.

_xiaz a year ago

Yet more spam from me:

Clojure - thread-last: https://clojure.org/guides/threading_macros

CL - The loop macro: https://www.youtube.com/watch?v=i4tmF_1nZng

Guile - Ideal for SICP: https://github.com/zv/SICP-guile?tab=readme-ov-file#language

_xiaz a year ago

Given CL and Guile (never heard of Janet), with a focus on practicality, I suggest CL.

I go into more detail in the posts I linked. While a few months old they still hold up.

https://port19.xyz/tech/other-lisps/ https://port19.xyz/tech/clojure/

I suggest you be careful with non-repl-based lisps. Noone I talked to in Racket circles seriously uses the repl superpowers you'll get used to in CL, Clojure or Guile.

Beyond the beauties of homoiconicity, that repl workflow, programming at runtime, has been my favourite part

gus_massa a year ago

I use Racket. It has a lot of standard libraries and also packages that you can download.

Using only the standard librares I made a few projects:

* Open a GUI to select a file, untargzip it, parse one of the expanded files with xlm, edit the xml and targzip everything again. (This is a common pattern. Now many applications save the data as a xml compressed with tar and gzip.) I made an executable and send it to my coworkers so they can just run it.

* A bot to reply emails, with IMAP and SMPT. It reads the email, scrap some data from one of my webpages and send it in the reply. the bot can only only handle the easy questions, but in my case it's like the 90% so it it saves me a lot of time.

* I used the webserver so the T.A. in my part of the university can fill their preferences about the courses they want to teach. It handles like 500 users in an old computer without problems.

hawkeyedanOP a year ago

A little more context… This is a real decision I’m making with Common Lisp, Guile and Janet as my current leading options.

But … I feel like documenting all the thoughts in an essay/blog form may be helpful to others.

(And my post history will show I’ve gone down this path before. Trying again. Since last time I gave up due to the paradox of choice.)

  • _xiaz a year ago

    With Lisp the paradox of choice is especially unwarranted since moving between lisps is even easier than say moving between dynamically typed scripting langauges.

    Learning Guile for 4 weeks and then do CL for 2 leaves you no worse than doing CL for 5.

    If you care about practical first and foremost, CL and Clojure both beat Guile by a landslide.

    Guile is marginally prettier and more fun.

    Clojure has perhaps the strongest FP emphasis and you may view the JVM more favourably than I do. Rich Hickeys talks are a gem whether you pick Clojure or not.

  • fulafel a year ago

    Pick the real world programming task that you'd want to tackle and experiment, there's a point of diminishing returns from just reading stuff. You can also then get better advice on forums based on questions or problems that you run into.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection