1. 37
    1. 10

      It seems that there are some newish Lisps that are heeding the lessons of the latest crop of successful programming languages: they’re focusing on dev experience, tooling, and documentation to a greater degree than many of the earlier generations. I wonder if that seems to be the case to others.

      1. 3

        For someone trying to learn LISPs right now, are there any others from this crop you could share or recommend? I’m enjoying the family of languages, but am feeling almost universally underwhelmed by the development experiences.

        1. 6

          racket has an excellent development experience. I’ve tried and enjoyed clojure and chicken scheme in the past but these days racket is my lisp of choice.

        2. 6

          For the next release of Fennel we’ve been focusing on friendliness: a setup guide, compiler error suggestions, readline completion and bracket matching, simplified installation, and the ability to debug macros by expanding them in the repl.

        3. 4

          can you share what’s your development experiences have been so far with Lisps?

          There are multiple Commercial Lisps ($$$) with excellent IDE support; eg– Lispworks, Allegro etc.,.

          Most open source lisps(and schemes) have integration with Emacs (of course). Some people also use vim for their lisps, though that’s still considered somewhat counter-cultural.

          Clojure has CIDER for emacs, cursive - an intelliJ plugin, light table (no longer developed, AFAIK), and even a VScode plugin.

          Gerbil has something similar to CIDER called treadmill

          1. 2

            Sure! I’ve been mostly working with sbcl CL, Guile Scheme, and Chicken Scheme. I’m very familiar with Emacs, so getting Slime set up was no problem.

            What I’ve struggled with is the path to A) managing dependencies well, i.e., locking (most things I get the sense just always pull the latest version of things?), and B) figuring out a standard path to deployment.

            The issue might just be documentation or steep learning curve, but coming from, say, the first few steps in a language like Rust, where the first steps are:

            1. get rust with rustup
            2. create new project with cargo new
            3. edit some code
            4. build code, copy compiled executable somewhere

            Trying to figure the analogous set of steps in lisps just seems to require learning many tools and making many decisions: e.g., quicklisp vs asdf vs buildapp.

        4. 3

          I’ve had good preliminary experiences with Janet. But I haven’t put it through its paces yet; I want to build a multi module CLI app before I claim victory.

    2. 4

      I looked at Gerbil a while ago, and didn’t get super excited for some reason. Looking at it again, briefly, all I can say is “I wish I had more time to fully digest and play with this! It looks very much like what I’ve been looking for!”

      1. 3

        yes, the new website and documentation is of much higher quality than it’s original avatar. It actually has standard libraries, package manager, build tool etc., that one can use to do “useful things”, not just play with the language.

    3. 4

      Surprising to see that Gerbil works with Nix but not with Guix. What’s the thinking there?

      1. 3

        I would predict it’s no more than a lack of interest. gambit-c is packaged in Guix, so it shouldn’t be difficult to write a package for Gerbil.

        1. 3

          I tried but didn’t get too far. I could try again because I just got off work and I’m bored.

    4. 3

      Gerbil Scheme has some very interesting things out of the box. I like the struct and actor macros they have setup. Also having protobuf support built in is a nice plus.

      1. 1

        Also having protobuf support built in is a nice plus.

        I didn’t look, but are you conflating the builtin protocol / rpc stuff with protobuf, or is the underlying mechanism gRPC?

        1. 1

          No there’s a protobuf module as part of the standard library. https://cons.io/reference/protobuf.html#protobuf-modules - which allows you to parse protobuf syntax. This is separate from any RPC implementation, as indeed you can use protobufs without gRPC.

          1. 1

            Oh nice! I missed this! This is really cool!