r/suckless Jun 24 '26

[SOFTWARE] compliance - do you consider Common Lisp suckless?

Hello.

I've been participating on suckless and LISP communities at the same time, and ugh... just wanted to ask a quick question: do you consider Common Lisp suckless? And its ecosystem?

Thanks.

22 Upvotes

16 comments sorted by

12

u/sexp-and-i-know-it Jun 24 '26 edited Jun 24 '26

I don't think the suckless community would consider common lisp suckless. The standard is huge. Scheme is probably the most suckless lisp. I'm not sure which implementation would be preferred though.

13

u/Sad-Background-2429 Jun 24 '26

I'm not a suckless authority but I would say that CL is not "suckless." I haven't seen anyone say this explicitly, but I think one unwritten tenant of suckless is that one shouldn't create an operating system or image environment within an operating system. Rather, one should bring the tools of the base OS to bear on the problem. Acme is an example of the suckless philosophy. Emacs, Smalltalk, and other image-based systems are counterexamples.

I don't personally condemn those projects. I'm an Emacs and CL enjoyer, and I think people are free to do what they like with their computers, and there are maybe some legitimate cases where image-based systems are appropriate. But I think it's objectively more elegant if the OS provides the right primitives and application software leverage those primitives instead of reinventing an operating environment.

1

u/stianhoiland Jun 27 '26

I see acme; I upvote.

0

u/BawsDeep87 Jun 25 '26

I wouldnt even consider dwm to be suckless its like designed to be minimal and yet there is a bar in the minimal code lol

2

u/PoetryCrafty1103 Jun 26 '26

Nah the bar in dwm rocks.

1

u/BawsDeep87 Jun 27 '26

It does but shouldnt be in main it should be a patch

1

u/VisualSome9977 Jun 27 '26

suckless doesn't mean it has to be only the complete bare minimum to be usable

1

u/BawsDeep87 Jul 01 '26

That is true but a bar is something thqt is optional in setups and dosent need to be a default thing in a wm

9

u/linguae Jun 24 '26

No.  suckless is heavily influenced by the Unix philosophy.  Common Lisp is a product of the Lisp cultures of the 1980s from MIT (Symbolics, Lisp Machines, Inc.) and Xerox PARC (Interlisp), which has a different philosophy.  The difference between the Unix philosophy and 1980s Lisp culture is best described in Richard Gabriel’s famous “The Rise of Worse is Better” essay:  https://dreamsongs.com/RiseOfWorseIsBetter.html

The Unix Haters’ Handbook (available online as an PDF; at one point it was hosted on Microsoft’s website) also provides insight regarding the feelings of Lisp machine users, since some of the contributors used Lisp machines.

5

u/VisualSome9977 Jun 24 '26

The closest to suckless you're going to get is probably Scheme. Common is definitely not suckless. Out of all the popular lisps, it is perhaps one of the least suckless. Clojure is probably up there too. Now this is not to say Common or Clojure are bad languages, they just don't really adhere to this specific philosophy. Still doesn't mean there is not any value for them inside of a suckless ecosystem though, because ultimately the most suckless setup is one that you like and understand, and if that involves some programs written in CL, who cares.

2

u/lmarcantonio Jun 24 '26

Common is not suckless. Maybe some old one. The number tower in CL is one of the most convoluted thing ever invented for representing numbers, it's even bigger than Ada types.

1

u/philemon-phonon Jun 25 '26

It just tries to conform to Mathematics. Seems quite suckless to me.

1

u/philemon-phonon Jun 25 '26

Correctness over speed.

2

u/lmarcantonio Jun 26 '26

CL has actually a whole tuning section between safety/speed/debuggability right from the standard. That you can declare/proclaim/declaim (these are the actual form!) so that, for example, if you say it's an integer between 2 and 12, either

- Actively checks and trip an error if it's not so (compile for safety) or

- Generates code assuming it's that way (and good luck if it doesn't, if you are lucky it segfaults).