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
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
@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.
@kasdeya from what I've read it's an implementation of scheme that compiles things with gcc so they run natively.
@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
@kasdeya tbh i think it would be exactly as easy as python, if i hadn't decided to mess with manual dependency management :p
@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"...
@kasdeya I've heard a lot of good things about Racket, especially if you like metaprogramming you should give it a go.
@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