• 0 Posts
  • 2 Comments
Joined 10 months ago
cake
Cake day: November 24th, 2023

help-circle
  • Well, for whatever reason, I’d never really learned loop, then I read Paul Graham’s ANSI Common Lisp where he says “for [reasons] the use of loop cannot be recommended,” and henceforth have used that as an excuse for myself never to learn it up to this day.

    “What is so good about lisp” – well first of all I’m not sure exactly what or whom you’re replying to here - I don’t see where my original comment mentioned anything about Lisp being “so good” or whatever kind of straw man you are attempting to assemble here. But since you’ve asked: if you were to press me to justify my choice of Common Lisp for gendl, I would say I first came for the legacy codebases. I happened to know of legacy industrial codebases (still relying on a Gendl-like system from the 1980s) where i felt we could add value. Switching them to an entirely different underlying language infrastructure would not, in my estimation, have added value (at least not within my capabilities). So that’s what brought me in. But then i stayed with CL for:

    1. ANSI standardization and stability. I regularly fire up 20 year old code and it just works. Customer applications in the KBE categories tend to run for decades; they need to know that they’ll be able to upgrade their OSs and implementations without massively breaking their applications.
    2. Strong open-source library support. I can see where the loosely coordinated world of CL open-source could be daunting for a newbie individual coming in and trying to use raw Lisp. As a vendor of a CL-based system, I consider part of our value added to be the consistent, vetted, and configured Quicklisp/asdf snapshot we ship with our releases. Overall, I think the nature of the CL open-source library ecosystem provides a good balance with the rigid, frozen-in-time ANSI standard for the base language. And it’s a small enough community that you can actually get to know folks.
    3. Strong vendor support (Franz Inc in our case, who are about to celebrate their 40th anniversary).

    Ths above items are justifications, but I think what really keeps me working in CL is more the subjective feeling of the whole environment — the interactive redefinition and test cycle, image-based development where you can fire up an image with everything loaded and “ready to go,” built-in debuggers, profilers, macroexpanders, introspectors, editor servers so you can slime into your running server to test, profile, debug, and hotpatch in-place. Stuff like that.