System Crafters

System Crafters Live! - September 17, 2021

Watch the recordings here:

I crashed the stream midway through by killing OBS by accident. Enjoy :)


The Many Varieties of Emacs

Today we're going to take a look at the many forks and variants of Emacs that have come and gone over the years.

Why? Because Emacs has a colorful history and it might be interesting to see the different directions people have tried to take it.

We're not going to cover every variant!

There are a couple of good sources of information about Emacs variants:

Gavin's video about Neovim and Fennel:

The birthplace: Editing Macros for TECO (1974)

TECO was a line editor in use at MIT while

Gosling Emacs (1981)

Created by James Gosling, also the creator of Java.

GNU Emacs (1985)

You're looking at it :)

Based on Gosling Emacs but with a rewritten Lisp interpreter.

MicroEMACS (1985) / mg (1986)

XEmacs (1992)

Originally called Lucid Emacs but renamed to XEmacs after Lucid Inc went out of business.


History of the fork:

Jamie Zawinski (jwz) is a pretty interesting character:

Brief history:

My misunderstanding of the name when I saw XEmacs was that it somehow meant it was for the X Window System!

SXEmacs (2004)

A fork of XEmacs!

Founding email:

Aquamacs (2007?)

Currently based on Emacs 25, but planned to catch up to 27 or 28 after 3.6:

Aquamacs 3.6 will likely be the last release based on Emacs 25. Beyond 3.6, Aquamacs will be updated to run with a fairly recent version of Emacs 27 or Emacs 28, depending on when the development catches up. The merge to catch up with current Emacs will probably take a while, although there's been a lot of behind-the-scenes work to set the stage for that.

Remacs (2017)

Announcement post: GitHub repo:

Progress report:

Deprecation announcement:

This project isn't maintained anymore. If you are looking for a rust based emacs fork, you can take a look at emacs-ng. However this fork is not about replacing the C code base, but to provide additional features using the rich ecosystem of rust.

Emacs NG (2020)

The goal of this fork is to explore new development approaches. To accomplish this, we aim to maintain an inclusive and innovative environment. The project is not about replacing elisp with a more popular language like Javascript. We just want to make emacs more approachable for people who don't like lisp as much as we do.

Commercial Emacs (2021)

A recent fork that also seems to be geared toward solving the "Emacs development modernization" problem.

So which one should I use?

Just use GNU Emacs unless you've got a good reason to use something else!