Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / October 2007

Tip: Looking for answers? Try searching our database.

The Modernization of Emacs

Thread view: 
Xah Lee - 17 Jun 2007 16:13 GMT
[this post is a excerpt from
The Modernization of Emacs, Xah Lee, 2006-04 at
http://xahlee.org/emacs/modernization.html
]

The Modernization of Emacs

----------------------------------------
THE PROBLEM

Emacs is a great editor. It is perhaps the most powerful and most
versatile text editor. And, besides text editing, it also serves as a
email application, newsgroup application, ftp application, irc
application, web browser, shell interface, file management
application, programable calculator, calendar and personal info
management application, lisp language system, among other things.
These seemingly wild functionalities are employed in production daily
by a significant number of programers around the world. Some calls
emacs as a Operating System as a joke. (Technically it does not
qualify because a OS implies management of hardware.).

If emacs is such a great and powerful text editor why almost nobody
knows about it? Vast majority of people who need to write will be more
than happy to use editors other than emacs. Ask a Microsoft Windows
user. She'll be more than happy to use Microsoft Word↗. If he doesn't
have MS Word, he'll use NotePad↗ or WordPad↗. If he is a programer,
most will be more than happy to use any of other graphical editors on
the Windows platform or any of the Integrated development
environment↗. Same is true on other operating systems, and new editors
spring up here and there even though they don't have as much power or
flexibility as emacs. For example, there are NEdit, JEdit, Eclipse,
Xcode↗ , or the various associated with languages or third party
language software, such as Visual Basic or Borland C++.

Many reasons can be made out of this. For example, emacs is not
bundled on popular operating systems such as Windows or Mac, which are
used by some 99% of computer users worldwide. Windows and Mac both
have simple text editors bundled that will satisfy majority of
computer users, which are non-professional computer users. (NotePad
and WordPad on Windows, TextEdit↗ on Mac) For the few professional
computer users, a majority will need a easy to use, yet powerful
editor that also does styled text, formatting, and sundry light
publishing needs such as table layout, simple line graphics drawing,
embedded images, math formulas. They will choose and adopt Microsoft
Word for their needs. The tiny percentage that might be interested in
emacs, are programers. Even among professional programers, a majority
shy away from emacs.

A major difficulty among programers who do not use or like emacs, is
that emacs's user interface is rather esoteric, involving arcane
terminologies and keystrokes. This is in sharp contrast to the
thousands of software applications used today, where their User
Interface are similar and familiar to today's computer users.

----------------------------------------
THE COMMON USER INTERFACE

The following is a excerpt from the Wikipedia article on Common User
Access↗:

CUA was a detailed specification and set strict rules about how
applications should look and function. Its aim was in part to bring
about harmony between MS-DOS applications, which until then had
implemented totally different user interfaces.

Examples:

   * In WordPerfect, the command to open a file was [F7], [3].

   * In Lotus 1-2-3, a file was opened with [/] (to open the menus),
[W] (for Workspace), [R] (for Retrieve).

   * In Microsoft Word, a file was opened with [Esc] (to open the
menus), [T] (for Transfer), [L] (for Load).

   * In WordStar, it was [Ctrl]+[K]+[O].

   * In Emacs, a file was opened with [Ctrl]+[x] followed by [Ctrl]+
[f] (for find-file).

Some programs used [Esc] to cancel an action, some used it to complete
one; WordPerfect used it to repeat a character. Some programs used
[End] to go to the end of a line, some used it to complete filling in
a form. [F1] was often help but in WordPerfect that was [F3]. [Ins]
sometimes toggled between overtype and inserting characters, but some
programs used it for “paste”.

Thus, every program had to be learned individually and its complete
user interface memorized. It was a sign of expertise to have learned
the UIs of dozens of applications, since a novice user facing a new
program would find their existing knowledge of a similar application
absolutely no use whatsoever.

----------------------------------------
SIMPLE CHANGES

In the following, i describe some critical changes that are also very
easy to fix in emacs. If emacs officially adopt these changes, i think
it will make a lot people, at least programers, like emacs and choose
emacs as their text editor.

   * Change the keyboard shortcut of Copy & Paste to ctrl-c and ctrl-
v as to be the same with all modern applications.

   * Change the undo behavior so that there is a Undo and Redo, as
the same with all modern applications.

   * Get rid of the *scratch* buffer.

   * Change the terminology of “kill” to “cut”, and “yank” to
“paste”.

   * Change the terminology of Meta key to Alt.

   * Make longlines-mode the default editor behavior for any file.

Things emacs should do now, even though it eventually will do.

   * When opening a HTML document, automatically provide highlighting
of HTML, CSS, and Javascript codes. Similarly for other multi-language
files such as PHP, JSP, et al. This behavior must be automatic without
requiring user to customize emacs.

Possible Documentation Change Proposals

   * Reduce the use of the word “buffer” in the emacs documentation.
Call it “opened file” or “unsaved document”.

   * Switch the terminology of Window and Frame so it is more
standard. That is, Emacs's “Window” should be called Panes or Frames.
While Emacs's “Frame” should be termed Window.

   * Change the terminology of keybinding to “keyboard shortcut” in
emacs documentation. Use the term keybinding or binding only in a
technical context, such as in elisp documentation.

 Xah
 xah@xahlee.org
http://xahlee.org/
Thomas F. Burdick - 17 Jun 2007 17:36 GMT
For the love of dogs, Xah, try to keep up.  Aquamacs is an Emacs
distribution that, which not there yet, is at least half way between
"classic" Emacs and a modern Mac UI.  You sound ridiculous, like if
you were complaining about Windows not being really graphical, based
on experience with Windows-386 in the era when 95 was already around.

> [this post is a excerpt from
> The Modernization of Emacs, Xah Lee, 2006-04 athttp://xahlee.org/emacs/modernization.html
[quoted text clipped - 134 lines]
>   x...@xahlee.org
> ∑http://xahlee.org/
Twisted - 17 Jun 2007 21:58 GMT
[snip]

Whoa. Xah posted something I agree with wholeheartedly. Imagine that.
Philipp Leitner - 17 Jun 2007 23:46 GMT
Ever came to your mind that there are people (programmers and others)
who will not use emacs for their day-to-day work simply because they
have tools that suit them better for the work they have to do (Eclipse
for me, as an example)?

Except from that: I personally don't feel that your rantings are
interesting enough to qualify for a 4 groups X-post ... this sort of
article goes well into a blog, but not so much on programmers
newsgroups (which are used for Q&A imho).
George Sakkis - 18 Jun 2007 02:59 GMT
> Ever came to your mind that there are people (programmers and others)
> who will not use emacs for their day-to-day work simply because they
[quoted text clipped - 5 lines]
> article goes well into a blog, but not so much on programmers
> newsgroups (which are used for Q&A imho).

You must be new here. Xah is a well-known self-important troll,
crossposting his mostly off-topic and/or controversial ramblings and
showing off his ignorance in a provocative condescending manner. Don't
waste resources by replying, he rarely follows up anyway.
cmr.Pent@gmail.com - 18 Jun 2007 07:58 GMT
> In the following, i describe some critical changes that are also very
> easy to fix in emacs. If emacs officially adopt these changes, i think
[quoted text clipped - 3 lines]
>     * Change the keyboard shortcut of Copy & Paste to ctrl-c and ctrl-
> v as to be the same with all modern applications.

There is a CUA-mode.

>     * Get rid of the *scratch* buffer.

I agree that it should be off by default. I hope that only a minority
of emacs users are emacs developers ;-)

>     * Change the terminology of "kill" to "cut", and "yank" to
> "paste".

In my emacs 21 in menu it says just that.

>     * Change the terminology of Meta key to Alt.

I guess emacs is not for PC only...

>     * Make longlines-mode the default editor behavior for any file.

This is doubtful, but I agree that all modes (LaTeX etc) should at
least work correctly with longlines mode.

>     * When opening a HTML document, automatically provide highlighting
> of HTML, CSS, and Javascript codes. Similarly for other multi-language
> files such as PHP, JSP, et al. This behavior must be automatic without
> requiring user to customize emacs.

For me it opens R files with proper highlighting out-of-the-box -_-;

>     * Reduce the use of the word "buffer" in the emacs documentation.
> Call it "opened file" or "unsaved document".

As far as I understand the concept of buffer is much much wider than
of "unsaved document" or "file". Should we call dired buffer as
"unsaved document"?

>   Xah
>   x...@xahlee.org
>  http://xahlee.org/
alexandru.lz@gmail.com - 18 Jun 2007 10:57 GMT
> >     * Reduce the use of the word "buffer" in the emacs documentation.
> > Call it "opened file" or "unsaved document".
>
> As far as I understand the concept of buffer is much much wider than
> of "unsaved document" or "file". Should we call dired buffer as
> "unsaved document"?

It is much wider, which is why it was used in the first place.

Considering most of Xah's article, I think an animated paperclip
(maybe in ASCII art) should be the top priority for emacs developers.
This would be an important step in modernizing emacs.

Leaving this aside, I'm also taking a wild guess that some *nices (not
just Linux distros, but also *BSD, Solaris etc.) could well provide a
binary package of emacs compiled with its GTK UI, besides those
they're already providing (nox and the ugly one for X). It's a fair
assumption to consider that not anyone has GTK, but it's common enough
to provide an alternative to that stumpy Xlib-based (I think :-\) UI
that's default in just about every binary package around. It's not
just that it looks ugly, it's also somewhat awkward at times.
Joel J. Adamson - 18 Jun 2007 15:35 GMT
> ----------------------------------------
> SIMPLE CHANGES
[quoted text clipped - 3 lines]
> it will make a lot people, at least programers, like emacs and choose
> emacs as their text editor.

The problem with this line of thinking is that it aims to make Emacs
appeal to people -- I think it is rather the other way around.
Certain people appeal to Emacs:  certain kinds of people like Emacs
and the way it is set up, and they change it to suit their needs.

Among your changes, I found none that made sense to me, a person who
used Unix before Windows became widely used.  For people like me, who
always preferred Unix, changes like changing "buffer" to "opened file"
seem inefficient and unnecessary.

Sorry -- this totally falls flat.  It won't make Emacs more widely
used.  The only thing that will make Emacs more widely used is making
people aware of it; as soon as I became aware of Emacs (from reading
Wikipedia, ironically), I began using it and I knew I was stuck with
it.  It's not even important for the survival of Emacs that it be more
widely used -- it was never important in the last thirty years of its
history, why should it be important now that Microsoft Word is so
widely used?

Joel

Signature

Joel J. Adamson
Biostatistician
Pediatric Psychopharmacology Research Unit
Massachusetts General Hospital
Boston, MA  02114
(617) 643-1432
(303) 880-3109

Hal Vaughan - 18 Jun 2007 19:13 GMT
>> ----------------------------------------
>> SIMPLE CHANGES
[quoted text clipped - 8 lines]
> Certain people appeal to Emacs:  certain kinds of people like Emacs
> and the way it is set up, and they change it to suit their needs.

I worked for years as a special ed teacher and I learned that people have
different learning styles.  It's not just learning, but it's perceiving and
working as well.  Some people will always do better with a command line and
some will always do better with a GUI with point-and-click.  That doesn't
mean one is smarter than the other or one is a true geek and one isn't.
It's just the way our brains are wired.

Emacs appeals to the type of personality that is often a hard core
programmer.  It works for those that want to customize everything and have
full control over their environment AND do well with a command line rather
than a more visual and graphic environment.  For those, emacs is probably
the best program for them.  

Some people prefer to drive a Miata and some prefer a Dodge Ram.  One isn't
better than the other, they're just different.  Trying to make a Dodge Ram
look like a convertible so Miata lovers will want to use it is a waste.
It'll never be a Miata and the more people try to make it adaptable so it
can be one, the more they ruin what's special about it.

The more emacs is adapted for the non-technical, the more it'll lose what
makes it special and a good fit for programmers.

> Among your changes, I found none that made sense to me, a person who
> used Unix before Windows became widely used.  For people like me, who
> always preferred Unix, changes like changing "buffer" to "opened file"
> seem inefficient and unnecessary.

It seems to me that is the kind of person emacs is written for.  What will
it gain if a large number of non-technical people start using it in
a "non-emacs" mode?

> Sorry -- this totally falls flat.  It won't make Emacs more widely
> used.  The only thing that will make Emacs more widely used is making
[quoted text clipped - 4 lines]
> history, why should it be important now that Microsoft Word is so
> widely used?

Let those who need Word use it.  To try to change emacs into something it
isn't is ignoring what makes it special.

Hal
Galen Boyer - 19 Jun 2007 01:45 GMT
> The problem with this line of thinking is that it aims to make Emacs
> appeal to people -- I think it is rather the other way around.
> Certain people appeal to Emacs:  certain kinds of people like Emacs
> and the way it is set up, and they change it to suit their needs.

Emacs will always be for people who like to be able to constantly fiddle
with their environments which continues to increase the efficiency with
which they perform their tasks, increasing the # of tasks they can
perform and therefore increasing the # of peers it would take to equal
the amount of work they alone perform.  Most other environments will be
for those just trying to perform their tasks and staying even with the
average proficiency chart.

Signature

Galen Boyer

Harry George - 19 Jun 2007 06:14 GMT
> > The problem with this line of thinking is that it aims to make Emacs
> > appeal to people -- I think it is rather the other way around.
[quoted text clipped - 8 lines]
> for those just trying to perform their tasks and staying even with the
> average proficiency chart.

"constantly fiddle"

I've used emacs since the 1980's.  I've used it for text, xml, html
markups, programming in many languages, and natural languages.  In a
few cases I've "fiddled" with the environment.  I've even written a
"mode".  But it has never been "constantly".  One does the setup, and
then uses it day after day, year after year... until you have a new
need, in which case you re-tune your settings and then go back to
work.

"trying to perform their tasks...average proficiency"

Aye, there's the rub.  As Fred Brooks and others repeatedly point out,
there is little room in programming for average proficiency.

I don't mind folks using any editor they want, as long as they are
proficient.  In those cases, I have no problem doing Extreme
Programming with them -- code a bit, save, the other guy codes a bit.
But when someone uses vi and then forgets how to do block moves, or
uses eclipse and bogs down the session, or uses MS Notepad and can't
enforce language-specific indents, I get frustrated.

Signature

Harry George
PLM Engineering Architecture

David Kastrup - 19 Jun 2007 14:53 GMT
> I don't mind folks using any editor they want, as long as they are
> proficient.  In those cases, I have no problem doing Extreme
> Programming with them -- code a bit, save, the other guy codes a
> bit.  But when someone uses vi and then forgets how to do block
> moves, or uses eclipse and bogs down the session, or uses MS Notepad
> and can't enforce language-specific indents, I get frustrated.

My favorite killing offence is /* vi:set ts=4: */.

Signature

David Kastrup

Matthias Buelow - 19 Jun 2007 15:30 GMT
> My favorite killing offence is /* vi:set ts=4: */.

This is apparently the default setting in many of the so-called "IDE"s
today.. I think it's another unwelcome poison gift from the ignorant
M$FT world (I suspect some primitive Windoze IDE which couldn't
differentiate between TAB and indent probably offered the programmer
changing the tabwidth as the only method for changing indentation, and
then this method got stuck...)

F'up to comp.emacs.
Giorgos Keramidas - 20 Jun 2007 01:35 GMT
>> I don't mind folks using any editor they want, as long as they are
>> proficient.  In those cases, I have no problem doing Extreme
[quoted text clipped - 4 lines]
>
> My favorite killing offence is /* vi:set ts=4: */.

Apparently, we share at least part of that.  My own favorite killing
offense is '/* vi:set ts=anything: */' :)
Ed - 19 Jun 2007 20:21 GMT
On 19 Juni, 07:14, Harry George

> I've used emacs since the 1980's.
...
> --
> Harry George
> PLM Engineering Architecture

I've asked this question on an emacs forum and got no response, so I
presume the answer is no, but I see, Harry, that you're a veteran, so
maybe you've seen things few others have.

Have you ever seen an, "Extract method," function for emacs? Whereby
you highlight some lines of code, press a key, and the code is whisked
into its own method, with the appropriate method invocation left in
its place. If you could post a link, that'd be just champion.

.ed

--

www.EdmundKirwan.com - Home of The Fractal Class Composition
Lew - 19 Jun 2007 21:20 GMT
> On 19 Juni, 07:14, Harry George
>> I've used emacs since the 1980's.
[quoted text clipped - 11 lines]
> into its own method, with the appropriate method invocation left in
> its place. If you could post a link, that'd be just champion.

I googled about a bit and came up with
<http://bicyclerepair.sourceforge.net/>
linked from
<http://en.wikipedia.org/wiki/Refactoring>

I also looked at emacs's own "Info" pages and found this tidbit:

> `M-x c-beginning-of-defun'
> `M-x c-end-of-defun'
[quoted text clipped - 19 lines]
>      like `M-a' except that it moves in the other direction
>      (`c-end-of-statement').

You could, and I believe others have, create a macro to encapsulate these
actions with setting the mark and copying the region.

Here is a very promising-looking one that I found for C(**) and Java:
<http://xref-tech.com/speller/main.html>

GWMF.

Signature

Lew

Bent C Dalager - 19 Jun 2007 23:02 GMT
>Have you ever seen an, "Extract method," function for emacs? Whereby
>you highlight some lines of code, press a key, and the code is whisked
>into its own method, with the appropriate method invocation left in
>its place. If you could post a link, that'd be just champion.

XRefactory has refactorization support for Java that plugs into Emacs,
but unfortunately only up to Java 1.4.

http://www.xref-tech.com/xrefactory-java/main.html

Cheers
    Bent D
Signature

Bent Dalager - bcd@pvv.org - http://www.pvv.org/~bcd
                                   powered by emacs

spamfilteraccount@gmail.com - 20 Jun 2007 06:59 GMT
> Have you ever seen an, "Extractmethod," function for emacs? Whereby
> you highlight some lines of code, press a key, and the code is whisked
> into its ownmethod, with the appropriatemethodinvocation left in
> its place. If you could post a link, that'd be just champion.

xrefactory does this. I tried it once. It's a bit pricey , though.
Ed - 20 Jun 2007 20:45 GMT
Thanks, all, for the answers.

But, Lew: GWMF?

- Gardner Winter Music Festival? (You have to love the black'n'white
photo on the right at: http://www.gwmf.org/)

- Generalized Whitening-Matched Filter?

- http://www.gwmf.com/  ?

- http://www.gwmf.de/host/ ?

- http://www.goatworld.com/gwmf.shtml  ????

.ed

--

www.EdmundKirwan.com - Home of The Fractal Class Composition
Lew - 20 Jun 2007 21:41 GMT
> Thanks, all, for the answers.
>
[quoted text clipped - 10 lines]
>
> - http://www.goatworld.com/gwmf.shtml  ????

Google was my friend.

Signature

Lew

Twisted - 20 Jun 2007 21:04 GMT
On Jun 20, 1:59 am, "spamfilteracco...@gmail.com"
<spamfilteracco...@gmail.com> wrote:

> > Have you ever seen an, "Extractmethod," function for emacs? Whereby
> > you highlight some lines of code, press a key, and the code is whisked
> > into its ownmethod, with the appropriatemethodinvocation left in
> > its place. If you could post a link, that'd be just champion.
>
> xrefactory does this. I tried it once. It's a bit pricey , though.

Someone is charging money for an emacs addon? Are they nuts? A lot of
people won't touch emacs with a ten foot pole, and emacs is free. How
many would actually pay for something that's useless without emacs?
Especially given the near-certainty that the price is almost pure
profit margin...
Gian Uberto Lauri - 19 Jun 2007 09:36 GMT
>>>>> Long count = 12.19.14.7.8; tzolkin = 7 Lamat; haab = 16 Zotz.
>>>>> I get words from the Allmighty Great Gnus that
>>>>> "GB" == Galen Boyer <galen_boyer@yahoo.com> writes:

GB> Most other environments will be for those just trying to perform
GB> their tasks and staying even with the average proficiency chart.

Alleluja, brother!

(just unleashed the power of the True One Editor surprising the rest
of the workgroup)

Signature

/\           ___
/___/\_|_|\_|__|___Gian Uberto Lauri_____
 //--\| | \|  |   Integralista GNUslamico
\/                 e coltivatore diretto di Software

A Cesare avrei detto di scrivermi a fnvag@rat.vg

John Nagle - 19 Jun 2007 20:05 GMT
>>>>>>"GB" == Galen Boyer <galen_boyer@yahoo.com> writes:
>
> GB> Most other environments will be for those just trying to perform
> GB> their tasks and staying even with the average proficiency chart.

   Oh, please.  The "I'm so l33t" thing.

   I used EMACS back in the LISP era, but really, that approach
is mostly of historical interest at this late date.

                John Nagle
Xah Lee - 19 Jun 2007 18:01 GMT
Here are some Frequently Asked Questions about The Modernization of
Emacs.

They are slightly lengthy, so i've separated each item per post. The
whole article can be found at

http://xahlee.org/emacs/modernization.html
------------

Q: The Terminology “buffer” and “keybinding” is good as they are.

A: The terminology “buffer” or “keybinding”, are technical terms
having to do with software programing. The term “keybinding” refers to
the association of a keystroke with a command in a technical, software
application programing context. That is to say, a programer “bind” a
keystroke to a command in a software application. The term “buffer”
refers to a abstract, temporary area for storing data, in the context
of programing or computer science.

These terms are irrelevant to the users of a software application.

As a user of a text editor, he works with files. The terms “opened
file” or “untitled file” are more appropriate than “buffer”. Since
emacs is also used for many things beside reading files or writing to
files, for example, file management, ftp/sftp, shell, email, irc etc.,
the proper term can be “panel”, “window”, or “work area”.

And, the term “keyboard shortcut” refers to typing of a key-
combination to activate a command. It is also more appropriate than
“binding” or “keybinding”.

Although concepts like “buffer” and “keybinding” are seemingly
interchangeable with “panel” or “keyboard shortcut”, but their
contexts set them apart. This is why in all modern software
application's user documentations, terms like “buffer” or “keybinding”
are not to be seen but “windows, panes, and keyboard shortcuts”.

The reason emacs uses the technical terminologies throughout is
because when emacs started in the 1970s, there really isn't any other
text editors or even software applications. And, Emacs users consists
of solely computer scientists and programers, and there are not many.

Changes in society are always resisted by old timers, but it is also a
main element behind progress. This terminology issue may seem trivial,
but its importance lies in making emacs palpable to the vast number of
people who ever need to use a computer to write.

 Xah
 xah@xahlee.org
http://xahlee.org/
Joel J. Adamson - 19 Jun 2007 18:06 GMT
> Here are some Frequently Asked Questions about The Modernization of
> Emacs.
[quoted text clipped - 16 lines]
>
> These terms are irrelevant to the users of a software application.

Bologna.

Every computer user should see himself as a programmer.

> Changes in society are always resisted by old timers, but it is also a
> main element behind progress. This terminology issue may seem trivial,
> but its importance lies in making emacs palpable to the vast number of
> people who ever need to use a computer to write.

I'm a young-timer.

Joel

Signature

Joel J. Adamson
Biostatistician
Pediatric Psychopharmacology Research Unit
Massachusetts General Hospital
Boston, MA  02114
(617) 643-1432
(303) 880-3109

A webpage of interest:
http://www.gnu.org/philosophy/sylvester-response.html

Giorgos Keramidas - 20 Jun 2007 01:44 GMT
> Here are some Frequently Asked Questions about The Modernization of
> Emacs.
[quoted text clipped - 19 lines]
> As a user of a text editor, he works with files. The terms “opened
> file” or “untitled file” are more appropriate than “buffer”.

No they are not.  See you may have a real *file* on a disk somewhere,
which is called 'opened file' or even 'untitled file'.  Now isn't it
confusing to think in terms of made-up descriptiors, just because the
term 'buffer' seems alien?

Educating the user to avoid confusion in this and other cases of made
up, 'user-friendly' descriptions is not a good enough answer.  If you
can educate the user about this sort of fine distinction between files
stored on a disk somewhere and files which are figments of the
imagination of Emacs, then I can educate them about 'buffer' too and be
done with it all.

The main difference is that I get to do it today, without the need for
multi-thousand-line changes in the source and documentation of Emacs and
its thousands of plugins.
Bjorn Borud - 20 Jun 2007 13:52 GMT
[Giorgos Keramidas <keramida@ceid.upatras.gr>]

| Educating the user to avoid confusion in this and other cases of made
| up, 'user-friendly' descriptions is not a good enough answer.

there are two types of "user friendly".  there's "user friendly" and
then there is "beginner friendly" which is often mislabeled.  the
latter is more important for applications which are to be used
casually.  like utilities you only use once or twice per year -- those
need to be "beginner friendly".

for applications you are likely to use for prolonged periods of time
(like programming, video editing, music production etc), it does not
make sense to optimize for "beginner friendly".  at least not at the
cost of making the application less "user friendly".

applications you spend a lot of time using are worth an investment in
learning how to use them.  what creates friction in an application you
know reasonably well is when common tasks are fiddly.  for instance,
while menus are often good for casual use and lower the initial
threshold for absolute beginners, depending heavily on menu navigation
becomes too fiddly if you are performing a certain task 2-3 times per
minute.  it is not _user_ friendly.

Emacs is rather "user friendly", but not very "beginner friendly".
when I was first confronted with it, the sort of text editors I was
used to were Wordstar and derivatives of it.  I was rather annoyed
that it didn't do what I expected, so I just used a different editor.

a few years later I bemoaned the fact that Emacs was so hard to use
during a conversation with a friend.  he asked me if I had actually
made an effort to learn Emacs, which of course I hadn't.  so I figured
I might as well give it a shot.

following the tutorial that comes with Emacs (and which is referred to
in the startup message) I spent a couple of hours one afternoon
learning the basics.  already the next day I started using Emacs for
programming.  the week after I had progressed to using it as my
newsreader (which I still do to this day) and eventually I started
reading my email in Emacs.  perhaps two months after I had sat down to
learn Emacs I wrote my first Emacs extensions in Emacs Lisp.  mostly
simple stuff to make common programming tasks easier.

I found Emacs to be user friendly, but in a different sense than the,
IMHO faulty definition, "beginner friendly".  Emacs let me, as a user,
do more with less effort and provides a lot less friction than many
other developer tools I've used.  at work I use it extensively, and we
have lots of neat extensions that really save a lot of time.

-Bjørn
Twisted - 20 Jun 2007 21:10 GMT
> I found Emacs to be user friendly, but in a different sense than the,
> IMHO faulty definition, "beginner friendly".  Emacs let me, as a user,
> do more with less effort and provides a lot less friction than many
> other developer tools I've used.  at work I use it extensively, and we
> have lots of neat extensions that really save a lot of time.

Being beginner-friendly doesn't have to be at the expense of power or
expert-user usability.

On the other hand, being actively beginner-hostile leads to nobody
adopting the tool. Then again, if you don't mind being the last
generation that'll ever use it, then I guess you're okay with that. If
it suits its existing users, the rest of us will just continue to use
something else.

I continue to suspect that there's an ulterior motive for making and
keeping certain software actively beginner-hostile; a certain macho
elitism also seen with light aircraft pilots and commented on at
www.asktog.com (exact URL escapes me; sorry).
David Kastrup - 20 Jun 2007 21:35 GMT
> On the other hand, being actively beginner-hostile leads to nobody
> adopting the tool. Then again, if you don't mind being the last
[quoted text clipped - 6 lines]
> elitism also seen with light aircraft pilots and commented on at
> www.asktog.com (exact URL escapes me; sorry).

You are babbling.

Emacs is amazingly beginner-friendly for the power and flexibility it
provides.  You can sit a beginner at an Emacs session and have him
start editing and learning.  You can't do the same, say, with vi or a
clone: the least you need is a vi helpsheet/cheat cup.  With Emacs,
the help sheet is helpful but optional (most people would be eyed
strangely anyway if they kept a cheat barrel around at their
workplace).

Signature

David Kastrup, Kriemhildstr. 15, 44793 Bochum

Twisted - 20 Jun 2007 21:49 GMT
> > On the other hand, being actively beginner-hostile leads to nobody
> > adopting the tool. Then again, if you don't mind being the last
[quoted text clipped - 8 lines]
>
> You are babbling.

No, I am not. You, however, are being gratuitously insulting.

> Emacs is amazingly beginner-friendly for the power and flexibility it
> provides. [snip]

That's a joke, right? I tried it a time or two. Every time it was
rapidly apparent that doing anything non-trivial would require
consulting a cheat sheet. The printed-out kind, since navigating to
the help and back without already having the help displayed and open
to the command reference was also non-trivial.

Four hours of wasted time later, with zero productivity to show for
it, I deleted it. The same thing happened again, so it wasn't a bad
day or a fluke or a one-off or the particular version, either.
Kaldrenon - 20 Jun 2007 22:03 GMT
> > > On the other hand, being actively beginner-hostile leads to nobody
> > > adopting the tool. Then again, if you don't mind being the last
[quoted text clipped - 23 lines]
> it, I deleted it. The same thing happened again, so it wasn't a bad
> day or a fluke or a one-off or the particular version, either.

I agree with you in that emacs is not inherently nor universally
beginner friendly. However, if you are trying to make the claim that
it is impossible to pick it up quickly, then I no longer agree with
you.

I still have a good deal to learn, even of the basics, but I've toyed
with it casually for a little bit (a total of two hours at most, but
almost certainly less) and I already know enough that finding out how
to do anything else IS trivial. It's not a program whose controls
throw themselves at you, exactly, but with a touch of patience and a
genuine interest in learning, it's not too bad.
Twisted - 20 Jun 2007 22:28 GMT
> I still have a good deal to learn, even of the basics, but I've toyed
> with it casually for a little bit (a total of two hours at most, but
> almost certainly less) and I already know enough that finding out how
> to do anything else IS trivial. It's not a program whose controls
> throw themselves at you, exactly, but with a touch of patience and a
> genuine interest in learning, it's not too bad.

I don't know what software you're describing, but it's obviously not
emacs, unless there have been some HUGE changes to (at minimum) the
help and pane-navigation (er, excuse me, "window"-navigation)
controls...

My experiences (with emacs and with a lot of other supposedly-
superior, usually unix-heritage software) put me in mind of an
analogy: fumbling around in a strange house in the dark without a
flashlight, banging into furniture frequently, trying to find a light
switch, but it turns out the switches are all spring-loaded. For some
reason (saving electricity and fighting the war against global
warming?) if you go to start doing anything else the light goes off
again immediately -- so you have to stand there holding the switch,
memorize the contents of the room, and then quickly do whatever you
needed to do before your memory of the room's layout and where things
are fades! Then back to the switch, or trip and fumble your way to a
different room's switch...wash, rinse, repeat...

Nobody would actually design a home (or a workplace) like that in a
trillion years, global warming be damned. So why do people still
sometimes design software like that?

Oh and did I mention that these houses' layouts are also totally
strange, with the living room on the top floor and the kitchen in the
basement, or other things of that nature, so you can't transfer any
knowledge of conventional home designs to aid in your navigation
there...and they are even all different from one another, nevermind
"normal" houses...

BTW, is anyone else finding Google Groups especially ornery of late? I
get all of the following, recurrently:

* I enter one reply in a thread, and it works. Then I go to make a
second reply, and I get a text box like one uses to enter a reply,
except evidently read-only -- I can select text but there is no
blinking cursor.
* The fix seems to be to navigate off the page and back.
Unfortunately, that then pops up some dialog. I think GG is trying to
protect me from losing unsaved changes, except that there are
obviously no unsaved changes to the (read-only!) form for me to lose!
* The "back" button is wonky -- it seems to require hitting back
*twice* to go back *one* page to the previous page of the thread or to
the newsgroup's thread index, if already on the first (or only) page.
* After *that*, "forward" behaves sometimes normally and sometimes as
"forward and then click a reply link on some random post"??
* Submitting a post results in the form disappearing and being
replaced by "The post was entered successfully". Of course, if it
turns out to have NOT been all that successful as evidenced from
refreshing the page or using an external newsserver (I have found one
read-only one suitable for verifying that a posting succeeded and
propagated beyond GG's server), there's no way to get back to the form
to try to resubmit the text, or even to recover it to the clipboard to
paste into a fresh form for a fresh attempt. So far, it's never
actually lied and claimed a posting was successful that wasn't, but
there's a first time for everything, and we all know the track record
for QA in the software industry ... and the way one of the more common
failure modes of software is silent failure, claiming success on
failure, claiming failure on success, or claiming one failure when a
different failure happened! (All the various forms of diagnostics
failure...) I guess I have to pre-emptively copy the form contents to
the clipboard before clicking submit, and preserve the clipboard
contents pending verification, or risk catastrophic data loss, because
GG can't be arsed to make a decent interface, or even to leave well
enough alone and stop constantly changing it.
David Kastrup - 20 Jun 2007 22:37 GMT
>> I still have a good deal to learn, even of the basics, but I've toyed
>> with it casually for a little bit (a total of two hours at most, but
[quoted text clipped - 7 lines]
> help and pane-navigation (er, excuse me, "window"-navigation)
> controls...

So what version are you babbling about?

Signature

David Kastrup, Kriemhildstr. 15, 44793 Bochum

Twisted - 20 Jun 2007 22:47 GMT
> ...spewing...babbling...

I won't dignify your insulting twaddle and random ad-hominem verbiage
with any more responses after this one. Something with actual logical
argumentation to rebut may be another matter of course.

One more GG issue: those stupid star ratings. So potentially
prejudicial. So easy to game, as evidenced by your managing to somehow
vote 82 times(!) against one of my posts in a matter of minutes. So
far I've found a less-impressive method to game them -- it's not hard
to get throwaway accounts elsewhere, send yourself there a gmail
invite, and create many GG accounts. Handy to get around their onerous
posting limits. Handy for stuffing the star-vote ballot boxes with
multiple votes, too, but there's no way I can see to generate 82 of
them that fast by that method, and that much logging in and out in
that short a time using different accounts but from just one IP
address is sure to come up on Google's radar somehow, with
unpredictable but probably bad results. How did you do it? I'm
guessing they stop the link for voting appearing as a usable link on
the page for a) your own posts and b) the ones you've voted for, but
the link's URL still works, so if you use a script to keep fetching
the appropriate URL ...
David Kastrup - 21 Jun 2007 07:48 GMT
>> ...spewing...babbling...
>
[quoted text clipped - 5 lines]
> prejudicial. So easy to game, as evidenced by your managing to somehow
> vote 82 times(!) against one of my posts in a matter of minutes.

It has not occured to you that actually thousands of people read those
postings?  And they are heavily crossposted to boot (redirecting
followup to comp.emacs, I would suggest everybody else do the same).

And you have really nothing worthwhile to contribute.  So if there is
some rating system (I don't use Google Groups so can't tell) in place,
your postings would certainly be good candidates for downrating.

Not that this posting of mine is much better, and actually the
followup-to comp.emacs would indicate that this is about Emacs.
However, you have still not given any information about what, if any,
version of Emacs your very vaguely expressed experiences are supposed
to have come from.

> So far I've found a less-impressive method to game them -- it's not
> hard to get throwaway accounts elsewhere, send yourself there a
> gmail invite, and create many GG accounts.

And you wonder that people don't find it worthwhile reading you...

> Handy to get around their onerous posting limits. Handy for stuffing
> the star-vote ballot boxes with multiple votes, too, but there's no
> way I can see to generate 82 of them that fast by that method, and
> that much logging in and out in that short a time using different
> accounts but from just one IP address is sure to come up on Google's
> radar somehow, with unpredictable but probably bad results.

Uh, is there some monetary compensation for star ratings?  Or what's
the deal?  Really, if somebody can come up with a better group for
followups, feel free to direct there.

> How did you do it? I'm guessing they stop the link for voting
> appearing as a usable link on the page for a) your own posts and b)
> the ones you've voted for, but the link's URL still works, so if you
> use a script to keep fetching the appropriate URL ...

What a crazy obsession.

Signature

David Kastrup

Twisted - 22 Jun 2007 21:20 GMT
> > One more GG issue: those stupid star ratings. So potentially
> > prejudicial. So easy to game, as evidenced by your managing to somehow
> > vote 82 times(!) against one of my posts in a matter of minutes.
>
> It has not occured to you that actually thousands of people read those
> postings?

Yes, but 82 read it and downrate it within seconds of it being posted?
I find that difficult to believe. Also, I'm an optimist by nature. I
find it unlikely that 82 people would all decide to respond nastily
and in such a short span of time, all independently of one another.

I notice also that GG has apparently caught you and stopped letting
your multiple votes be counted as more than one. The same post now
shows a one-star rating by just 3 users. The others that had highly
inflated unique-user counts have also dropped to the low single
digits.

> And you have really nothing worthwhile to contribute.

That isn't for you to decide. If that's your opinion, you're welcome
to it, but I'd be happy if you'd keep such opinions to yourself. You
certainly have no right to insist that it is "the truth" or that
everyone must agree with you.

> your postings would certainly be good candidates for downrating.

This is your conclusion, from the premise that you hold a low opinion
of me? What school of logic did you go to? I recommend you ask them
for your money back.

Remainder of posting ignored. Attempt to make my response disappear
(get misdirected away from comp.lang.java.programmer) neutralized.
Sorry, but if I have a response to make in an unmoderated newsgroup
YOU do not get a veto, and I've seen that trick used a few times
before when someone like you wants to have the last word. You'll just
have to try harder next time -- or give up and decide to play fair.
Miles Bader - 13 Jul 2007 00:10 GMT
> I won't dignify your insulting twaddle and random ad-hominem verbiage
> with any more responses after this one. Something with actual logical
> argumentation to rebut may be another matter of course.

Er, why don't you just answer his question (what version)?  He's asking
for actual information, which will help us understand what you are
(trying) to to say.

If you continue to just make vague and unsupported (and rather hostile)
assertions, without examples, version numbers, or other concrete
information, do you expect anybody will continue listening to you?

-miles
Signature

The secret to creativity is knowing how to hide your sources.
 --Albert Einstein

Twisted - 13 Jul 2007 03:09 GMT
> > I won't dignify your insulting twaddle and random ad-hominem verbiage
> > with any more responses after this one. Something with actual logical
[quoted text clipped - 7 lines]
> assertions, without examples, version numbers, or other concrete
> information, do you expect anybody will continue listening to you?

Some people can't let sleeping dogs lie I guess.

I can't remember the specific version after all these years. It may
have been 18 or 19 point something. As for "concrete information" this
thread is littered with fairly specific anecdotes. I know, I know;
anecdotes aren't really proof of anything. Got any better suggestions?
HCI stuff is a bit slippery to try to hang a rigorous theory and
quantitative facts upon. For most people, a crappy interface isn't
something they can precisely define, but they know it when they see it
(or at least try to use it).
Joel J. Adamson - 21 Jun 2007 15:59 GMT
>> I still have a good deal to learn, even of the basics, but I've toyed
>> with it casually for a little bit (a total of two hours at most, but
[quoted text clipped - 7 lines]
> help and pane-navigation (er, excuse me, "window"-navigation)
> controls...

We're talking about Emacs.  In particular we're referring to

C-h t
C-h i
C-h ?

Or, since Emacs is customizable, for me it would be

<f1> t
<f1> i
<f1> ?

Joel

Signature

Joel J. Adamson
Biostatistician
Pediatric Psychopharmacology Research Unit
Massachusetts General Hospital
Boston, MA  02114
(617) 643-1432
(303) 880-3109

A webpage of interest:
http://www.gnu.org/philosophy/sylvester-response.html

David Kastrup - 21 Jun 2007 16:02 GMT
>>> I still have a good deal to learn, even of the basics, but I've toyed
>>> with it casually for a little bit (a total of two hours at most, but
[quoted text clipped - 19 lines]
> <f1> i
> <f1> ?

Huh?  The latter are available by default on Emacs 22.1.

Signature

David Kastrup

Joel J. Adamson - 21 Jun 2007 18:14 GMT
>> Or, since Emacs is customizable, for me it would be
>>
[quoted text clipped - 3 lines]
>
> Huh?  The latter are available by default on Emacs 22.1.

Interesting, maybe I have a telepathetic connection with the
developers; either that or I just kept using the same .emacs when I
upgraded ;)

(I had to change this when I was using Emacs 21.4, since I started
using C-h for backspace)

Joel

Signature

Joel J. Adamson
Biostatistician
Pediatric Psychopharmacology Research Unit
Massachusetts General Hospital
Boston, MA  02114
(617) 643-1432
(303) 880-3109

A webpage of interest:
http://www.gnu.org/philosophy/sylvester-response.html

Michal Nazarewicz - 22 Jun 2007 13:33 GMT
>> I still have a good deal to learn, even of the basics, but I've toyed
>> with it casually for a little bit (a total of two hours at most, but
[quoted text clipped - 7 lines]
> help and pane-navigation (er, excuse me, "window"-navigation)
> controls...

I don't know about *your* version of Emacs but in *my* version one can
switch windows using mouse.  I think that's pretty easy especially for
beginners who are used to Windows.

There was also a Help menu on menu bar but I disabled menu bar since
keybindings are more convenient for me.

Signature

Best regards,                                         _     _
.o. | Liege of Serenly Enlightened Majesty of      o' \,=./ `o
..o | Computer Science,  Michal "mina86" Nazarewicz   (o o)
ooo +--<mina86*tlen.pl>---<jid:mina86*chrome.pl>--ooO--(_)--Ooo--

Twisted - 20 Jun 2007 22:11 GMT
> > > I continue to suspect that there's an ulterior motive for making and
> > > keeping certain software actively beginner-hostile; a certain macho
[quoted text clipped - 4 lines]
>
> No, I am not. You, however, are being gratuitously insulting.

I have that exact URL now -- http://www.asktog.com/columns/027InterfacesThatKill.html

The most relevant section is towards the bottom of the page.
Curiously, you can jump right to it with a text-find of the word
"girls".
David Kastrup - 20 Jun 2007 22:21 GMT
>> > > I continue to suspect that there's an ulterior motive for making and
>> > > keeping certain software actively beginner-hostile; a certain macho
[quoted text clipped - 7 lines]
> I have that exact URL now --
> http://www.asktog.com/columns/027InterfacesThatKill.html

Utterly unrelated to Emacs.

Signature

David Kastrup, Kriemhildstr. 15, 44793 Bochum

Twisted - 20 Jun 2007 22:30 GMT
> >> > > I continue to suspect that there's an ulterior motive for making and
> >> > > keeping certain software actively beginner-hostile; a certain macho
[quoted text clipped - 9 lines]
>
> Utterly unrelated to Emacs.

I think it is quite relevant. Clunky computer interfaces may not be so
dramatically dangerous, but they certainly can hamper productivity.
Between Windows bugs and gratuitous misfeatures (e.g. DRM) and Unix
clunkiness, billions of dollars of potential productivity is lost
worldwide every *month*.
David Kastrup - 20 Jun 2007 22:35 GMT
>> >> > > I continue to suspect that there's an ulterior motive for making and
>> >> > > keeping certain software actively beginner-hostile; a certain macho
[quoted text clipped - 13 lines]
> so dramatically dangerous, but they certainly can hamper
> productivity.

But Emacs does not have a "clunky" interface.

> Between Windows bugs and gratuitous misfeatures (e.g. DRM) and Unix
> clunkiness, billions of dollars of potential productivity is lost
> worldwide every *month*.

You are spewing again.

Signature

David Kastrup, Kriemhildstr. 15, 44793 Bochum

Twisted - 20 Jun 2007 22:38 GMT
> But Emacs does not have a "clunky" interface.

That's for the everyday novice-to-intermediate user to decide. Your
gnu.org email address (and attitude) clearly marks you as not a normal
user, and so your opinion doesn't count.
David Kastrup - 20 Jun 2007 22:40 GMT
>> But Emacs does not have a "clunky" interface.
>
> That's for the everyday novice-to-intermediate user to decide.

And they do.

> Your gnu.org email address (and attitude) clearly marks you as not a
> normal user, and so your opinion doesn't count.

Your email address and attitude marks you as an anonymous troll.

Signature

David Kastrup, Kriemhildstr. 15, 44793 Bochum

Robert Uhl - 21 Jun 2007 17:11 GMT
>> But Emacs does not have a "clunky" interface.
>
> That's for the everyday novice-to-intermediate user to decide.

Why should the ignorant decide?  Do you leave the decision of what great
art is to 3 year olds and their doting parents?  Do you leave the
decision of what great food is to the ignorant, unwashed,
McDonald's-devouring masses?  Why then do you leave the decision of
what's a useful interface to those with insufficient experience?

Emacs has a slight learning curve (so too did your Windows/Mac OS
interface conventions--you've just forgotten them), but it is easy to
use.  A Windows or Mac OS text editor may have an easier learning curve,
but it'll never be as easy to use.

Signature

Robert Uhl <http://public.xdi.org/=ruhl>
I read [.doc files] with 'rm.'  All you lose is the Microsoft-specific
font selections, the macro viruses and the luser babblings.
                                     --Gary `Wolf' Barnes

Galen Boyer - 22 Jun 2007 02:43 GMT
> but it is easy to use.  A Windows or Mac OS text editor may have an
> easier learning curve, but it'll never be as easy to use.

This really is the biggest argument.  Emacs takes more time to learn
than any other environment I've used.  But, Emacs is the easiest to use
interface I've ever come across, by a very very wide margin.

Signature

Galen Boyer

Bjorn Borud - 22 Jun 2007 15:52 GMT
[Robert Uhl <eadmund42@NOSPAMgmail.com>]

| Why should the ignorant decide?  Do you leave the decision of what great
| art is to 3 year olds and their doting parents?  Do you leave the
| decision of what great food is to the ignorant, unwashed,
| McDonald's-devouring masses?  Why then do you leave the decision of
| what's a useful interface to those with insufficient experience?

Robert does have a point; however, one needs to take into account that
it is very difficult to judge the quality of an interface if it is one
that is very familiar to you or if the inner workings are obvious to
you.  this is why programmers often make bad UI designers: we are
intimately familiar with the inner workings, and to us it is okay if
the UI is just a thin layer on top of a system we've made.

(I'd say the web is a better showcase for this.  there seems to be no
end to the number of websites that have awkward interaction modes.
nor do people seem particularly shy about adding "just one more" thing
to an already crowded interface -- because they're blind to the wall
of complexity it presents to the occasional user).

editors like Emacs is not something which is designed for the casual
user, so what the casual user thinks is irrelevant.  (also note that
the definition of "casual user" has changed).

-Bjørn
Twisted - 22 Jun 2007 21:47 GMT
> >> But Emacs does not have a "clunky" interface.
>
> > That's for the everyday novice-to-intermediate user to decide.
>
> Why should the ignorant decide?  Do you leave the decision of what great
> art is to 3 year olds and their doting parents?

Did I say it was for the "beginner" to decide? No, I said "novice-to-
intermediate".

How clunky versus usable an interface to a tool is is for those who
invest some, but not extraordinary amounts of, time into its use to
decide. If it requires years of mastery, it is clunky -- period. This
may be unavoidable if it's something involved in nuclear power plants,
delicate neurosurgery, or whatever. If it's a text editor, on the
other hand, it's clearly going to have superior competition in the
area of usability.

Besides, ANY interface that involves fumbling around in the dark
trying to find a light switch is clunky. You should be able to see
what the hell you're doing and navigate easily. Applications that not
only eschew normal methods of navigation of the interface, but force
you to fumble your way between the help and the task you're trying to
do, are definitely clunky. An analogy to a genuine emacs experience:
you enter a workshop with some raw materials and tools. Unfortunately
there's no big ceiling lights so you can just flip the switch by the
door and then always be able to see where everything is. Instead
there's little lights here and there by various specific tools and
storage areas, and in one area a map of the place with switches to
control the lights. So first you have to fumble around until you
happen upon the map/light controls. Then you need to (in the dark!)
hit the switch for the map/light control area itself. (Now you've
found the help and gotten it to be the active pane, er "window".) Now
you need to find the tool you want on the map -- OK, that was easy.
Now you turn on its light. Oh, hell -- the light on the map/light
controls has now gone out though! That also included the instructions
on using the specific tool. You can go to and use the one tool, if you
memorized those instructions, but then it's back to the darkness...
(You find the help on doing a particular thing, then can't get back to
the document to do it because of clunky navigation. So you go back to
the help on switching windows, and now you can flip back to the
document. Only you realize you can have the document and help open at
the same time, but the only time the document has focus is when the
help is open to "help on switching windows", which makes this rather
useless! You end up having to memorize the help, because *you can't
have arbitrary parts of the help and your document open side by side
and be working on the document*. All because you can't simply tab or
click to the document. At minimum, you have to *memorize* some arcane
key controls for switching panes ... er, "windows", that are totally
unintuitive and unlike what is normally used.

Oops. The interface design is a nightmare. The most basic requirement,
that it be easy to have the help open side by side with your document
and switch back and forth and navigate inside the help easily, is
broken. If you have to consult the help just to navigate the help or
to switch focus between document and help, then you're trapped, and
that is what happens with emacs.

I don't know why people keep harping about what version. It was
probably something in the low 20s, after an earlier try with one in
the upper teens. The interface never improved over that time -- the
biggest problem consistently being that whenever focus was
successfully transferred to the document window, the help window was
invariably open to the instructions for switching windows, so you
could never be doing something with the document and have the help for
that something available at a glance. Defeating the whole purpose of
having a help system. A separate printed manual would have been
better, if I could have spared the paper and toner, as I could hold
that off to one side of the monitor and flip through it and open it to
anywhere I wanted to, then go back to my document without even having
to think about it. Even though it would be at the price of no full-
text search capability -- not that I could ever get that to work in
emacs anyway. There was no apparent way to do a simple substring
search and click "next match" or "previous match" to navigate among
the hits...more arcane keypresses would be required, and as soon as it
showed you the first match inside the help, the keypress documentation
of course vanished.

As far as I can tell, it just is not and never was possible to get
started with emacs without a separate, outside-of-emacs cheat sheet,
or to be very productive at all without actually memorizing the damn
thing. Modern user interfaces require a minimum of memorization, most
of which is basic, standard stuff that is the same from one app to the
next, so you already know it all -- your clicks and double clicks,
your alt-tabs and alt-enter-for-properties etc.; application-specific
keyboard shortcuts can be learned as convenient. Infrequently used
commands you can stand to hunt for in menus. When you find you use one
frequently, you can try to learn the keyboard shortcut -- and you can
find it without even consulting the help, simply by finding the
command's menu item. Every time you want to use the command but can't
remember the shortcut you just find it in the menu and activate it
from there, and see the shortcut while you're at it, helping to
eventually memorize it. And the commonest sorts of File and Edit menu
items have near-universal shortcuts, the big variation tending to be
whether Redo is shift-ctrl-Z, ctrl-Y, nonexistent, or menu-only.

But you can start using it right away with low productivity, and
increase your productivity with proficiency and learning (optional)
shortcuts, chiefly those to the commands you happen to use a lot.

Not so emacs, or most other unix-heritage tools. Those you can't use
in any nontrivial way without ascending a sheer cliff of memorization
*first*, before doing a single useful thing.

One person elsewhere in this thread even went so far as to suggest
that to avoid having a similar hurdle with every application you just
use emacs for everything. If you like being claustrophobically trapped
in 80x24x8BPP instead of 1280x1024x32BPP, that may be your cup of tea.
Also if you like having zero productivity in every single task instead
of just one until you've scaled the El Capitan of user interfaces. On
the other hand, you can avoid having a similar hurdle with ANY
application by simply using standard GUI apps developed with Mac and
Windows users in mind. I hear they even have them for Unix now --
technically including everything written for MacOSX as well as modern
WMs on Linux and probably *BSD.

(Use emacs for everything? That's like suggesting I move all my tools
*into* that dark place with the screwy lighting system, rather than
*out*. Me, I'd rather just avoid that place, or if necessary bring in
a big bank of floodlights and install them, and the sensitive artiste
who originally architected it be damned. Which is what Xah started
this whole mess by suggesting, in effect.)
BartlebyScrivener - 22 Jun 2007 22:21 GMT
> If it requires years of mastery, it is clunky

Well, now you keep harping on this, but it's just not true.

I use vim myself, but for purposes of this argument it doesn't matter.
If you take the Vim tutorial and use the help (which appears in a
split window anytime you want it), you can use Vim like any other text
editor within a day or so, especially if you use Cream, which is set
up to hold your Windows hands and act like any other Windows text
editor on the surface. But if you use Vim for YEARS you get better and
faster and more efficient precisely BECAUSE of its arcane
capabilities. If you are going to keep your hands on the keyboard
where they belong, if you REALLY want to go fast, then there's no
alternative to having complex key commands, which become second nature
over time, and take the place of repetitive, totally inefficient
mousing around.

You might enjoy this. Especially the link to an old essay called
"Interface Zen"

http://tinyurl.com/2da3om

rd
Martin Gregorie - 23 Jun 2007 15:36 GMT
>> If it requires years of mastery, it is clunky
>
[quoted text clipped - 17 lines]
>
> http://tinyurl.com/2da3om

A good reference. Thanks.

I like Interface Zen - much sense there.

However, there's a case he missed, probably through never using a CAD
system. All the good ones can be driven either by mouse, or by
non-chorded key sequences or any combo the user likes. The essence of
CAD is very accurate pointing but all too many mice move slightly when
clicked. Fortunately a decent CAD system offers the possibility of
purely pointing with the mouse and doing everything else with the other
hand on the keyboard. The result is both fast and extremely accurate.

An interface design point that nobody has yet mentioned here is that
there are four different types of user that map onto a grid:

        casual    dedicated
untrained    1    2
expert        3    4

I first ran across grid this in "Design of Man-Computer Dialogs" by
James Martin and its been very useful in systems interface design.

The problem with almost all current GUIs is that they are aimed at types
1 and 3 users - this certainly applies to Windows, OS X and Gnome
desktops with the emphasis on type 1. vi and microEmacs, OTOH, are aimed
at type 3 and 4 users.

Where does emacs fit on this grid? My guess would be 3 and 4.

Its very difficult indeed to design an interface that suits both
untrained and expert users. About the closest I've seen have been
keyboard driven menu structures which have been designed so the user can
build their own "command sequences" that traverse menu levels without
showing the menus, as long as items are selected correctly from each
level. Many CAD systems approximate to this but I've yet to see a
graphical desktop, IDE, or editor menu structure that came close.

Signature

martin@   | Martin Gregorie
gregorie. | Essex, UK
org       |

Twisted - 24 Jun 2007 04:59 GMT
On Jun 23, 10:36 am, Martin Gregorie <mar...@see.sig.for.address>
wrote:
> However, there's a case he missed, probably through never using a CAD
> system. All the good ones can be driven either by mouse, or by
[quoted text clipped - 3 lines]
> purely pointing with the mouse and doing everything else with the other
> hand on the keyboard. The result is both fast and extremely accurate.

Actually, what I prefer in (2D and 3D) visual design apps is the
ability to snap to some kind of grid/existing vertices, and to zoom in
close. Then small imprecisions in mouse movement can be rendered
unimportant.

> An interface design point that nobody has yet mentioned here is that
> there are four different types of user that map onto a grid:
[quoted text clipped - 10 lines]
> desktops with the emphasis on type 1. vi and microEmacs, OTOH, are aimed
> at type 3 and 4 users.

The problem of course being the complete exclusion of type 1 users.
Everyone starts out as type 1, and I don't think type 2 occurs in
practise. You'd have to be some kind of religious nut to be
"dedicated" while still "untrained", rather than only as a result of
experience. Apps that provide no traction for a type 1 user will not
see much adoption except in an environment of immersion, mentoring, or
desperation. I wonder which of the three explains the majority of
emacs users, and of vi users, and whether those prove to be the same
one. :) (Actually, there'll be a single or a small number of class-2
users: the original developers, who presumably became dedicated before
having much experience *using* the tool. Their experiences are
atypical however, and their knowledge of the internals probably means
they're type 4 by the time they actually use it to do more than debug
it. Unsurprisingly, never experiencing it as a type 1 themselves they
tend to be inconsiderate of future type 1 users...this is normal, and
requires effort to avoid, in much the way blinkered views of stuff and
seeing what you want to see can be normal, and efforts like using
double-blind studies may be needed to avoid bias in evaluating, say, a
new drug. That such efforts are needed should not be seen as
disparaging the programmer or the drug-studier, but as merely
reflecting human nature, and as a simple pragmatic requirement if one
is to maximize utility.)

> Its very difficult indeed to design an interface that suits both
> untrained and expert users.

One with a bog-standard UI but also a "console" or command prompt,
scripting language, and customizable bindings?

Funnily enough I can count the software I've seen with that range of
capabilities (so able to satisfy type 1, 3, AND 4 users) on one hand.
Here's the list, in fact:

ROM BASICs and QBasic (on any really ancient microcomputer, and old
pre-Windows PCs, respectively; the former came with printed manuals
and you could just run prepackaged software from disks very easily;
QBasic had mouse and menu support, but an immediate mode command line.
You might not count ROM BASICS as as friendly, due to the lack of
menus and such, but then at that time in history NOTHING had menus and
such! And comprehensive introductory use manuals came with those, and
with pre-Windows PCs (DOS also had a decent and easy to navigate help
system). Most other BASICs and programming environments more generally
lack an integrated environment with an immediate mode prompt. Eclipse
actually sort of does, but the evaluate line can't be used really
arbitrarily and I've found it touchy, and rarely use it.

Hypercard (found commonly on old Macs; had a command prompt you could
access to directly communicate to an interpreter).

Fractint (fractal graphics making software for old pre-Windows PCs;
had a similar prompt, accessed by typing 'g', but also had extensive
help and menus readily controlled by stock keyboard commands such as
the arrow keys, and later a Windows port with menus and mouse
support).

Quake and descendants (yes, the games. Easy to just use the menus and
play the game. Advanced users could hit ~ to drop down a console and
do a few things. Really advanced ones made config files to rebind
weapons and make chat macros to fire off a taunting sentence with a
single keystroke -- no more embarrassment getting fragged while typing
it in longhand in mid-game. Super-advanced ones got at the QuakeC and
made bots, flag-capture mode mods, and other enhancements and
utilities. And sometimes cheats.)

There's probably some more out there, but I've yet to see such
desirable things as:

* The paint program with the usual interface, except you can also do
stuff like hit ~ and type "resample files:c:\foo\*.jpg width:640
height:480 preserveAspectRatio:true doNotEnlarge:false"
* The word processor with the usual interface, except you can also do
stuff like hit ~ and type "format leftIndent 2 where paragraph begins
'Quotation: '"
* The word processor with the usual interface where I can define
logical styles, then change them in only one place and affect every
pre-existing occurrence retroactively.
* The word processor with the usual interface where I can also view an
underlying markup representation and hand-hack that, and which likely
has the capabilities of the first two as a direct consequence of the
implied architecture. Only please, proper functional markup, not
macros like LaTeX or (shudder) winword. I don't want it to be possible
for documents of dubious origin to make it start sneezing, or any of
the general ugliness that follows TeX around like its shadow.
Documents that look as nice when displayed and printed, sure, but just
as nice under the hood if you please.
* Something as powerful as Mathematica, but with a more
straightforward basic-use interface as well as access to a fancy
interpreter.
* The operating system where you can do powerful stuff with a command
line and a script or two, but can also get by without either. (Windows
fails the former. Linux fails the latter.)
* For that matter, the operating system whose GUI takes the concept
behind OLE to its logical conclusion, and lets the user separately
choose and configure their text editing, this-editing, that-editing,
whosit-viewing, and the like components, and those components are used
in building more complex applications. All the alternatives would of
course adhere to a common interface for a particular sort of
component, of course. (An OO language like Java lends itself to this,
what with interfaces and inheritance and dynamic class loading!)
When I run my browser and go to GG to make a post I'd get a text entry
field that was actually my choice in a box, with the usual
capabilities such as spellchecking available, and its own little menu
bar at the top and suchlike. I'd be able to save the contents to disk
without futzing around with the clipboard and launching Notepad, and
later reload, in case the web site was prone to eating the odd
submission. My Jave IDE would display code in the same editor (the
interface should therefore support the using application externally
driving coloring/highlighting, as well as jump-to-line and similar
capabilities). Of course the editor wouldn't itself be Java-aware,
which might not be useful, for example composing a usenet post.
Instead it would provide a variety of abilities to the embedding
application, which may or may not use them. What it would provide
being its particular internal search, spell check, key bindings, etc.

> About the closest I've seen have been
> keyboard driven menu structures which have been designed so the user can
> build their own "command sequences" that traverse menu levels without
> showing the menus, as long as items are selected correctly from each
> level. Many CAD systems approximate to this but I've yet to see a
> graphical desktop, IDE, or editor menu structure that came close.

The bog-standard alt, this, that sequences on Windows "come close";
they do make the menus display, but otherwise they do exactly what you
want, and you can ignore the menus blinking around in your peripheral
vision. When I go to save a file with unsaved changes my first
inclination is ctrl+S; if the app doesn't support that the very next
thing I try is alt, f, s, before resorting to the mouse.
Martin Gregorie - 24 Jun 2007 13:10 GMT
> On Jun 23, 10:36 am, Martin Gregorie <mar...@see.sig.for.address>
> wrote:
[quoted text clipped - 3 lines]
> close. Then small imprecisions in mouse movement can be rendered
> unimportant.

That might work for visual design apps, but it doesn't for CAD, where
you may want to point to an arbitrary position with a (scaled) accuracy
of microns.

The fact remains that mechanical mice do jump when you click them,
though optical mice are better in this respect.

> The problem of course being the complete exclusion of type 1 users.

Totally untrue. They are the people that all the standard GUIs are
designed for and some (e.g Mackintosh) are very fast to learn. The
exclusion is down to the way that the purveyors of GUIs keep spreading
bullshit about how any untrained person can use a computer and never
mess it up or loose data. Thats not true and never can be: a computer is
the most complex device the average person will own or use and is likely
 to retain that title for the foreseeable future.

I grant you that type 2 users are rare, but I think flight simulators
may fit this case when  used for training.

> One with a bog-standard UI but also a "console" or command prompt,
> scripting language, and customizable bindings?

Not really. What's needed is a single interface that can be used by
anybody from beginner to expert and that, in the case of an error, shows
precisely where it got, what caused the action to fail to complete and
that allows the user to continue from that point without having to
undo/redo the bits that were successful. Its not easy, but it can be done.

> ROM BASICs and QBasic (on any really ancient microcomputer, and old
> pre-Windows PCs, respectively; the former came with printed manuals
> and you could just run prepackaged software from disks very easily;

Hang on: you don't read manuals. You object to using tutorials and to
buying books, so its a bit precious to claim this example.

> * The word processor with the usual interface where I can define
> logical styles, then change them in only one place and affect every
> pre-existing occurrence retroactively.

Thats been in Word since DOS days and is part of OpenOffice. Its called
a "style sheet". The only WPs I've used that didn't use them were
Wordperfect, WordStar, DEC WPS+ and the Wang dedicated WP systems. All
were horrid to varying degrees, with Wordperfect and Wordstar tying for
worst.

> * The word processor with the usual interface where I can also view an
> underlying markup representation and hand-hack that,

You're thinking of Wordperfect and its 'Reveal Codes' function. That was
the worst idea I've ever seen in a WP, matched only by the illogically
arranged set of 12 function keys, each with 4 shifts.

> and which likely has the capabilities of the first two as a direct
> consequence of the implied architecture.

It didn't. 'Reveal codes' could only let you inspect the current
document. Unfortunately it was essential to use it because some input
sequences could completely mess up the formatting and the only way to
recover was via 'Reveal codes'. The effect was similar to making a data
entry clerk use a hex editor on a database to fix keyboarding errors.

NOTE: I'm not talking about secretaries using WordPerfect. Those that
used it hated it. I'm talking about the experience of IT professionals
writing structured text, e.g. system specifications.

> * The operating system where you can do powerful stuff with a command
> line and a script or two, but can also get by without either. (Windows
> fails the former. Linux fails the latter.)

Here you're talking about two different interfaces again. The nearest
I've seen to good solutions at OS level were the CL interface provided
by ICL's VME mainframes and IBM's AS/400 systems. The latter was
particularly good, with a single unified text screen interface which
provided help screens, menus and a command line. You could search for
and find commands via a menu structure, and then use form filling to
provide the arguments, with help available at any stage. If you were
writing a script the entire menu and form filling system was available
from within the text editor - but when you hit ENTER the completed
command was written into your script instead of being executed.

Both OS/400 and VME were very consistent in the way they assigned
command names and argument keywords. In both OSen it was possible to
think "if there's a command to do this it will be called BLAHBLAH", type
the name, hit the command completion key and have the argument entry
screen pop up ready to be filled in.

BTW, in both OSen this capability applied to user-written scripts and
programs as well as to the standard command set. Both could claim to be
object oriented: the VME command language was derived from Algol-68,
arguably the granddaddy of all OO programming languages.

> * For that matter, the operating system whose GUI takes the concept
> behind OLE to its logical conclusion, and lets the user separately
> choose and configure their text editing, this-editing, that-editing,
> whosit-viewing,

The AS/400 editor did exactly that. There was only one, but it swapped
personality to match the task and was language-aware as well as
application aware. It produced form-filling interfaces to help you write
command scripts. If you were writing a program it gave language-specific
prompts and could run syntax checks on each statement as it was entered.
If you didn't want any of that, it would just quietly accept input like
any other text editor.

> The bog-standard alt, this, that sequences on Windows "come close";
> they do make the menus display, but otherwise they do exactly what you
> want, and you can ignore the menus blinking around in your peripheral
> vision.

No they don't: you can't easily string them together to act as a single
command and the error diagnosis and reporting is remarkably poor. Same
goes for Gnome, so I'm not particularly bashing Windows here.

Signature

martin@   | Martin Gregorie
gregorie. | Essex, UK
org       |

Twisted - 24 Jun 2007 20:32 GMT
On Jun 24, 8:10 am, Martin Gregorie <mar...@see.sig.for.address>
wrote:
> > Actually, what I prefer in (2D and 3D) visual design apps is the
> > ability to snap to some kind of grid/existing vertices, and to zoom in
[quoted text clipped - 4 lines]
> you may want to point to an arbitrary position with a (scaled) accuracy
> of microns.

I didn't mention that you should be able to zoom and make the grid
fine to whatever limit is reasonable given the application? The issue
being, how accurate is "accurate enough"? Pinpoint precision isn't
possible, unless it's an integer or a functionally derived value like
pi or some arithmetic result of that. Grids are good for getting
rational numbers exactly, and nothing will hit the irrational ones
exactly, save if you can enter a formula for it to use to compute the
point's location to any desired precision. A mouse click (sans grid)
will always introduce some error; the zoom level lets you limit the
magnitude of the error. So does a grid, and to zero if the desired
point is a