These years in Common Lisp: 2023-2024 in review

https://lisp-journey.gitlab.io/blog/these-years-in-common-lisp-2023-2024-in-review/

By trocado at

vtail | 1 comment | 16 hours ago
The most unexpected news to me was that Hacker News, apparently, runs on top of SBCL now, via a secret implementation of Arc in Common Lisp!
Y_Y | 0 comments | 15 hours ago
Ya, when are we going to hear about "Clarc"? Where's the source?
pronoiac | 0 comments | 18 hours ago
I've worked on PAIP, and I think the GitHub.com version - https://github.com/norvig/paip-lisp/ - gets more attention than the GitHub.io version linked here. The GitHub.io version automatically gets updates, I think, but I'm not verifying the Markdown works over there.
superdisk | 1 comment | 20 hours ago
Hey, my little webassembly demo was linked, cool. Nice article!
sorrythanks | 0 comments | 10 hours ago
so was mine!
nesarkvechnep | 4 comments | 20 hours ago
A few cool thing happened! I might give the CLOS course a try! I’m a functional guy but I feel CLOS isn’t your typical object system.
pjmlp | 2 comments | 17 hours ago
Indeed, most successful FP languages have their OOP like approaches.

Another thing all modern Lisps have since the 1980's, is all major data structures, not only lists as many think when discussing Lisp.

ludston | 1 comment | 4 hours ago
Common Lisp isn't a functional programming language to be clear.
pjmlp | 0 comments | 57 minutes ago
It definitely isn't one, when instead of looking at it with the eyes of CS knowledge, people take the mindset whatever Haskell does.

FP predates Haskell by decades.

fovc | 2 comments | 10 hours ago
Having the data structures is nice and all, but using them is kind of painful. They are certainly second class.

Having to use accessor functions or destructuring macros instead of just a period or -> is often annoying too. The lack of syntax has cons as well as pros.

pjmlp | 0 comments | 56 minutes ago
Everything needed is place, there is no second class about using arrays instead of lists.
cenamus | 0 comments | 2 hours ago
I mean you can write a macro that let's you write

(object -> slot)

and transforms it to (slot object)

"->" should be unused

nextos | 1 comment | 14 hours ago
CLOS is great, but CL also supports pure typed FP with https://coalton-lang.github.io

Coalton progress is discussed briefly in the OP: https://lisp-journey.gitlab.io/blog/these-years-in-common-li...

trenchgun | 0 comments | 2 hours ago
Coalton is its own language, just implemented and embedded in CL.
runevault | 0 comments | 15 hours ago
As someone who's dabbled with Scheme, Clojure, and CL long ago and started wanting to get back into CL, I really enjoyed that course as a combination refresher plus deep dive into some topics I didn't really know before (including CLOS).
dartos | 2 comments | 19 hours ago
As a functional fan, CLOS is amazing.
f1shy | 1 comment | 18 hours ago
When I learned CLOS it was the first time OOP started making sense for me.
asplake | 1 comment | 17 hours ago
I've never used CLOS but I loved the metaobject protocol book. So many learnings outside of OOP – it’s a masterclass in API design.
jjtheblunt | 2 comments | 17 hours ago
What’s the metaobject protocol book?
pjmlp | 1 comment | 17 hours ago
jjtheblunt | 0 comments | 17 hours ago
No idea how i missed that; thank you.
f1shy | 0 comments | 16 hours ago
codr7 | 0 comments | 13 hours ago
My main takeaway was multi-methods, they didn't really click for me before I started seriously digging into CLOS. I wish more languages supported them/played around with similar ideas.
Onavo | 1 comment | 10 hours ago
Everybody forgets about SICL. It's one of the few new CL implementations that's not proprietary or copyleft.

https://github.com/robert-strandh/SICL

KingMob | 0 comments | 3 hours ago
I wonder how often people encountering it assume it's a typo of SICP?
waynenilsen | 4 comments | 17 hours ago
Is there a web framework that is reasonably popular/supported?
aidenn0 | 0 comments | 11 hours ago
What do you expect from a web framework? That means different things to different people. I don't really like frameworks, so I used a web-server abstraction layer named "clack."

Radiance[0] is a more traditional web-framework, with interfaces for backend-storage, web-servers, templating, authentication &c.

Hunchentoot gives you basic route definitions out-of-the-box (bring your own database), and for something more full-featured there is CLOG[1] and Reblocks[2]

0: https://shirakumo.github.io/radiance

1: https://github.com/rabbibotton/clog

2: https://40ants.com/reblocks/

runevault | 0 comments | 15 hours ago
Might be worth checking out this[1], one of the sites linked from awesome-cl that teaches setting up webdev. And looks like it uses Hunchentoot which is what I've always seen every time I looked into backend webdev in CL

[1]: https://web-apps-in-lisp.github.io/

silcoon | 0 comments | 10 hours ago
Caveman2 is a good framework used with lack and clack. There are tutorials on the web.
tempodox | 0 comments | 13 hours ago
-__---____-ZXyw | 0 comments | 20 hours ago
A complete treasure trove, wonderful!
osmano807 | 1 comment | 13 hours ago
I really like this, as from an outsider it seems that CL doesn't have a community and the few packages it has are more like building blocks for customizing and implementing you required functionality rather than packaged black boxes. With all those new languages, it appears that the value proposition of CL is dwindling, static checking feels primitive, macros are easily attainable now, and live runtime image manipulation misses the point on the world of short lived containers.
reikonomusha | 0 comments | 12 hours ago
CL has Coalton, which is the implementation of a static type system beyond Haskell 95. Full multiparameter type classes, functional dependencies, some persistent data structures, type-oriented optimization (including specialization and monomorphization). All integrated and native to CL without external tools.

Live image manipulation isn't quite as useful as it once was for runtime program deployment. But it's still a differentiating feature for incremental and interactive development—before you compile binaries to deploy. Tools like Jupyter notebooks don't come close for actual (especially professional) software development.