[Cuis-dev] Emacs & Smalltalk

Mariano Montone marianomontone at gmail.com
Fri Dec 31 13:44:57 PST 2021


El 31/12/21 a las 16:51, Jacob MacDonald via Cuis-dev escribió:
> 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.

Yes, but in the rest of the system you also get "objects" all the time
too. For example, consider this:

(eq '(hello world) (hello world))

That expression evaluates to nil (false). Two different lists (objects)
are created, and when compared by identity (eq) it returns false.

I know, I know, I'm using a waay too loose meaning of "objects".

> 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.

What you mean? Buffers at programming level, or user interface level?

> Again, my experience in these systems is less, and perhaps it would converge if I spent more time in
> each.

It has certainly converged for me :)

> 
> 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.

Emacs is limited at user interface, but there are some experiments at
moldable development anyway:
https://ag91.github.io/blog/2021/08/22/moldable-emacs-vega-lite-nyxt-and-emacs-towards-sustainable-development/
(I haven't tried them, though).


Mariano


More information about the Cuis-dev mailing list