'lambda was not technically part of the Elisp language until
around 1991 when it was added as a macro, early during the
development of Emacs-19. In Emacs-18, anonymous functions were
written as quoted values of the form:
'(lambda (..ARGS..) ..BODY..)
While the lambda macro has made this quote unnecessary for almost
30 years now, many instances of this practice still occur in Elisp
code, even though it prevents byte-compilation of the body.'
'The old TECO version of Emacs also allowed attaching hooks to
variable changes, but this feature was not provided in Elisp
because Richard Stallman considered it a misfeature, which could
make it difficult to debug the code. Yet this very feature was
finally added to Elisp in 2018 in the form of variable watchers,
though they are ironically mostly meant to be used as debugging
aides.'
'Elisp does not optimize away tail calls. With Scheme being
familiar to many Elisp developers, this is a disappointment for
many. In 1991, Jamie Zawinski added an unbind all instruction to the
Lucid Emacs byte-code engine (which appears in both Emacs and XEmacs
to this day) that was intended to support tail-call optimization,
but never implemented the optimization itself.'
'During the learly years of Emacs, the main complaints from users
about the simple mark&sweep algorithm were the GC pauses. These
were solved very simply in Emacs-19.31 by removing the messages that
indicated when GC was in progress. Since then complaints about the
performance of the GC have been rare.'
'Richard Stallman refused to incorporate XEmacs’s FFI into Emacs
for fear that it would open up a backdoor with which developers
would be able to legally circumvent the GNU General Public License
(GPL) and thus link Emacs’s own code with code that does not abide
by these licensing terms.
After many years of pressure on this issue (not just within the
Emacs project, since this affected several other GNU projects, most
notably GCC), a solution was agreed to, which was to implement an
FFI that would only accept to load libraries that came with a
special symbol attesting that this library is compatible with the
GPL.
As a result, after a very long wait, 2016 finally saw the release of
Emacs-25.1 with an FFI comparable in functionality to that of
XEmacs. So far, we do not know of any publicly available package
which makes use of this new functionality, sadly.'