• jcr@jlai.luFrançais
    12 hours

    GNU Guile is a dialect of Lisp used by quite a few software.

    https://www.gnu.org/software/guile/

    It is the configuration language of the Guix OS, a modern distro (very focused on computer freedom) , also by libraries and software like Gnucash, the GNU Debugger, a GUI toolkit for Gnome also, etc.

    It is not a replacement of C, but can be used like Python.

  • 22 hours

    Don’t think the original LISP is used much anymore, but there’s various dialects like Scheme, Racket and Clojure.

    Some examples where it’s used, off the top of my head:

    • Lilypond for when you need your sheet music to be turing-complete. Uses Scheme.
    • Emacs, for configuring the whole editor. (Has an own dialect, Elisp.)
    • GNU Guix, which uses Scheme for configuring the entire operating system.

    Obviously, you can also use them for general software development. A few years ago, I read of some project that used Clojure for a larger backend service, with the author gushing all over the place.
    Some folks are really passionate about the LISPs, but yeah, not terribly popular in the corporate world…

    • 17 hours

      Guix is such a cool idea, but Nix accomplishes essentially the same thing, and the syntax is much more accessible in a post-JavaScript world. Most programmers nowadays aren’t that familiar with Lisp-like syntax, for better or worse.

      • I don’t hate on any language’s syntax tbh, but the tooling for nix is absolutely miserable compared to similar.

        People hate on yaml a lot, but I can start typing and then press tab and it completes a whole template for whatever k8s objecy I am trying to make. Having to copy from my other project’s shell.nix/whatever into the new one feels miserable in comparison.

      • 12 hours

        I do agree, yeah, although I can certainly also understand LISP fans being annoyed that someone created a custom DSL for something that is adequately solved by the LISPs. I’m also certainly not enamored with the Nix syntax myself, but do find it easier to parse than a million parentheses.

        But yeah, ultimately the complexity of Nix and Guix isn’t in the particular symbols you type out. The complexity comes from them being expression-based (which does make sense for the use-case, but isn’t as familiar as e.g. imperative languages), as well as just having to learn tons of modules for the different things you want to configure…

    • Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp.

      Nice.

  • Years ago (early 2000s) in a product that suffered from poor product management, I worked on a codebase that included some Scheme, and a built-in Scheme interpreter to run it. I always liked the language.I think it might still have a niche in embedded systems and game dev, among other places (I read somewhere that it’s used in satellite software due to being hot reloadable)?