Java Forum / General / October 2007
The Modernization of Emacs
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
|
|