Emacs4CL Releases Do-It-Yourself Common Lisp Programming Environment
The last few months have been full of activity
for Common Lisp and Emacs, two venerable software projects with niche open
source communities. Common Lisp is a programming language that belongs to the
Lisp family of languages. Lisp was invented in 1958. It is the second oldest
programming language still in use today. Only Fortran is older, by one year.
Lisp has been hailed as one of the greatest programming languages of all times.
Unlike mainstream programming languages like Java and Python which are used
widely in the IT industry worldwide, Lisp is used by academics and a niche group
of programmers who specialize in algorithms, symbolic computation and
functional programming. It is known for its distinctive use of parentheses and
steep learning curve. Common Lisp is one of the popular dialects of Lisp.
Scheme, Clojure, Emacs Lisp, Racket, etc. are a few other popular dialects of
Lisp.
In the last few months, the Lisp community saw a
new release of Steel Bank Common Lisp, the most popular compiler for Common
Lisp. SBCL version 2.0.11 was released on November 29, 2020. GNU Emacs which is
a very popular editor among Lisp programmers and which itself is written in
Emacs Lisp, another dialect of Lisp, had its version 27.1 released on August
10, 2020. Despite all the activity around Lisp, it has been a particularly
tough programming language for beginners to learn and become proficient at. For
example, beginners to Common Lisp face the hurdle of learning a number of
additional skills that they have to pick up along the way.
While one can learn Python with any text editor
and a terminal, learning Common Lisp requires one to learn a number of
additional skills. One has to learn GNU Emacs, the editor used by most Common
Lisp programmers. One has to learn an additional software package for GNU Emacs
known as SLIME. SLIME, which stands for Superior Lisp Interaction Mode for
Emacs, provides an interactive programming experience to Common Lisp
programmers. It allows the programmer to load and evaluate arbitrary portions
of their code and watch it running without leaving the GNU Emacs editor.
Time and again, the Lisp community has published
tutorials and packages that make the journey of 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 couple
of other helpful packages pre-packaged and pre-configured. On December 16,
2020, Susam Pal, an experienced open source developer, published his own
solution to the problem of making Common Lisp easier to learn for beginners.
Open source involves software for which the
original source code is made freely available and may be redistributed or
modified. The users and other programmers can study how the software works and
modify it to work differently if they so desire. Many open source developers
contribute to open source in their free time as hobby. Like a guitar aficionado
may record a few songs as a hobby and share it with their friends or other
fellow musicians, an open source developer develops software as a hobby and
shares it with the open source community.
Susam Pal has been an open source software
developer since 2006. He has contributed to open source projects like Apache
Nutch, Open Source Vulnerability Database (OSVDB), etc. in 2006-2008. Since
then, he has authored a number of new open source projects such as MathBin,
Uncap, TeXMe, etc. which are used by thousands of software developers, teachers
and students across the world. Susam Pal has also contributed to the Lisp
ecosystem in 2018 by enhancing Slimv which is a SLIME-like package for Vim,
another editor tool for programmers. His contributions improved Slimv to work
better on macOS as well as to better support Clojure, another dialect of Lisp.
When Susam Pal looked at the problem of the
steep learning curve associated with learning Common Lisp, he decided to
provide a simpler alternative to Portacle. He thought that Portacle hides away
the customizations done to GNU Emacs to turn into a Common Lisp development
environment. While this is great for ease of use, it also impedes one's
understanding and knowledge of one's own development environment. To overcome
this problem, Susam Pal published a new project named Emacs4CL.
Emacs4CL, which stands for Emacs for Common
Lisp, is a small Emacs Lisp 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.
What is unique about Emacs4CL is that it 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, load GNU Emacs with it and Emacs4CL
takes care of automatically installing SLIME and a few other packages to set up
GNU Emacs for Common Lisp programming.
The description of Emacs4CL states, "This
repository 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 to automate
customizing 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 how it works, what packages it installs and what
customizations it adds to GNU Emacs. If they don't like something in the code,
they can change it to suit their preferences.
When Emacs4CL was announced in Common Lisp
community, it received overwhelmingly positive feedback. On Hacker News, it was
upvoted 77 times with largely positive reviews of the package. One community
member 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 December 16, 2020. Most users
found it very easy to set up and use Emacs4CL. 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."
The GitHub repository for the package garnered
over 100 stars on the day of announcement. GitHub is an online platform for
open source software creation and distribution. Each star denotes a token of
appreciation awarded by open source developers and users to an open source
software project. With more users taking a liking to Emacs4CL, this might now
become a new way for novices to begin learning Common Lisp.
Reference
Links -----
Emacs4CL is available online here: https://github.com/susam/emacs4cl
Comments
Post a Comment