The Modernization of Emacs

Discussion in 'Perl Misc' started by Xah Lee, Jun 17, 2007.

  1. Xah Lee

    Xah Lee Guest

    [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

    ∑ http://xahlee.org/
     
    Xah Lee, Jun 17, 2007
    #1
    1. Advertising

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

    On Jun 17, 5:13 pm, Xah Lee <> wrote:
    > [this post is a excerpt from
    > The Modernization of Emacs, Xah Lee, 2006-04 athttp://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 “keyboardshortcut†in
    > emacs documentation. Use the term keybinding or binding only in a
    > technical context, such as in elisp documentation.
    >
    >   Xah
    >  
    > ∑http://xahlee.org/
     
    Thomas F. Burdick, Jun 17, 2007
    #2
    1. Advertising

  3. Xah Lee

    Twisted Guest

    On Jun 17, 11:13 am, Xah Lee <> wrote:
    [snip]

    Whoa. Xah posted something I agree with wholeheartedly. Imagine that.
     
    Twisted, Jun 17, 2007
    #3
  4. 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).
     
    Philipp Leitner, Jun 17, 2007
    #4
  5. On Jun 17, 6:46 pm, Philipp Leitner <> wrote:

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


    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.
     
    George Sakkis, Jun 18, 2007
    #5
  6. Xah Lee

    Guest

    On 17 ÉÀÎ, 19:13, Xah Lee <> wrote:
    > 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.
    >

    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
    >
    > http://xahlee.org/
     
    , Jun 18, 2007
    #6
  7. Xah Lee

    Guest

    >
    > > * 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.
     
    , Jun 18, 2007
    #7
  8. Xah Lee <> writes:

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


    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

    --
    Joel J. Adamson
    Biostatistician
    Pediatric Psychopharmacology Research Unit
    Massachusetts General Hospital
    Boston, MA 02114
    (617) 643-1432
    (303) 880-3109
     
    Joel J. Adamson, Jun 18, 2007
    #8
  9. Xah Lee

    Hal Vaughan Guest

    Joel J. Adamson wrote:

    > Xah Lee <> writes:
    >
    >> ----------------------------------------
    >> 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.

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


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


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

    Hal
     
    Hal Vaughan, Jun 18, 2007
    #9
  10. Xah Lee

    Harry George Guest

    Galen Boyer <> writes:

    > On Mon, 18 Jun 2007, wrote:
    >
    > > 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.
    >
    > --
    > Galen Boyer


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

    --
    Harry George
    PLM Engineering Architecture
     
    Harry George, Jun 19, 2007
    #10
  11. Harry George <> writes:

    > 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: */.

    --
    David Kastrup
     
    David Kastrup, Jun 19, 2007
    #11
  12. David Kastrup wrote:

    > 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.
     
    Matthias Buelow, Jun 19, 2007
    #12
  13. Xah Lee

    Xah Lee Guest

    Re: The Modernization of Emacs: terminology buffer and keybinding

    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

    ∑ http://xahlee.org/
     
    Xah Lee, Jun 19, 2007
    #13
  14. Xah Lee

    Xah Lee Guest

    Re: The Modernization of Emacs: not dumb down

    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: Why should emacs want to be popular and why should emacs change to
    conform the majority? We don't want emacs to be popular. We want
    people to adopt emacs, not emacs adopting people.

    A: This attitude has plagued unix and computer geekers for decades. In
    the early 1990s (DOS and unix), tech geekers would sneer at graphical
    menus and mouse, with hordes of reasons how pure text interface, the
    command line, and or keyboard operations are sufficient and superior
    than graphical user interface or using a mouse. This seems ridiculous
    today, but such online forum messages are common.

    The reason for these type of attitude, is almost never a sensible
    alternative view about the topic in discussion, but a show of machismo
    and superiority complex. (perhaps more than 95% of online computing
    forum users are males, and majority of them are aged under 25.) The
    person who utters such opinion, made sure in the way he writes that he
    is a expert in the “more difficult to use†method or tools and would
    prefer things not to be “dumbed downâ€.

    It is silly to retort “Why should emacs want to be popular?â€. It is
    like asking “why do you want to live longer?†when someone is picky
    about healthy food, or “why should you want to look beautiful?†when
    someone dresses up. We want to improve software, not taking the
    attitude of “we are more complex and unique and superior and we want
    to keep dummies outâ€.

    In software design, occasionally we are tied down with a design
    decision, such that it has a popular vs elegant aspect. For example,
    suppose we are designing a set of keyboard shortcuts for emacs and we
    are faced the question of whether to keep the copy/paste/undo/open etc
    with the conventional C/V/Z/O etc keystrokes. Or, we can choose to
    sacrifice user's familiarity of conventions but obtain a keyboard
    shortcut set that is in some way more consistent, extensible, or
    otherwise technically better.

    If a design decision comes down to a pure popularity vs elegance and
    everything else equal, then the decision might be based on our
    philosophical dispositions or the software creator's ultimate goal.
    However, it is not proper to pigeon-hole design issues into popularity
    vs elegance.

    Xah

    ∑ http://xahlee.org/
     
    Xah Lee, Jun 19, 2007
    #14
  15. Xah Lee

    Xah Lee Guest

    Re: The Modernization of Emacs: technically superior

    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: Emacs's ways are technically superior. It should not change.

    A: Emac's user interface, when compared to modern software
    application's user interface, is complex and unusual, however, there's
    no basis whatsoever of it being actually a superior design with
    regards to any sensible metrics. (in fact, much of emacs's user
    interface are due to historical reasons. That is, how computers are in
    1980s.)

    For example, let's consider emacs's system of keyboard shortcuts. For
    a keyboard shortcut system, we might judge its quality based on
    several aspects. Here are some examples of consideration:

    * Is it easy to learn? (is it familiar to most people?)
    * Is it easy to type? (is most frequently used commands easy to
    type?)
    * Is it easy to remember?
    * Are more frequently used commands have the easier-to-type
    shortcuts that less frequently used commands?
    * Are most frequently used commands all have a keyboard shortcut?
    * Can the shortcut system somehow be consistent and extensible to
    cover other user defined shortcuts?

    Emacs's keyboard shortcuts system, somewhat satisfies the last aspect,
    but do very bad with respect to all the others. Emacs keyboard
    shortcuts are perhaps one of the most difficult to learn among
    software, and is also one of the most difficult to remember. The worst
    aspect of emacs's keyboard shortcuts, is that it is ergonomically
    painful. (Many emacs-using programer celebrities have injured their
    hands with emacs. (e.g. Richard Stallman, Jamie Zawinski), and emacs's
    Cntl-x keyboard and Meta-x combinations are most cited as the major
    turn-off to potential users among programers)

    Computer keyboard is a hardware interface, and the mapping of commands
    to the key press combinations can be considered from a Operation
    Research point of view. The keyboard hardware itself can be designed
    with consideration of ergonomics (that's why we have split and curved
    keyboards), but consideration of what functions to map to what key
    presses is also non-trivial if the software has large number of
    functions or if the software is mission critical. Think of it this
    way, consider a airplane cockpit, filled with knobs, dials, buttons,
    and switches. Now, if your job is to map the airplane control
    functions to these switches, what are the things to consider for a
    optimal map?

    If we take careful consideration on creating a keyboard shortcut
    system for emacs, it is actually easy to create a system that are
    purely superior in some technical sense than the ad-hoc Emacs's ways.

    Aside from keyboard shortcuts system, Emacs's other user interfaces
    are also questionable. For example, one major aspect of emacs
    operation is that it uses a single window for multiple purposes and
    files. Emacs is this way not because of a design decision, but rather
    due to historical reasons. Computer resources in the 1980s are very
    limited. When emacs is around, graphical system of showing “windowsâ€
    is not practically available, and the emacs's method of using the
    screen (the textual-based-monitor) for presenting multiple tasks
    (“buffersâ€) is actually a very advanced user interface design not
    available in software of that era. When graphical systems becomes
    practical in the 1990s, drawing a window takes a lot memory, and
    opening multiple windows is slow and inpractical.

    Modern software interface (say, post 2000) usually uses one window per
    file (or task), and or show a tab if multiple task is to be
    represented in a single window. However, in general, emacs doesn't
    provide the tabs visual clue and still remained its old way of using a
    single window for all files and tasks as its standard operation. As
    far as user interface design is considered per se with respect to
    today's computing standards, the emacs's way is inferior because it is
    less intuitive. Arguably, emacs's operation methods may be more
    efficient for expert users. 20 years ago, efficiency for expert users
    may out weight the ease of use for majority of average users. But in
    today computing era, computers are standard tools in every household,
    efficiency and ease of use for general users is as important for
    professional users. Even for professional users, it is openly
    questionable that emacs's ways of operation induced by its default
    user interface allows faster or more efficient operation than a user
    interface based on modern software conventions.

    Xah

    ∑ http://xahlee.org/
     
    Xah Lee, Jun 19, 2007
    #15
  16. Xah Lee

    Xah Lee Guest

    Re: The Modernization of Emacs: exists already

    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: Aquamacs already does what you want.

    A: Aquamacs is a emacs variant based on emacs, for Apple's Macintosh
    computers, created in about 2004 by David Reitter. Aquamacs modifies
    emacs so that its user interface follows modern (Mac OS X)
    conventions. For example, copy, paste, undo shortcuts are cmd-c, cmd-
    v, cmd-z. Open file is cmd-o, saving is cmd-s. Close window is cmd-w.
    There is a redo command by default, with shortcut cmd-shift-z. By
    following a modern user interface, almost all points mentioned in this
    article are fixed in Aquamacs. For more info, see: Wikipedia Aquamacs↗
    and Aquamac's home page at: Aquamacs.org ↗

    As a emacs variant, it does help in spreading the idea that emacs user
    interface should be modernized. However, a third-party variant
    software is irrelevant to the modernization issue.

    For example, suppose Microsoft Word remained with its DOS era command
    line interface, for example, file is opened with [Esc] (to open the
    menus), [T] (for Transfer), [L] (for Load). Suppose Microsoft hired a
    third party to release a variant called MS AquaWord. This would not
    help Microsoft Word the software itself, and is likely to complicate
    the issue around Microsoft Word.

    Xah

    ∑ http://xahlee.org/
     
    Xah Lee, Jun 19, 2007
    #16
  17. Re: The Modernization of Emacs: terminology buffer and keybinding

    Xah Lee <> writes:

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


    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

    --
    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
     
    Joel J. Adamson, Jun 19, 2007
    #17
  18. Xah Lee

    Ed Guest

    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
     
    Ed, Jun 19, 2007
    #18
  19. Xah Lee

    Lew Guest

    Ed wrote:
    > 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.


    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'
    > Move point to the beginning or end of the current function or
    > top-level definition. These are found by searching for the least
    > enclosing braces. (By contrast, `beginning-of-defun' and
    > `end-of-defun' search for braces in column zero.) If you are
    > editing code where the opening brace of a function isn't placed in
    > column zero, you may wish to bind `C-M-a' and `C-M-e' to these
    > commands. *Note Moving by Defuns::.
    >
    > `M-a'
    > Move point to the beginning of the innermost C statement
    > (`c-beginning-of-statement'). If point is already at the beginning
    > of a statement, move to the beginning of the preceding statement.
    > With prefix argument N, move back N - 1 statements.
    >
    > In comments or in strings which span more than one line, this
    > command moves by sentences instead of statements.
    >
    > `M-e'
    > Move point to the end of the innermost C statement or sentence;
    > 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.

    --
    Lew
     
    Lew, Jun 19, 2007
    #19
  20. On Tue, 19 Jun 2007 15:53:21 +0200, David Kastrup <> wrote:
    >Harry George <> writes:
    >> 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: */.


    Apparently, we share at least part of that. My own favorite killing
    offense is '/* vi:set ts=anything: */' :)
     
    Giorgos Keramidas, Jun 20, 2007
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Arvind Kumar

    E language mode for Emacs

    Arvind Kumar, Aug 20, 2003, in forum: VHDL
    Replies:
    2
    Views:
    1,773
    Stephen J. Turnbull
    Aug 20, 2003
  2. Rick Jackson

    emacs vhdl-mode

    Rick Jackson, Nov 25, 2005, in forum: VHDL
    Replies:
    10
    Views:
    2,985
    Reto Zimmermann
    Nov 30, 2005
  3. Xah Lee

    The Modernization of Emacs

    Xah Lee, Jun 17, 2007, in forum: Java
    Replies:
    372
    Views:
    5,762
  4. Xah Lee

    The Modernization of Emacs

    Xah Lee, Jun 17, 2007, in forum: Python
    Replies:
    363
    Views:
    4,810
  5. Adam Funk
    Replies:
    4
    Views:
    235
    Adam Funk
    Jan 29, 2007
Loading...

Share This Page