[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Emacs is very special regarding UIs

From: Mario Lang
Subject: Emacs is very special regarding UIs
Date: Tue, 08 Sep 2020 17:35:17 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1.50 (gnu/linux)


To me, there is one thing that Emacs implements that no other program I
know of manages to do.  I seldomly hear this property mentioned by
anyone else, so even if it scratches OT-ness, I wanted to get this out
to people to ponder over, or even be proud of.

Emacs is the only serious program I know which manages to be truely user
interface independent, in addition to being platform-independent.
Emacs works with graphical toolkits on all major platforms,
but also offers a almost-feature-complete text interface.
With Emacspeak, it even has a (non-mainline) audio interface (speech
synthesis as a UI).
And I am not really talking about Emacs as just an editor.
I am seeing Emacs as a platform to write "apps" in Emacs Lisp.
These "apps" (we usually call 'em special modes or just interactive functions),
if constructed according to established Emacs Lisp APIs,
will be useable across all major platforms *and* user interface modalities!

To give a concrete example to highlight what I mean, consider chess.el.
John Wiegley originally wrote chess.el with different types of board
styles.  A graphical board which makes use of bitmaps, and actually two
text mode board for use with emacs -nw.  He did that because as an Emacs
Lisp developer, one naturally thinks about how to best support emacs -nw
more or less automatically.  At the time, I was looking for a text mode
user interface to play chess against engines and online.  I was able to
make use of all of johnw's hard work in a way quite different to how I
suppose he is usually running Emacs.  We didn't need to "port" anything
over to a text interface.  Everything was already there any basically
working as expected.  I was able to start contributing right away.  No
digital divide!

Due to the way how you usually render special modes
(text properties or overlays for metadata) it is usually pretty simple
for Raman to come up with a few functions to also provide a very nicely
tailor made audio interface for modes he stumbles across.

This is something extremely special in the world of accessible software.
I would be surprised if someone could name another "UI platform" that
manages to pull this of in a similar way.
The scriptability of Emacs combined with its insistence on keeping
some sort of compatibility between graphical and text mode interfaces is
something no one else does.

As a blind user, I can write a special mode which does something
specific, say, implement an IRC client.  Almost all my work can
instantaneously be used by sighted people using their graphical
toolkit.  True, a face change here and there can improve things, but 95%
of the code can be reused between totally different user interface

This is amazing.  Thanks for being so stubborn during the period of
transition to graphical toolkits and insist on keeping a compatible text
mode interface.  This has led to a truely unique outcome.

I feel like me being a non-native speaker of English is a bit of a
hinderence to explaining how very special that "feature" of Emacs is.
To most of you, I guess it will not feel so important, since you likely
dont know how it feels to constantly fight UI problems.  Having
discovered Emacs, and settled on learning how to extend it, was one of
the most important things in my computer life.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]