Conversation
Edited 16 days ago

ugh okay I give up on learning Common Lisp. it’s just… extremely not a language for me

I’m going to try Scheme next, and then maybe Clojure if I don’t like Scheme. and if I don’t like Clojure then I’ll try Janet. and if I don’t like any of them then I’m going to conclude that the only good thing about Lisps are the S-expressions and the metaprogramming

2
0
7
Common Lisp rant - DO NOT OPEN if you like Common Lisp
Show content

putting this behind a CW because I have Feelings™ about this language holy shit

this may genuinely be the single most dogshit programming language I have ever tried. the only reason I don’t consider it an esolang is because it was created with a straight face

imagine if, back in the 1970’s when nobody had any idea what constituted a good programming language, 20 different Lisp languages all made terrible design decisions separately - and then those 20 Lisp languages were frankensteined together into a wildly inconsistent dumpster fire of a language. that’s Common Lisp. without exaggerating, I have genuinely had an easier time writing FORTH code than Common Lisp code

this language has four different ways to check for equality (not even counting the type-specific ones) and none of them behave sanely. the Common Lisp equivalent of switch/case only works reliably on one data type. there is no sane way to create a variable, set a variable, do anything with a variable. in fact as far as I can tell Common Lisp has no sane way to do anything whatsoever

Common Lisp, despite being a functional language, treats functions in a fucking insane way where they have their own separate namespace and have to be looked up with a special ugly syntax for no goddamn reason at all

this language doesn’t even feel like a language. it feels like a collection of random half-broken functions and macros left lying around by a bunch of prehistoric programmers that were just barely able to duct-tape their code together, and they’re all named esoteric shit like mapcar and caddr

there is no centralized resource for reading about Common Lisp and discovering which of the quintillion functions is going to work for your specific use case - instead there are several random websites that are either half-broken or prehistoric and none of them explain shit unless you’re already an expert on Common Lisp jargon that’s probably older than I am

I just… do not understand how anyone can like this language at all. I don’t even understand how someone can persist through the horrendous process of learning this language and come out the other side wanting to continue using it

1
0
4
Common Lisp rant - DO NOT OPEN if you like Common Lisp
Show content

@kasdeya I want to love lisp but I feel the same way; Common Lisp is held back by a LOT of baggage, not to mention the lack of a sane dependency manager.

Have you looked at chicken scheme yet? I'm planning to try it next time I go on a "new language" kick and I have high hopes for it since it seems to have learned most of the "obvious" lessons from common lisp.

1
0
1
re: Common Lisp rant - DO NOT OPEN if you like Common Lisp
Show content

@nycki ooh I’ve never heard of chicken scheme! I’m guessing it’s a dialect of scheme, or maybe some stuff added on top of scheme?

1
0
0
re: Common Lisp rant - DO NOT OPEN if you like Common Lisp
Show content

@kasdeya from what I've read it's an implementation of scheme that compiles things with gcc so they run natively.

1
0
1
re: Common Lisp rant - DO NOT OPEN if you like Common Lisp
Show content

@nycki woahh that’s so cool! I definitely want to try that at some point

1
0
0

@kasdeya it took me a few tries to get chicken scheme to compile and run a library, so here's my bootstrap script if you want to read or copy it: https://codeberg.org/nupanick/xp-scheme

1
0
1

@nycki woah this does look really complex. thank you! I feel like this is going to save me a headache if/when I do decide to play with chicken scheme

1
0
1

@kasdeya tbh i think it would be exactly as easy as python, if i hadn't decided to mess with manual dependency management :p

1
0
1

@nycki hehe fair! and that’s encouraging to hear as well

1
0
1

@kasdeya y'know i wonder if anyone has written a program yet that wraps chicken scheme's installer in a standard way so it installs to a user directory instead of a system one, just like python's "venv". you could call it "coop"...

1
0
1

@nycki I hope so! that seems like a really good feature for any language to have. I don’t get how so many languages can insist on only having one version of each library installed

0
0
1

@kasdeya I've heard a lot of good things about Racket, especially if you like metaprogramming you should give it a go.

1
0
1

@dregntael ooh omg I forgot about Racket! I might give it a try too tbh. there are so many Lisps to choose from

it sounds like Racket is built on top of Scheme, so what I might do is learn Scheme first and if I like it enough then learn Racket next

0
0
1