Editor Ergonomics [was: Important features for editors]

S

Skip Montanaro

The fact that rms has crippling RSI should indicate that
emacs' ergonomics is not right.

Kind of a small sample size, don't you think? Hopefully we can kill
this meme that Emacs is somehow worse for your wrists than other text
editors before it goes any further than your one unsupported
assertion.

I've been using one form or another of Emacs as a programmer/software
engineer for over 30 years. While I have had problems with RSI from
time-to-time, there have generally been other factors at play other
than just use of a text editor. I have learned how to manage it and
recognize the warning signs that indicate the onset of an episode.

More likely, rms ignored the problem and had bad personal ergomonics:
ignorance or lack of understanding of the problem, poor posture,
wrists not in a neutral position, lack of breaks, etc. If you stop to
think about it, all text editors probably present similar issues for
their users. They all involve:

* a lot of typing,
* use of modifier keys (ctrl, alt, command, etc)
* movement between the mouse and the keyboard

Skip
 
R

rusi

Kind of a small sample size, don't you think? Hopefully we can kill
this meme that Emacs is somehow worse for your wrists than other text
editors before it goes any further than your one unsupported
assertion.

Not beyond small sample but beyond singleton:
http://ergoemacs.org/emacs/emacs_hand_pain_celebrity.html
* a lot of typing,
* use of modifier keys (ctrl, alt, command, etc)
* movement between the mouse and the keyboard

My own experience: The second 2 are the worse culprits.
And while emacs is bad on the second, its excellent on the third -- to the extend that you 'live inside emacs,' you dont need the mouse.
 
S

Steven D'Aprano

Kind of a small sample size, don't you think?

Yes, but RMS is worth 1000 ordinary programmers!!!

*wink*


[...]
More likely, rms ignored the problem and had bad personal ergomonics:
ignorance or lack of understanding of the problem, poor posture, wrists
not in a neutral position, lack of breaks, etc. If you stop to think
about it, all text editors probably present similar issues for their
users. They all involve:

* a lot of typing,
* use of modifier keys (ctrl, alt, command, etc)
* movement between the mouse and the keyboard

I am not an ergonomic expert, but I understand that moving from mouse to
keyboard actually helps prevent RSI, because it slows down the rate of
keystrokes and uses different muscle groups.
 
J

jussij

I am not an ergonomic expert, but I understand that moving from mouse to
keyboard actually helps prevent RSI, because it slows down the rate of
keystrokes and uses different muscle groups.

After 20+ years of coding using the Brief keyboard mapping I have so far I've gotten by with no perceivable RSI.

On the half dozen occasions that I can recall experienced wrist pain, I remember the pain being worst when trying to interfacing with the mouse.

So at least for me the mouse does not help.
 
G

Giorgos Tzampanakis

More likely, rms ignored the problem and had bad personal ergomonics:
ignorance or lack of understanding of the problem, poor posture,
wrists not in a neutral position, lack of breaks, etc. If you stop to
think about it, all text editors probably present similar issues for
their users. They all involve:

* a lot of typing,

If you do touch-typing then this shouldn't cause any problems since the
finger/hand movement required is minimal.
* use of modifier keys (ctrl, alt, command, etc)

Alt is not a problem, you hit them with your thumbs. Ctrl you should use
the bottom-outer part of your palm. If you actually hit ctrl with your
little finger then yes, this is a disaster waiting to happen.
* movement between the mouse and the keyboard

Avoid at all costs. Use an editor that never needs the mouse (emacs or
vim).
 
S

Steven D'Aprano

After 20+ years of coding using the Brief keyboard mapping I have so far
I've gotten by with no perceivable RSI.

On the half dozen occasions that I can recall experienced wrist pain, I
remember the pain being worst when trying to interfacing with the mouse.

So at least for me the mouse does not help.

Chances are that you had one of those ridiculously high mice that force
your wrist to bend upwards ("dorsiflexion"), or otherwise were bending
the wrist inappropriately. When mousing, your wrist should be as close to
straight as possible. It helps if your mouse has a low profile, so that
you can rest your wrist and forearm on the desk and control your mouse
with your fingers without bending the wrist.

Assuming that you're keeping your wrists straight, then shifting from
typing to mousing should reduce the chances of RSI because you are using
different muscle groups. But if your mouse position is worse than your
typing position, yes, that will probably cause problems...
 
J

Jason Friedman

I am right-handed and use a lefty-mouse about 50% of the time.
It was difficult at first, now I'm almost as fast lefty as righty.
As has been stated by others, changing the muscles being used reduces the
impact on any one of them.
 
N

Neil Cerutti

I am right-handed and use a lefty-mouse about 50% of the time.
It was difficult at first, now I'm almost as fast lefty as
righty. As has been stated by others, changing the muscles
being used reduces the impact on any one of them.

That's the system I've adopted. I use the mouse lefty all day
when working and righty all night when playing.
 
X

Xue Fuqiao

Avoid at all costs. Use an editor that never needs the mouse (emacs or
vim).

I don't use vim often, but for Emacs, I think mouse is often needed:

* It is especially handy for selecting and deleting text.
* Mouse wheel gives you fine control. You can scroll by a few lines,
but scroll-{up, down}-command can't. For programmers working on
source code, this is especially nice.
* There is mouse3.el[fn:1], which is very convenient.

Footnotes:

[fn:1] http://www.emacswiki.org/emacs/mouse3.el
 
J

jussij

* It is especially handy for selecting and deleting text.

When coding I never use a mouse to select text regions or to delete text.

These operations I do using just the keyboard.
 
R

Roy Smith

When coding I never use a mouse to select text regions or to delete text.

These operations I do using just the keyboard.

For good typists, there is high overhead to getting your hands oriented
on the keyboard (that's why the F and J keys have little bumps). So,
any time you move your hand from the keyboard to the mouse, you pay a
price.

The worst thing is to constantly be alternating between mouse actions
and keyboard actions. You spend all your time getting your fingers
hands re-oriented. That's slow. This is why I never understood the
attraction of something like xemacs, where you use the mouse to make
text selections and run commands out of menus. It means you have to
keep switching hand modes. I use emacs in non-window mode, which means
my hands never leave the keyboard.
 
P

Paul Rudin

Roy Smith said:
This is why I never understood the attraction of something like
xemacs, where you use the mouse to make text selections and run
commands out of menus.

Menus are good for learning the functionality, and you have them just as
much in Gnu emacs as in xemacs. You can even use them absent a windowing
system! Text selection with a mouse is a different thing. Sometimes it's
more convenient, sometimes it's not.

But I agree with your general point - it's often quicker to keep your
hands in position, which is where knowing keybinds for everything
scores.
 
S

Steven D'Aprano

For good typists, there is high overhead to getting your hands oriented
on the keyboard (that's why the F and J keys have little bumps). So,
any time you move your hand from the keyboard to the mouse, you pay a
price.

The worst thing is to constantly be alternating between mouse actions
and keyboard actions. You spend all your time getting your fingers
hands re-oriented. That's slow.

Big deal. I am utterly unconvinced that raw typing speed is even close to
a bottleneck when programming. Data entry and transcribing from (say)
dictated text, yes. Coding, not unless you are a one-fingered hunt-and-
peek typist. The bottleneck is not typing speed but thinking speed:
thinking about program design and APIs, thinking about data structures
and algorithms, debugging, etc.

Programming is normally done in spurts of typing followed by longer
periods of thinking, testing, debugging. Micro-optimizing for the
fraction of a second it takes to re-orient your hand on the keyboard is
silly -- even if it is an optimization, not a pessimization (and I remain
unconvinced) -- it's utterly trivial. Who cares that you saved 0.1 of a
second by not moving your hand off the keyboard when you then sit there
for 20 minutes staring into space thinking about your program design?

Keyboard commands for yanking an entire line beat the mouse, but for
moving the cursor around to arbitrary positions, or copying arbitrary
pieces of text, a mouse is much faster. But either way, who cares? Typing
speed is only rarely the bottleneck, let alone micro-optimizations like
these.

The difference between a 60 wpm typist and a 90 wpm typist is normally
that the 90 wpm typist can introduce bugs 50% faster :) I'm joking, of
course, but typing *accuracy* is far more important than typing speed.
 
C

Chris Angelico

Big deal. I am utterly unconvinced that raw typing speed is even close to
a bottleneck when programming. Data entry and transcribing from (say)
dictated text, yes. Coding, not unless you are a one-fingered hunt-and-
peek typist. The bottleneck is not typing speed but thinking speed:
thinking about program design and APIs, thinking about data structures
and algorithms, debugging, etc.

Programming is normally done in spurts of typing followed by longer
periods of thinking, testing, debugging.

That's true, but it's still important to be able to type quickly. You
spend a minute or two figuring what you need to be doing, then want to
see the result as quickly as possible. The plan is in your brain; you
need to transfer it into code, save it, compile it if you need to,
deploy it to your test-box if you need to, trigger its execution, and
see its output. That's a roughly linear process, so any time saved in
any step is an overall saving, and the shorter the total time from
brain to output, the more smoothly your debugging/tinkering will be.
That's why I've spent time developing systems at work that reduce the
times required. With a single keystroke (F7 in SciTE), I can save,
compile (for the one or two components that actually get compiled),
and deploy to test-box, and a quick SIGHUP via Upstart does the rest.
I can try two or three iterations of something without "losing" what
my brain's holding onto - more if it's a trivial edit. Poor typing
speed, or replacing the F7 whack with a button click that demands a
mouse, would damage that.

ChrisA
 
S

Steven D'Aprano

As screens get larger and the amount of text on them increases, it's
likely to get more and more useful to use a mouse... but personally, I
still find the switch-to-mouse operation so clunky on anything except a
Thinkpad that I'll use the keyboard even if it's a bit slower. (Why are
Thinkpads different? Because the mouse, which is excellent, is right
under my fingers, between G/H/B.

You mean those horrible nipple things?

Ewwww. Ewwww. Damn things get the tactile feedback *completely* wrong.
They're even worse than those awful little mousepads that you stroke.

Frankly, nothing comes even close to a real mouse for feedback and ease
of use. Maybe a stylus. But that's it.
 
C

Chris Angelico

You mean those horrible nipple things?

Ewwww. Ewwww. Damn things get the tactile feedback *completely* wrong.
They're even worse than those awful little mousepads that you stroke.

Frankly, nothing comes even close to a real mouse for feedback and ease
of use. Maybe a stylus. But that's it.

I would guess that you used a Dell one. They're far FAR worse. We have
Dell laptops at work and I use external mice with them all. The IBM
trackpoint is far better. I can game with a trackpoint, but when I
built a Windows 7 desktop box for Alice, I had to go buy a high
precision mouse just to be able to game properly.

ChrisA
 
E

Eric S. Johansson

Frankly, nothing comes even close to a real mouse for feedback and ease
of use. Maybe a stylus. But that's it.

before tremors, I would agree with you. Stylus is amazingly good tool for
user interaction in a GUI. After tremors, not so much. For example, when
you sweep across the pad, you keep your mouse tip up, over and use
feedback from your mouse pointer to tell you when to touch down. My
tremors caused mouse clicks on tablet at about a 2 Hz rate. You can just
imagine it, hearing me move the stylus across the pad going: Tap tap tap
tap tap tap tap. Yeah, sucks to be me. A high-resolution mouse is
similarly problematic because I can make a gross motion to another part of
the screen. hitting a small target on a high-resolution screen is not easy
in the least and usually takes longer than the gross positioning across
the screen. What I would love is a mouse interface that uses a mouse
motion for a small range but a force vector like Mr. eraser head for
longer-range movement. Not exactly sure how the mouse would behave but
that's a very rough idea what would work well with my hands.
 
D

Dennis Lee Bieber

tap tap tap tap. Yeah, sucks to be me. A high-resolution mouse is
similarly problematic because I can make a gross motion to another part of
the screen. hitting a small target on a high-resolution screen is not easy
in the least and usually takes longer than the gross positioning across
the screen. What I would love is a mouse interface that uses a mouse
motion for a small range but a force vector like Mr. eraser head for
longer-range movement. Not exactly sure how the mouse would behave but
that's a very rough idea what would work well with my hands.

Sounds like you might have liked an accessory I had on my Amiga.
Basically a proportional joystick feeding an interface box which converted
the position value into a sequence of mouse movements -- in which the speed
of mouse "ticks" varied in proportion to the joystick angle. Very easy to
do large movements (just tilt the stick all the way) and still have precise
capability (barely nudge the stick). Software could also be configured to
treat a small tilt as "local movement" while large tilts mapped to absolute
screen positions.

http://www.computinghistory.org.uk/det/6748/Gravis MouseStick/
 

Ask a Question

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

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,767
Messages
2,569,570
Members
45,045
Latest member
DRCM

Latest Threads

Top