unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Emacs is very special regarding UIs
@ 2020-09-08 15:35 Mario Lang
  2020-09-08 16:43 ` T.V Raman
  2020-09-10 15:19 ` Lars Brinkhoff
  0 siblings, 2 replies; 11+ messages in thread
From: Mario Lang @ 2020-09-08 15:35 UTC (permalink / raw)
  To: emacs-devel

Hi.

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

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.

-- 
CYa,
  ⡍⠁⠗⠊⠕



^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-09-15  8:24 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-09-08 15:35 Emacs is very special regarding UIs Mario Lang
2020-09-08 16:43 ` T.V Raman
2020-09-10 15:19 ` Lars Brinkhoff
2020-09-10 18:24   ` T.V Raman
2020-09-10 18:50     ` Lars Brinkhoff
2020-09-11  4:18       ` Richard Stallman
2020-09-10 19:36     ` andres.ramirez
2020-09-10 19:49       ` T.V Raman
2020-09-10 19:54         ` Lars Brinkhoff
2020-09-10 21:01           ` andrés ramírez
2020-09-15  8:24   ` Mario Lang

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).