[Cuis-dev] Emacs & Smalltalk

Mariano Montone marianomontone at gmail.com
Fri Dec 31 07:03:54 PST 2021


Hello Hernan,

I'm an Emacs user and have developed several extensions for it.

>From my point of view Emacs "is a Smalltalk". With that I mean that it
is a live language + graphical environment. In Emacs, the "graphics"
part is more limited than in Smalltalk (text oriented plus basic widgets
and tricks), but as in Smalltalk you have:

- A dynamic language, Emacs Lisp. I think there's some misconception
about Lisps being "functional" but that's not the case (a functional api
is favoured, but that's up to the programmer, you can easily mutate
things, same as in ST). In a way, I consider Lisps to be "object
oriented" as you program passing references to things with identity
around. Emacs Lisp is not perfect, Common Lisp is better, but it is
still a Lisp.  As in Smalltalk, you can evaluate, print and inspect
code. Also, a debugger pops up when an error occurs, and you can inspect
and navigate from the debugger, again very similar to ST debugger.
Emacs Lisp comes with a powerful object system too, but it is optional,
not message passing, but multiple inheritance + generic functions.

- All the code is available, and can be changed and evaluated, live and
from within Emacs. Source code is in files, but that's an
"implementation detail". You program by browsing to functions, changing
them, and evaluating and inspecting the results, live. Image-based
development. The equivalent of the Smalltalk browser.

- Emacs provides tools (commands) for looking for functions and commands
by name and documentation (equivalent of Smalltalk's message finder).

- There's a culture of documenting everything in Emacs, both using
docstrings and via info manuals; they all can be navigated from Emacs.

So, in the end, to me Emacs and Smalltalk (I would include Common Lisp
here btw), share the same spirit. Development in Emacs feels like
developing in Smalltalk (image based development and tools).

Also, Emacs users like Emacs because of the level of integration that
can be achieved. Any "application" can be combined with any other
implementing some functions/commands; it's all objects and functions.
Same as in Smalltalk.

As a Smalltalk fan, you have lots of similarities and things to like
about Emacs.

Cheers,

Mariano

El 30/12/21 a las 20:44, Hernan Wilkinson via Cuis-dev escribió:
> Hi,
>  I've never used Emacs, I just run it some times and did not even have
> time to read the manual, etc., but after seeing this video: "Emacs and
> Montessori Philosophy" (https://emacsconf.org/2021/talks/montessori/
> <https://emacsconf.org/2021/talks/montessori/>) and knowing that emacs
> runs on lisp and that you can modify emacs from emacs using lisp, I
> could not avoid relating it with Smalltalk...
>  Does anybody have experience with Emacs? Is there something you can say
> about Emacs & Smalltalk?
> 
>  Thanks!
>  Hernan.
> 



More information about the Cuis-dev mailing list