[Cuis-dev] Emacs & Smalltalk

Jacob MacDonald jaccarmac at gmail.com
Fri Dec 31 11:51:04 PST 2021


I'm a heavy user of Emacs, a dabbler in Smalltalk and slightly less of
a dabbler in Lisp generally. I don't have the extension development
experience of Mariano, but I wanted to submit my own opinions for what
they're worth. I find this intersection intensely interesting.

Lisp, Smalltalk, and Forth have appealed to me on aesthetic grounds
for several. Recently, I added APL to that list. Each language
emphasizes a certain material which almost everything is built upon.
In the Forth case, it's the stack; in APL, matrices; in, Smalltalk,
objects and messages; in Lisp I'm not sure precisely what. "Lists" is
one answer, but I think that's too specific. Rather, my experience of
Lisp is working with symbols. "Code-is-data" is a cliche when it comes
to Lisp, but it's true. Lisp and Smalltalk feel particularly similar
as they are both image-oriented. Emacs, in fact, loads an image every
time it starts; The C core is very small and loading the necessary
Lisp code from text would be prohibitively expensive.

> In a way, I consider Lisps to be "object oriented"

I don't disagree, but there's a distinct difference between the
Smalltalk and Lisp worlds. You can give a Lisp an object system easily
enough, but the rest of the environment seems much more symbolic. In
Emacs's case, you get a built-in UI, and are closer to the Smalltalk
model of a running image than you are in a REPL. But Emacs buffers are
not very similar to Smalltalk objects. Again, my experience in these
systems is less, and perhaps it would converge if I spent more time in
each.

My thoughts on this are heavily colored by my quest to find or make
the perfect literate programming environment. On said quest, I
discovered Leo (http://leoeditor.com/), which (at least in default
configuration) feels more like a Smalltalk than Emacs does, albeit
with a much less uniform programming language. I've also had the
Glamorous Toolkit (https://gtoolkit.com/) bookmarked in various forms
forever. Its approach seems somewhat unique to Smalltalk; I can't
imagine it working very well in Emacs.

Jacob.


More information about the Cuis-dev mailing list