Monday 17 June 2024
Coding in Elisp and Common Lisp enhances your skills in both
============================================================
Elisp and Common Lisp are both Lisp dialects.
Elisp is the extension language of Emacs, its design goal was to allow
users to customize Emacs.
Common Lisp is a language specification, a standard. It is a powerful
general-purpose programming language, There are several
implementations of the Comon Lisp standard, both closed source as well
open source.
SBCL (Steel Bank Common Lisp) is an actively developed well known open
source implementation of Common Lisp. The SBCL compiler generates fast
native code according to Wikipedia [2].
CLISP, another opens source Common Lisp implementation. was originally
developed for the Atari ST. It is now part of the GNU Project [3]. The
stable release is 2.49, released in 2010.
Both SBCL and CLISP are available as package for most open source
operating systems.
Learning Lisp
-------------
After retiring in 2022 [4], I set out to learn how to code in Lisp. I
read some books, PDFs, and web pages before starting to code in Elisp,
followed by some work in SBCL.
One of the things I build was a so-called static site builder. First,
I build one in Elisp, and used that for some time to generate my
website [5]. One of my first SBCL projects was again building
a static site builder from this website. This SBCL program
is still used to generate my website.
Emacs package
-------------
At the end of 2023 I started working on a Emacs package, to be
distributed as an ELPA package. Philip Kaludercic helped me along the
way, very patiently guided me [6]. This was a great learning experience.
This reaffirmed Elisp's usefulness and capabilities and I build some
more personal projects in Elisp, like an application to create my
invoices.
Playing with CLISP
------------------
Inspired by the Spring Lisp Game Jam 2024 [7] and some discussions on
the Fediverse, I installed CLISP in a FreeBSD jail and started
playing with it. I wanted to do something with CLISP and ncurses.
This was too late to take part in the Lisp Game Jam, but it
turned out to be a great source of learning opportunities [8].
Last week I started again to create a static site builder, now in
CLISP. I started from scratch, and I guess that currently I am at
about 30%. When I look at the code that I write now, I can clearly see
a lot of progress, compared to my previous work.
Coding in Elisp and Common Lisp enhances your skills in both
------------------------------------------------------------
I am completely convinced that coding in Elisp and Common Lisp
improves your abilities in both. Although Elisp and Common Lisp are
two distinct beasts, the manner of thinking is the same, and
experiences in one are valuable in the other.
And, most important, it really is a lot of fun to do!
Happy Lisping!
[1]:
https://en.wikipedia.org/wiki/Steel_Bank_Common_Lisp
[2]:
https://en.wikipedia.org/wiki/Common_Lisp
[3]:
https://www.gnu.org/software/clisp/
[4]:
gopher://box.matto.nl/0/emptycalendar.txt
[5]:
http://box.matto.nl
[6]:
gopher://box.matto.nl/0/my-first-gnu-elpa-package.txt
[7]:
https://itch.io/jam/spring-lisp-game-jam-2024
[8]:
gopher://box.matto.nl/0/getting-the-terminal-size-in-clisp-on-freebsd.txt
Last edited: $Date: 2024/06/17 19:43:44 $