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

* Re: Emacs is very special regarding UIs
  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
  1 sibling, 0 replies; 11+ messages in thread
From: T.V Raman @ 2020-09-08 16:43 UTC (permalink / raw)
  To: Mario Lang; +Cc: emacs-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=gb18030, Size: 4387 bytes --]

Mario Lang <mlang@blind.guru> writes:

well said.
Returning to chess.el, Mario wrote a Braille interface --
a year ago I added the audio-formatted extension using the same library
from John that Mario used -- and what is nice is that you can use all 3
user-interface modalities, or any one of them and it's entirely
transparent as to what you use.

A lot of baggage gets applied today when folks talk about
"Accessibility", but to me the touch-stone of a truly Accessible system
is one where you dont have to ask what interaction modality  someone
else is using e.g. witness email, where the  persons participating in a
conversation never need ask "Did the person I am talking to use Braille,
speech, or something else", similarly, someone who has a hearing
impairment can send you email without you ever needing to know that he
cant hear you.

--Raman 

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

-- 
7©4 Id: kg:/m/0285kf1  •0Ü8



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

* Re: Emacs is very special regarding UIs
  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-15  8:24   ` Mario Lang
  1 sibling, 2 replies; 11+ messages in thread
From: Lars Brinkhoff @ 2020-09-10 15:19 UTC (permalink / raw)
  To: emacs-devel

Mario Lang wrote:
> Emacs works with graphical toolkits on all major platforms, but also
> offers a almost-feature-complete text interface.

Emacs is a manifestation of the ITS user interfaces.  They all relied on
text because that's all that was available back then.  They also used
control characters, Altmode/Escape/Meta, and prefix arguments.

> I am seeing Emacs as a platform to write "apps" in Emacs Lisp.

In this sense, Emacs is a Lisp machine.  Not surprisingly, those came
from the same place as ITS: the MIT AI Lab.




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

* Re: Emacs is very special regarding UIs
  2020-09-10 15:19 ` Lars Brinkhoff
@ 2020-09-10 18:24   ` T.V Raman
  2020-09-10 18:50     ` Lars Brinkhoff
  2020-09-10 19:36     ` andres.ramirez
  2020-09-15  8:24   ` Mario Lang
  1 sibling, 2 replies; 11+ messages in thread
From: T.V Raman @ 2020-09-10 18:24 UTC (permalink / raw)
  To: Lars Brinkhoff; +Cc: emacs-devel

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset=gb18030, Size: 1076 bytes --]

Lars Brinkhoff <lars@nocrew.org> writes:


The assertion that it's so because all they had then was text is
seriously short-changing and even somewhat insulting to the thought that
has likely gone into Emacs' design --- folks like RMS can likely speak
to that more than I can.

But Emacs does an outstanding job of separating content from
presentation, has an embedded lisp machine, and enables that lisp
machine to manipulate all information/content that flows through Emacs.


>> Emacs works with graphical toolkits on all major platforms, but also
>> offers a almost-feature-complete text interface.
>
> Emacs is a manifestation of the ITS user interfaces.  They all relied on
> text because that's all that was available back then.  They also used
> control characters, Altmode/Escape/Meta, and prefix arguments.
>
>> I am seeing Emacs as a platform to write "apps" in Emacs Lisp.
>
> In this sense, Emacs is a Lisp machine.  Not surprisingly, those came
> from the same place as ITS: the MIT AI Lab.
>
>

-- 
7©4 Id: kg:/m/0285kf1  •0Ü8



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

* Re: Emacs is very special regarding UIs
  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
  1 sibling, 1 reply; 11+ messages in thread
From: Lars Brinkhoff @ 2020-09-10 18:50 UTC (permalink / raw)
  To: T.V Raman; +Cc: emacs-devel

T.V Raman wrote:
> Lars Brinkhoff wrote:
>> Emacs is a manifestation of the ITS user interfaces.  They all relied
>> on text because that's all that was available back then.
> The assertion that it's so because all they had then was text is
> seriously short-changing and even somewhat insulting to the thought
> that has likely gone into Emacs' design --- folks like RMS can likely
> speak to that more than I can.

Those user interfaces were invented in the 1960s, and mostly used
teletypes for interaction.



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

* Re: Emacs is very special regarding UIs
  2020-09-10 18:24   ` T.V Raman
  2020-09-10 18:50     ` Lars Brinkhoff
@ 2020-09-10 19:36     ` andres.ramirez
  2020-09-10 19:49       ` T.V Raman
  1 sibling, 1 reply; 11+ messages in thread
From: andres.ramirez @ 2020-09-10 19:36 UTC (permalink / raw)
  To: T.V Raman; +Cc: Lars Brinkhoff, emacs-devel

Hi. TV.

>>>>> "T" == T V Raman <raman@google.com> writes:

[...]


    T> But Emacs does an outstanding job of separating content from presentation, has an embedded
    T> lisp machine, and enables that lisp machine to manipulate all information/content that flows
    T> through Emacs.

That is the separation of Policy and Mechanism according to:
"The Art of Unix programming"

BR



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

* Re: Emacs is very special regarding UIs
  2020-09-10 19:36     ` andres.ramirez
@ 2020-09-10 19:49       ` T.V Raman
  2020-09-10 19:54         ` Lars Brinkhoff
  0 siblings, 1 reply; 11+ messages in thread
From: T.V Raman @ 2020-09-10 19:49 UTC (permalink / raw)
  To: rrandresf; +Cc: raman, lars, emacs-devel

Correct. And that separation shouldn't just get dismissed as they did
it because they had nothing better than text.andres.ramirez writes:
 > Hi. TV.
 > 
 > >>>>> "T" == T V Raman <raman@google.com> writes:
 > 
 > [...]
 > 
 > 
 >     T> But Emacs does an outstanding job of separating content from presentation, has an embedded
 >     T> lisp machine, and enables that lisp machine to manipulate all information/content that flows
 >     T> through Emacs.
 > 
 > That is the separation of Policy and Mechanism according to:
 > "The Art of Unix programming"
 > 
 > BR

-- 
♉Id: kg:/m/0285kf1  🦮♉

--
♉Id: kg:/m/0285kf1  🦮♉



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

* Re: Emacs is very special regarding UIs
  2020-09-10 19:49       ` T.V Raman
@ 2020-09-10 19:54         ` Lars Brinkhoff
  2020-09-10 21:01           ` andrés ramírez
  0 siblings, 1 reply; 11+ messages in thread
From: Lars Brinkhoff @ 2020-09-10 19:54 UTC (permalink / raw)
  To: T.V Raman; +Cc: rrandresf, emacs-devel

T.V Raman wrote:
> Correct. And that separation shouldn't just get dismissed as they did
> it because they had nothing better than text.

No one dismissed it.



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

* Re: Emacs is very special regarding UIs
  2020-09-10 19:54         ` Lars Brinkhoff
@ 2020-09-10 21:01           ` andrés ramírez
  0 siblings, 0 replies; 11+ messages in thread
From: andrés ramírez @ 2020-09-10 21:01 UTC (permalink / raw)
  To: Lars Brinkhoff; +Cc: emacs-devel, T.V Raman

Hi Lars. Hi. Mario.

First of All. I need to say thanks Mario for this article. I was pendant
on my todo list giving +1 to your article.

>>>>> "Lars" == Lars Brinkhoff <lars@nocrew.org> writes:

    Lars> No one dismissed it.

Having clarified. It. :) .

I should add that my personal taste is emacs on the tty. I just open an
x-toolkit-frame (which by the way is lucid), just when dealing with
multimedia files.

BR



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

* Re: Emacs is very special regarding UIs
  2020-09-10 18:50     ` Lars Brinkhoff
@ 2020-09-11  4:18       ` Richard Stallman
  0 siblings, 0 replies; 11+ messages in thread
From: Richard Stallman @ 2020-09-11  4:18 UTC (permalink / raw)
  To: Lars Brinkhoff; +Cc: emacs-devel, raman

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

We developed Emacs and similar editors in the 1970s
but we still had only text.

-- 
Dr Richard Stallman
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)





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

* Re: Emacs is very special regarding UIs
  2020-09-10 15:19 ` Lars Brinkhoff
  2020-09-10 18:24   ` T.V Raman
@ 2020-09-15  8:24   ` Mario Lang
  1 sibling, 0 replies; 11+ messages in thread
From: Mario Lang @ 2020-09-15  8:24 UTC (permalink / raw)
  To: emacs-devel

Lars Brinkhoff <lars@nocrew.org> writes:

> Mario Lang wrote:
>> Emacs works with graphical toolkits on all major platforms, but also
>> offers a almost-feature-complete text interface.
>
> Emacs is a manifestation of the ITS user interfaces.  They all relied on
> text because that's all that was available back then.  They also used
> control characters, Altmode/Escape/Meta, and prefix arguments.

That is the history, yes.  However, what I was trying to highlight is
that it actually payed off to insist on keeping compatibility with the
text mode interface even after graphical toolkits were established
already.  I guess I am talking about the 90s here.

>> I am seeing Emacs as a platform to write "apps" in Emacs Lisp.
>
> In this sense, Emacs is a Lisp machine.  Not surprisingly, those came
> from the same place as ITS: the MIT AI Lab.

Yes.  A Lisp Machine with several compatible user interface modalities.
Which is just amazingly helpful to people like me.
I guess this is a case of "accidental accessibility" since many
developers seem to not be aware that they have created a perfect platform
for people who are typically forgotten about these days.
Thanks for that.  Emacs is a shining beacon in a dark age of canvases
and decorative user interface design.

BTW, things like EWW make a big difference for me.
It is such a time saver being able to invoke the occasional
link in a mail or rss article and not having to switch to an external
browser.  I am hoping the xwidget webview will not hurt development of
EWW too much.  Because the webview actually breaks the compatibility
mentioned in this thread.  It is only available for toolkit users.

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