In the last months there were several hundreds of messages in
emacs-devel in threads with names like "A proposal for a friendlier
Emacs", "How to make Emacs popular again", and "Interactive guide for
new users". On the one hand I am absolutely sure that eev is very
good answer to all these themes; on the other hand I know that eev is
based on some design decisions that offend most people used to modern,
"user-friendly" interfaces - and I feel that at this moment mentions
to eev in those discussions in emacs-devel would not be welcome.
In this talk I will start by presenting very quickly the main "killer
features" of eev - namely:
1. Elisp hyperlinks,
2. interactive tutorials that can be navigated with just three keys,
3. non-invasiveness - people can easily turn eev on for only five
minutes each week, play with it a bit, and then turn it off,
4. high discoverability factor,
5. a way to create "hyperlinks to here",
6. hyperlinks to specific points in PDF documents and video files -
i.e., to specific pages, strings, and timemarks,
7. a way to control shell-like programs ("eepitch"), and
8. an Elisp tutorial,
and after that I will present the design decisions behind eev, in two
parts:
1. eev is a very thin layer above Emacs-the-Lisp-environment; it is
as simple as possible, but in the sense of "simple" that was used
in Forth, and that is not very familiar today.
2. Very often when I am using Emacs - which is my main interface
with the system - I realize that I can automate some task that I
just did by hand twice of thrice; and that I should do that,
because automating that would be both easy and fun. Over the
years I experimented with several ways of automating tasks,
refined some of these ways a lot, and found a certain "best"
style that, again, usually offends people who are accustomed with
the modern ideas of user-friendliness. In this style, used in
most template-based functions in eev, both textual documentation
and error-handling are kept to a minimum. I will show how, and
why, eev makes this style works so well, and how users can create
their own templated functions very quickly - as "5-minute hacks".