It's Friday, so I though it would be nice to have a social topic here. So here's a bunch of questions to stir up some discussions:
- Which Lisp do you most often program in?
- What does your Lisp development environment or IDE look like?
- How did you get started with Lisp? Did you follow any particular articles to set up your environment or begin learning Lisp?
-
Common Lisp. I basically only use SBCL. It has good introspection, restarts, and source analysis for debugging. I mainly write theoretical research code that doesn't depend on calling into the JVM or C++ code. I do try to keep my code portable, so I will check with other implementations from time to time.
-
I use GNU Emacs and Sly (though I am thinking of trying Lem). I don't use any structural editing outside of Emacs' built in electric-pair-mode, show-paren-mode, and expand-region (not built in). I don't even use rainbow delimiters anymore. I get all my Common Lisp dependencies from GNU Guix. It is very pleasant to use and is rolling release. In addition to Guix, I use cl-guix-utils, which adds live loading of dependencies quicklisp style.
-
I first learned Racket then Emacs Lisp (both in college). Emacs lisp was more pleasant due to its interactive and self documenting nature. I wanted to write real programs; Common Lisp looked and felt more like Emacs Lisp (but better). I started learning Common Lisp primarily with the "Lisp for the web" series. I was hooked. I learned more mainly through reading the hyperspec, studying other people source code and reading articles. I didn't read any of the famous books until I recently read "Practical Common Lisp". I already knew pretty much everything it had to offer. I wish I had read it sooner.
GNU Guix: https://guix.gnu.org/
cl-guix-utils: https://git.sr.ht/~charje/cl-guix-utils
"Lisp for the web": https://adamtornhill.com/articles/lispweb.htm
"Practical Common Lisp": https://gigamonkeys.com/book/
-
-
Guile Scheme -- lots of useful features built-in and a nice package ecosystem almost as good as Racket, it runs the Guix package manager which is the best package manager ever invented. Extremely well documented. Has an active user community and is actively maintained. Uses its own unique virtual machine that runs quite fast with JIT compilation. Stack traces are a little confusing in my opinion, but otherwise is easier to use than other Schemes I have tried. Plus it is an official GNU project, so great for software privacy and freedom.
-
Emacs with the "Geiser" and "Paredit" packages. Geiser is not as nice as SLIME with Common Lisp, but it works. The documentation browser is very good: it can navigate Info-doc, Man pages, and web pages all within the editor.
-
I started with Haskell, which is a functional language in the ML family, not a Lisp. One day I met a well-known Scheme enthusiast named Byrd (co-author of "The Reasoned Schemer" textbook and the "Minikanren" declarative logic programming system), and he almost convinced me that Scheme was better than Haskell. I was already an Emacs user and knew enough about Emacs Lisp that switching from Haskell to Scheme was very easy, and Guile's documentation made it even easier. I still use Haskell and love it a lot, but lately I have just been focusing on getting good at Scheme.
-
ℹ I don't consider myself a Lisp expert nor a professional.
- Nowadays, I mostly use elisp to customise Emacs and write custom functions. Also some lines of CL using SBCL here & there to try out things.
- I've never used anything but Emacs for Lisp (lisp-interaction-mode and slime).
- I got my first Lisp book (I wanted to try out something different) when I got into the MSc in AI back in the university days. Turned out I wasn't really interested in AI and dropped out but the love for/fascination w/ Lisp never left 🙂