3 ms·
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
by abbefaria27 2mo ago
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.
- GeorgeTirebiter 2mo agoI suggest Practical Common Lisp by Seibel https://gigamonkeys.com/book/ 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.
- Capricorn2481 2mo ago> CL lets you build real apps, for real. No toys. This has value. As opposed to other languages where you don't build real apps? I don't think anyone was arguing you can't make real apps in CL
- herewulf 2mo agoNeither was he. Clearly pointing out that CL is also a language that can build real apps, not just academic exercises.
- deleted 2mo ago[deleted]
- samus 2mo agoCommon 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.
- WorldMaker 2mo agoYeah, one of my learnings that took a bit is that as much fun as learning the classic lispisms like car/cdr/cadr/cadar/caadr/etc was, with their long history and particular "early punchcards typing efficiency" at some point it is useful to learn the newer sides of the language that could afford entire-words and cool modern DSLs like loop. My push into Common Lisp was a current revision of a classic AI textbook that mixed up usage of nearly the complete history of lisp because some of the examples presumably dated to the 1960s/1970s with moderate adjustments to make sure that they still compiled in SBCL or the like, so it was a natural lesson from that textbook. Maybe not the best way to learn Common Lisp, but that was an interesting semester for me. (I and the few other people in the class that semester decided to learn Lisp by choice for the class and I think I was the only one to also decide "I'll do every assignment with implementation language choice in Common Lisp this semester", which was most of my classes, just to keep grad school interesting.)
- nobleach 2mo agoCL 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?