logoalt Hacker News

abbefaria27today at 3:48 AM4 repliesview on HN

I spent quite a while trying to learn Common Lisp and I really wanted to like it, but I’m not sure I’d recommend it. The first problem is finding good learning materials, as most are out of print. On the language side people complain about the parens, which turns out is no big deal. There’s a lot of other weird or needlessly tricky stuff though. The function names are convoluted (e.g. there’s map, but also mapc, mapcan, mapl, maplist). Image based development was interesting, but you might waste an hour debugging because your image diverged from the actual code. Building an actual executable is more complicated than you’d expect, and there’s a lot of magic with packages. There’s some elegance there if you squint, but other lisps are probably better.


Replies

GeorgeTirebitertoday at 4:13 AM

I suggest Practical Common Lisp by Seibel https://gigamonkeys.com/book/

I now generate ALL of my hobby projects in CL (SBCL on windows). I tell the LLM to 'over-comment' the code, so I get to learn as I read the output. It has been glorious. I generally use the web browser on an unused port on localhost for user IO (beautiful pages), and the app just hooks to Hunchentoot to serve.

Any 'real' programming language (meaning, one that is truly general purpose: numeric stacks, Web front and back ends, system code, utilities, etc) will always have some cruft. In CL, at least you can understand why some cruft exists. And you get used to it, because it's not like e.g. C where there are some very dark corners indeed. Check out Peter's book!

CL lets you build real apps, for real. No toys. This has value.

nobleachtoday at 2:46 PM

CL was recommended to me here. I had only played with Scheme over the years (SICP and Little Schemer - which, I used to recommend to every engineer that answered to me). I quickly bought Practical Common Lisp in hardcover (used). The language has a LOT to love. But it's caused me to go back and revisit Scheme(s). I put down my CL book to look at The Scheme Programming language and Chez Scheme. Going through all of this without an LLM has restored some joy. But I can understand reluctance to use this unless I could assemble a team with a ton of knowledge. Prompting for Lisp sounds like fun. But not having the deep understanding means I'd be blindly accepting its suggestions. I can't say what Lisp would be better. Clojure maybe?

samustoday at 8:05 AM

Common Lisp is unfortunately a merge of multiple competing Lisps from the time period, much like Unix (SysV and BSD stuff). It was probably reasoned that a messy, imperfect standard is better than no standard or a restricted standard that is useless without proprietary extensions and requires constant revisions by a standing committee. There are good reasons to deviate from it and come up with a cleaner Lisp, but people better learn all the lessons Common Lisp has to offer before they do so.