Common Lisp and Emacs have been two niche open source software projects with a loyal group of developers and users. Common Lisp is a programming language that belongs to the Lisp family of languages. Invented in 1958, Lisp is the second oldest programming language still in use today. Lisp is used by computer scientists and developers who specialize in algorithms, symbolic computation and functional programming. Common Lisp is a very popular dialect of Lisp. Scheme, Clojure, Emacs Lisp, etc. are a few other popular dialects of Lisp.
Common Lisp is known for its steep learning curve. Learning Common Lisp involves learning a number of additional skills such as a popular code editor named GNU Emacs, an additional software package named Superior Lisp Interaction Mode for Emacs (SLIME) and many commands and keyboard shortcuts for Emacs and SLIME. Emacs and SLIME together provide an interactive programming experience to Common Lisp programmers. As a result, Common Lisp has a steep learning curve. Time and again, the Lisp community has published tutorials and packages that make the journey of a beginner to Common Lisp easier. Portacle is a noteworthy project in this area. It allows a new Common Lisp programmer to download a software package, install it and get a readymade Common Lisp development environment that contains GNU Emacs, SLIME and a few helpful packages pre-packaged and pre-configured. On 16 December 2020, Susam Pal, an experienced open source developer, published a new solution named Emacs for Common Lisp (Emacs4CL) at https://github.com/susam/emacs4cl to solve the problem of making Common Lisp easier for beginners to learn.
Susam Pal has been an open source software developer since 2006. He has contributed to open source projects like Apache Nutch and Open Source Vulnerability Database (OSVDB) in 2006-2008. Since then, he has authored new open source projects such as MathBin, Uncap and TeXMe which are used by software developers, teachers and students. Susam Pal has also contributed to the Lisp ecosystem in 2018 by enhancing Slimv which is a SLIME-like package for Vim, another popular code editor tool for computer programmers. His work on Slimv improved it to better support macOS and Clojure, another dialect of Lisp.
Emacs4CL is a simpler alternative to Portacle. The project documentation states, “Emacs4CL provides a good middle ground between configuring Emacs manually by installing SLIME, Paredit, etc. yourself with M-x package-install commands and installing Portacle. It promotes a do-it-yourself approach for automating customization of Emacs for Common Lisp programming.” The Emacs4CL package consisting of Emacs Lisp code that turns GNU Emacs into a Common Lisp development environment. Emacs Lisp is a dialect of Lisp used to configure and customize GNU Emacs. Most Emacs Lisp packages have hundreds or thousands of lines of code to add new functionality to Emacs. However Emacs4CL contains only 35 lines of Emacs Lisp code as of December 2020. Someone completely new to Common Lisp and Emacs can take this package, copy it to their system and load GNU Emacs with it. Emacs4CL installs SLIME and a few other packages to set up GNU Emacs for Common Lisp programming. Since Emacs4CL is only 35 lines of code, it is easy for someone new to this ecosystem to read every line of code and understand its inner working, review the list of packages it installs and understand the customizations it adds to GNU Emacs. It can also be changed easily to suit one’s preferences.
When Emacs4CL was announced in the Common Lisp community, it received positive feedback from users. On Hacker News, it was upvoted 80 times with largely positive reviews of the package. One user said, “This is, in my opinion, the best way to introduce people to light Emacs configuration.” On the Reddit Emacs community, it was selected as the “package of the day” on 16 December 2020. Many users found it easy to set up and use. One user said, “The line-by-line explanation is very handy, thank you for that. I find that one of the hard balances with using Emacs is whether to fully understand everything you put into your conf-files or just accepting some degree of copy-paste.”
On the day of announcement of the project, the project page for the package garnered over 100 stars on GitHub, an online platform for open source software creation and distribution. Each star denotes a token of appreciation given by open source developers and users to an open source software project. Emacs4CL is a convenient way for novices to begin learning Common Lisp.