From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Xah Newsgroups: gmane.emacs.help Subject: Re: How to get rid of *GNU Emacs* buffer on start-up? Date: Sat, 27 Sep 2008 09:19:22 -0700 (PDT) Organization: http://groups.google.com Message-ID: <9b7f6c54-649a-45d0-8e9b-0dbbd61ef1dd@c36g2000prc.googlegroups.com> References: <87ljxoffs6.fsf@atthis.clsnet.nl> <71208e97-140c-445d-8eda-1705f11b14b3@r15g2000prd.googlegroups.com> <095ef0c0-c7f4-494d-8bf6-8a5ee43fd934@i20g2000prf.googlegroups.com> <3c61c357-0705-4ff4-b793-fa6827415fdd@n38g2000prl.googlegroups.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1222533966 32350 80.91.229.12 (27 Sep 2008 16:46:06 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 27 Sep 2008 16:46:06 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sat Sep 27 18:47:02 2008 connect(): Connection refused Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Kjcvx-0004hW-Pc for geh-help-gnu-emacs@m.gmane.org; Sat, 27 Sep 2008 18:46:21 +0200 Original-Received: from localhost ([127.0.0.1]:53374 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kjcuu-0000d3-4Z for geh-help-gnu-emacs@m.gmane.org; Sat, 27 Sep 2008 12:45:12 -0400 Original-Path: news.stanford.edu!newsfeed.stanford.edu!postnews.google.com!c36g2000prc.googlegroups.com!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 367 Original-NNTP-Posting-Host: 24.6.185.159 Original-X-Trace: posting.google.com 1222532362 8816 127.0.0.1 (27 Sep 2008 16:19:22 GMT) Original-X-Complaints-To: groups-abuse@google.com Original-NNTP-Posting-Date: Sat, 27 Sep 2008 16:19:22 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: c36g2000prc.googlegroups.com; posting-host=24.6.185.159; posting-account=bRPKjQoAAACxZsR8_VPXCX27T2YcsyMA User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10_4_11; en) AppleWebKit/525.18 (KHTML, like Gecko) Version/3.1.2 Safari/525.22, gzip(gfe), gzip(gfe) Original-Xref: news.stanford.edu gnu.emacs.help:162801 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:58142 Archived-At: am tired arguing with you Alan. let's assume that there is a gab of knowledge between you and me, and me having much higher knowledge than you. Then, what do i get in teaching you thru exchange of messages? You know, when the knowledge gab is too wide, it is basically impossible to argue with fruitful outcome. Imagine, a math professor trying to argue some highschooler who just learned calculus. Of course, you maybe think the same of me. So, what can i do? in comp.lang.lisp for example, i argued with lots of Common Lisper morons, which often results in the same way. i.e. after several threods of hundred or more messages, basically they think i'm a moron, i think they are a moron, and it has become a impasse, as if we don't speak the same language. So, what can i do? About 3 or 4 times in the past year i have written detailed essay about the situation, and possible resolutions. I'm not going to spend some 1 hour to dig them up and spend perhaps another 2 hours to rephrase and reorganize them so it suites you here... but basically i proposed each arguer putting down money, hire accomploshied experts, etc. The result is that, it doesn't help. They either ignore it, or put their tails between their ass and disappear or say some friendly words, or whatever ... suffice it to say that some these morons, still think i'm the moron. (i do think, that many tech geekers, did see get persuaded by my arguments.) (You can see a related article here: How Shall I Respond http://xahlee.org/Netiquette_dir/how_shall_i_respond.html ) So, what can i do with you or you with me? For sincerity and persuit of truth, i am willing to pay $50 to have this argument about *scratch* fully resolved. I propose, that each of us put $50 into this argument. For nothing else, it is a reasonable proof of sincerity and effort to get a real quality argument going. How do we carry it out? that's always been problematic... but we can start, by , i send you $50 thru paypal, and you send me $50 thru paypal. I trust you, and you trust me. Then we start to argue really seriously. If in the end, you find that my argument is stronger, you pay me $50 back. Same me to you. What do you say? Also, we could get the money to hire a arbitator who is someone we both agree to be UI expert and honest.... but this gets more complicated as to choosing someone, the logistics of it, etc. But i'm open to suggestions. also, in good argument, we should formulate precisely exactly what we are arguing... i'm too tired with this thread now i'm not gonna spend any more minute to begin such a formulation... perhaps you might want to start such a suggestion, or we can go with the above $50 exchange first. So, if you agree, i send you $50 thru paypal, and post the receipt. So, once you get it, and others see my =E2=80=9Cpayment sent receipt=E2=80= =9D posted, you'd do the same. Then we begin. Btw Alan, you guys are motherfucking morons, i say. You guys, are absolutely devoid critical thinking abilities, and lack of knowledge of UI, and in fact blantantly ignorant plain facts such as emacs utterly bad design with its keybindings. This paragraph is just so that you (guys) know what my confience and my view of your guys are, before we start a formal argument with money down. I want you to know how cocky i am, so, if you lose at the end, you know you how really asinine you people are relative to me. (btw, you could try to blame me that by having this paragraph i wasn't really sincere about the $50 money down to start argument. I am sincere really. Just post a reply, and if you really indicated that you want to go ahead with this, you'll get my $50. And, also remember, morons, the final judgement of who won the argument is not me. It is you. Quote: =E2=80=9CIf in the end, y= ou find that my argument is stronger, you pay me $50 back. Same me to you.=E2=80=9D) btw, i didn't read your last 2 or 3 posts here, Alan. It's not worth my time. I did spend maybe 10 seconds about the first few paragraphs. I have exchanged perhaps 15 or more messages with you in the past 6 months. I know quite well what kinda things you'd say. However, if we began this argument with money down to begin, of course i will read every detail and think about about it. > But that element of UI is subordinate to efficiency in things > like Emacs or a modern airliner. No. Many emacs ways are in fact inefficient to a very high degree. One most obvious example is its keyboard shortcut system. See: http://xahlee.org/emacs/emacs_kb_shortcuts_pain.html plain text version follows: -------------------- Why Emacs's Keyboard Shortcuts Are Painful Xah Lee, 2007-07 A important aspect in designing a keyboard shortcut set, for a application that has intensive, repetitive, prolonged human-machine interaction (such as coding and text editing), is to consider ergonomic principles. Specifically: allocate keyboard shortcuts for the most frequently used commands, and, the top most frequently used commands should have most easily-pressed keystrokes. For example, they should be on the home row. This article shows why Emacs's keyboard shortcut set is the most ergonomically bad. The Swapping of Control and Meta Modifiers Emacs's keyboard shortcuts is very inefficient. The primary cause is because, emacs's keyboard shortcuts are designed with a keyboard that practically has the Ctrl and Alt key positions swapped. Space-Cadet keyboard-2m above: The Space-cadet keyboard. (Large Size: Space..._2.jpg (2003x813)) (Source=E2=86=97 2008-07) The common keyboard used around emacs era in the 1980s are those keyboards from Lisp Machines=E2=86=97. (see Space-cadet keyboard=E2=86=97) = The keyboard on lisp machines have the Control key right besides the space bar (similar to the position of Alt keys on PC keyboards), and Meta to the left of Control. So, the Control key is the primary modifier, and the Meta is secondary to Control. This is why, the shortcuts for the most used commands in emacs involve the Control key instead of the Meta key. (Example: The cursor movements: C-p, C-n, C-f, C-b, C-a, C- e, the cut/paste/undo C-w, C-y, C-/, the kill-line C-k, the mark C- SPC, the search C-s.) Lisp Machine's keyboards fell out of use alone with Lisp Machines. Since the 1990s, the IBM PC keyboard=E2=86=97 (and its decedents) becomes the most popular and is used by some 98% of personal computers today. The PC keyboard does not have Meta key but have Alt instead. The Alt is placed right beside the space bar, while Control is placed far to the corner. Emacs did not change its keyboard shortcut bindings to adapt the PC keyboard. Emacs simply remapped its Meta shortcuts to the Alt key by default. (and kept on using the terminology Meta) The tragedy of the Control/(Alt/Meta) swap made emacs keyboard shortcuts very painful, and the frequent need to press the far-away Control key creates the Emacs Pinky syndrome. (Many emacs-using programer celebrities have injured their hands with emacs. (e.g. Richard Stallman=E2=86=97, Jamie Zawinski=E2=86=97), and emacs's Ctrl and M= eta combinations are most cited as the major turn-off to potential users among programers) (For more photos of Lisp Machine's keyboards (all have Control as primary), see: lisp_machine_symbolics_keyboard.jpg (photo by Rainer Joswig=E2=86=97. Used with permission), Symbolics keyboard PN 364000=E2=86= =97, Symbolics keyboard PN 365407 Rev C=E2=86=97 by Peter Paine ) The Choice Of Keys The shortcut's key choices are primarily based on first letter of the commands, not based on key position and finger strength or ease of pressing the key. For example, the single char cursor moving shortcuts (C-p previous-line =E2=86=91, C-n next-line =E2=86=93, C-b backward-char = =E2=86=90, C-f forward-char =E2=86=92) are scattered around the keyboard with positions th= at are most difficult to press. (these shortcuts all together accounts for 43% of all commands executed by a keyboard shortcut) Of these, the most frequently used is C-n (next-line), which accounts for 20% of all shortcut calls, but is assigned to the letter n, positioned in the middle of the keyboard, which is one of the most costly key to press. Similarly, the second most used among these is the C-p (previous- line), accounting for 16% of all shortcut command calls, is located in a position above the right hand's pinky, also one of the most costly key to press. (Here we assumes the QWERTY keyboard layout. On the Dvorak layout, it is about as bad.) emacs cursor qwerty emacs cursor dvorak above: Emacs's ursor moving keys on qwerty and dvorak. See also, a newsgroup post on =E2=80=9Ccomp.emacs=E2=80=9D. =E2=80=9CRe: ef= fective emacs=E2=80=9D (2008-06-01) by Daniel Weinreb=E2=86=97. http://groups.google.com/group/comp.emacs/msg/0342e0bc1aa05c0d. =C2=ABEmacs's default cursor moving shortcuts are =E2=80=9CCtrl+f=E2=80= =9D, =E2=80=9CCtrl+b=E2=80=9D, =E2=80=9CCtrl +n=E2=80=9D, =E2=80=9CCtrl+p=E2=80=9D. The keys f, b, n, p are scattere= d around the keyboard and are not under the home row.=C2=BB That's true. At the time Guy Steele put together the Emacs default key mappings, many people in the target user community (about 20 people at MIT!) were already using these key bindings. It would have been hard to get the new Emacs bindings accepted by the community if they differed for such basic commands. As you point out, anyone using Emacs can very easily change this based on their own ergonomic preferences. Outdated Commands A significant portion of emacs's major shortcuts (those with M-=E2=80=B9key= =E2=80=BA or C-=E2=80=B9key=E2=80=BA) are mapped to commands that are almost never us= ed today. Some of these occupies the most precious space (Home row with thumb: For example: M-s (center-line), M-j (indent-new-comment-line), M-k (kill-sentence)). Most programer who have used emacs for years never use these commands. For example: digit-argument, M-1 to M-9 negative-argument, M-- move-to-window-line, M-r center-line, M-s transpose-words, M-t tab-to-tab-stop, M-i M-g prefix, M-g indent-new-comment-line, M-j tmm-menubar, M-' zap-to-char, M-z back-to-indentation, M-m tags-loop-continue, M-, find-tag, M-. Difficult Keystrokes for Frequently Used Commands Some commands that are used by every emacs user many times every hour, such as Open (find-file; C-x C-f), Save (save-buffer; C-x C-s), Close (kill-buffer; C-x k), Next Window/Tab (next-buffer C-x =E2=86=92) all requi= re multiple keystrokes with the difficult Control key. Standard Name Emacs Command Name Keystroke Open find-file C-x C-f Save save-buffer C-x C-s Close kill-buffer C-x k Next Tab next-buffer C-x =E2=86=92 Previous Tab previous-buffer C-x =E2=86=90 No Employment of the Shift Key For historical reasons, emacs does not use any keybindings involving the Shift with a letter. (e.g. there's no =E2=80=9CMeta Shift a=E2=80=9D, o= r =E2=80=9CControl Shift a=E2=80=9D) This is so because in early computing environment, Ctrl+S= hift +=E2=80=B9letter=E2=80=BA cannot be distinguished from the non-Shift versio= n, due to a practical combination of ASCII=E2=86=97, Computer terminal=E2=86=97, telnet= =E2=86=97. Today, however, employing the Shift key as part of a shortcut with other modifiers is common and convenient. For example, on Mac OS X, Undo and Redo are Cmd+Z and Cmd+Shift+Z, Save and Save As are Cmd+S and Cmd+Shift+S. On Mac and Windows, moving to next/previous field/ window/application often use the Shift key for reversing direction. In text editing on both Mac and Windows, a modifier key with a arrow key will move cursor by word/paragraph, and with Shift down will select them while moving. Using the Shift key as a reverse operation is very easy to remember, and doesn't take another precious shortcut letter. By not using the Shift key, commands with a logical reverse operation necessarily have to find other key space, and overall making the shortcut set more difficult to remember, or scattered, or more difficult to press. A Flaw in Keybinding Policy Any major software, maintains a guide for the developers about the choices of keyboard shortcuts, so that the shortcuts will be consistent. Emacs has this in its Emacs Lisp manual: Elisp Manual: Key- Binding-Conventions. This guide, indicates that the only key space reserved for users to define, are the function keys F5 to F9, and key stroke sequence starting with Ctrl+c followed by a single letter key. This is a severe restraint to the utility of customized shortcuts. F5 to F9 are only 6 keys. The key sequence starting with C-c followed by a letter, is a difficult sequence to execute, and there are only 26 spaces there. The function keys, F1 to F12, are very good candidates for user defined shortcut space, similarly for the digit key shortcuts, 0 to 9. These keys can be used with any combination of Control, Meta, Shift. For example, a user might define them to insert various templates, headers/footers, a system of customized HTML/XML tags. Or, she might assign them to various special emacs modes such as dired, shell, ftp, email, calendar, calc, *scratch*, make-frame-command (Open a new window), insert signature. It seems too drastic a policy, to limit user defined keys to only F5 to F9, and key sequence of Control+c followed by a single letter key. Epilogue: Failure to Change Today, most commonly used keyboard shortcuts have been somewhat informally standardized. For example, C/X/V is for Copy/Cut/Paste. O is for Open. S is for Save, Shift-S is for Save As. P is for Print. F is for Find/Search. Tab is for next, Shift tab for previous. These are common conventions today in every application across Microsoft Windows and Macintosh (and in Linux too in general). These shortcut conventions are primarily brought about by Apple Computer Inc's Human interface guidelines=E2=86=97 and IBM's Common User Access=E2=86=97 in the 1990s. In the early 1990s, DOS era software, each application has its own scheme of shortcuts. The following is a excerpt from the Wikipedia article on Common User Access=E2=86=97: 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 =E2=80=9Cpaste=E2=80=9D. 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. Commercial software have updated themselves with time (or went extinct), but emacs has not. If we take a survey of the market share of text editors (including IDEs) among professional programers (as defined by those who make a living by computer programing), then, it is my guess, that emacs from mid 1980s to early 1990s, has more than 50% of market share, but gradually declined. Today, perhaps less that 5% of professional programers use emacs (possibly even below 1%). I think, part of the reason being that emacs has not modernized (not in the sense of being fashionable, but in the sense of keeping with hardware and software changes in the IT industry). The other major reason, is because emacs itself is not a IDE in a modern sense, and most programing development using compiled languages such as Pascal, C, C++, Java, C#, have moved on with IDE platforms integrated with these languages's compiler application. See also: The Modernization of Emacs. 2008-07-15 Addendum: Thanks to Rainer Joswig=E2=86=97 for some correction about the history of the lisp machine's keyboards. http://groups.google.com/group/comp.lang.lisp/msg/3b3dcdc52f507b02 . Xah =E2=88=91 http://xahlee.org/ =E2=98=84