Comment

Comment by nerdponx

The problem with CL is not that it does everything, but that it does everything with a mish-mash of inconsistent idioms, thick layers of jargon, and implementation-specific behavior in places where you wouldn't really expect, leading to a combination of implementation lock-in and dependence on 3rd-party libraries that is stronger than one might expect at first.

My (least) favorite example:

  (nth needle haystack)
  (aref haystack needle)
Ugh! But then again, what other language provides both AREF and ROW-MAJOR-AREF?

And of course CL tooling is just weird if you aren't used to it.

Quicklisp is amazing! But it has no CLI and doesn't use HTTPS for package downloads.

Swank and Slynk is amazing! But clients other than Slime and Sly are second-class citizens.

SBCL can generate a compiled binary, cool! But the routine is called "save-lisp-and-die".

ASDF expects you to either put all of your Common Lisp projects in a single directory, or hard-code project locations in a config file. Does Go still do that too?

Ancient alien technology for sure, but at least moderately damaged upon crash-landing. Ironically, the only piece of CL tooling that feels mostly not-weird is called Roswell.

Of course all of this stuff is completely free-as-in-beer and developed almost entirely by volunteers in their spare time. Hard to criticize: they built it, and I didn't. But there is definitely a cumulative oddball feeling to it.

parent nerdponx 2 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton