Xah Lee writes tutorials and opinions on Emacs, Emacs Lisp, keyboard ergonomics, and avoiding repetitive strain injury.
HN commenters link it in Emacs and RSI discussions, citing pages on the Emacs pinky, keyboard choice, and ASCII diagrams.
I believe a more appropriate noun is "contempt" :-)
I found this page [1] some time ago, maybe someone can find some good quotes in here but the page is kind of long and heavy and not super quotable, maybe some of you will find some gems in there.
Top of the page is Xah Lee, a lovable, and sometimes a bit weird, cranky master of contempt:
> The basis of computer languages' merit lies in their mathematical properties.
> It is this metric, that we should use as a guide for direction.
> As an analogy, we measure the quality of a hammer by scientific principles:
> ergonomics, material (weight, hardness. . .), construction, statistical
> analysis of accidents/productivity/… …etc., not by vogue or lore.
> If we go by feelings and preferences, hammer's future will deviate
> and perhaps become dildos or maces. (Xah Lee in comp.lang.lisp, July 2000)
I think Xah is cranky but many times on to something. For instance, point 6 in his list of "Python Doc Idiocies" [2] is hard to disagree with :-).
1: http://www.schnada.de/quotes/contempt.html
2: http://xahlee.info/python/python_doc_index.html
P.S.: if you enjoy Xah's writing you should pay for his excellent emacs manual [3]. It is actually openly available but he accepts contributions.
3: http://ergoemacs.org/emacs/buy_xah_emacs_tutorial.html
UPDATE: he actually has a Patreon account too! [4]
4: https://www.patreon.com/xahlee
For me, it's been keyboards with ctl and alt on both sides. Thanks to Xah Lee [1]. This rules out Macbooks (and most laptops) and favors Thinkpads, though currently I have a Dell Precision laptop and it has ctl and alt on both sides but the ctl's are not symmetrically placed and it is a bit annoying and not as good as the Thinkpad it replaced but it is workable.
On my desktop, I have a Microsoft Natural Ergonomic 4000, which is an awesome keyboard and cheap and robust. The major compromise is that it is corded to USB, but for me it is worth it.
That said, it takes practice to develop muscle memory to use both ctl keys and both alts and key bindings that require switching ctl keys to touch type feel strange.
[1]: http://ergoemacs.org/emacs/emacs_pinky.html
> Consider the poor quality of the existing js modes for 26.x, any idea why this depends on a future version of Emacs instead of current versions?
You might as well look at the thread js2-mode was revoked[0] and ergoemacs' article[1].
> Alternatively, could somebody convince the author of the railwaycat port (Emacs with better macOS integration) to get a version 27 out soon?
Er... I would like to point out that it's not 'railwaycat' port but more of Mitsuharu Yamamoto's port[2], and AFAIK he has claimed that he has no interest in maintaing an emacs27 version.
[0] https://lists.gnu.org/archive/html/emacs-devel/2009-08/msg00409.html
[1] http://ergoemacs.org/misc/emacs_javascript_mode_war.html
[2] https://bitbucket.org/mituharu/emacs-mac
For Ctrl, I recommend pressing it with the knuckle of your little finger. There's a photo of the technique here, about halfway down: http://ergoemacs.org/emacs/emacs_pinky.html
The main advantage of this over rebinding Caps Lock: it keeps the meta keys symmetrical, so you don't have to faff about rebinding Enter, or wonder about how you're going to solve the issue of hitting Ctrl with your right hand.
(Lee recommends not doing this, citing unspecified issues with the little finger. For whatever it's worth, probably not much in the face of that kind of argument, I've been doing this for about ten years now and haven't noticed any problems. I'm afraid you're just going to have to make your own decision here.)
To write code that performs decently in Emacs-Lisp, you have to work with buffer contents rather than substrings, and it is just another frustration, the primitives for working with buffer contents are low level and heavily stateful, you end up writing imperative code that looks a lot like pascal or whatever, while loops conditioned on regexp searches, tons of setq's, moving point and mark around etc. It isn't a convenient way of programmatically modifying text. The basic examples of doing search and replace described here:
http://ergoemacs.org/emacs/elisp_find_replace_text.html
give a flavour of this (and of not having keyword arguments, of libary functions relying on global variables, ...).
https://en.wikipedia.org/wiki/Space-cadet_keyboard
Also, if you have a 104/105 key keyboard with "windows" and "menu" keys, you do& have a keyboard with four modifier keys. From my .Xmodmap file:
clear Mod1
clear Mod3
clear Mod4
clear Mod5
! left alt -> Meta
keycode 64 = Meta_L
add Mod1 = Meta_L
! right alt -> Alt
keycode 108 = Alt_R
add Mod4 = Alt_R
! left windows -> Super
keycode 133 = Super_L
add Mod3 = Super_L
! right windows -> Hyper
keycode 134 = Hyper_R
add Mod5 = Hyper_R
Emacs uses all four automatically, as M- A- s- H- respectively. (alternatively, see: http://ergoemacs.org/emacs/emacs_hyper_super_keys.html )