9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: "rob pike" <rob@plan9.bell-labs.com>
To: 9fans@cse.psu.edu
Subject: Re: Re[4]: [9fans] home, end ^h^j^k^l
Date: Sat, 19 May 2001 10:14:25 -0400	[thread overview]
Message-ID: <20010519141427.A5005199C1@mail.cse.psu.edu> (raw)

Yes, the behavior of the escape key (selecting typed text when nothing
is selected; deleting it when something is), backspace, typing when
text is selected, all this and more comes from Smalltalk, which was
the nicest thing to take ideas from when the precursors to all this
software were written, back in the early 1980s.

My primary regret is in this area is the different behavior of ESC
between sam and acme vs.  rio.  Rio's use of ESC is a great feature,
but it should have been placed on a different key.  But then, which
key on which keyboard...?

> Is it that the people who made the choices used different keyboards to
> the WinTel world?

Yes. The lack of support for Insert, Delete, the Windows key, End,
Page Up, etc.  all stem from the lack of those keys on the keyboards
this software was developed for.  (Plan 9 didn't even run on PCs in
its early days, and I bet the Windows key didn't exist before
Windows.)  Also in the early days of Plan 9 there was a variety of
machines (now, sometimes it seems PCs are the only machines in the
world) and a consequential variety of keyboards.

Are we settling in?  Does everyone agree that ^C is copy and ^V is
paste?  I doubt it.  Do we know that all keyboards will have the keys
we need?  I'm not sure.  Seems like you should decide what features
you want in your user interface, and map those to the available keys,
rather than the other way around.

There are a few decisions I made in Plan 9 that I expected to get
blasted on but that turned out not to generate much heat.  One of
those is that there is no equivalent of stty; the control codes are
fixed in the software.  My argument was that the complexity isn't
worth the convenience; you'll learn what keys do what and adapt.  Let
the other systems use stty to match Plan 9; they're all so proud of
that interface.

I wrote a paper called "Window Systems Should be Transparent".  It's
on my web page; go have a look.  (It predates Plan 9.)

> functioning cursor keys would still be a speed benefit.

This feels true but is false.  There were some fascinating experiments
done a few years ago in which people were given a long, tedious
editing task.  Some of the people were keyboard fans, some were mouse
fans.  Both folks were asked to do the task two ways, in random order,
once using the mouse to do the editing, once using cursor keys etc.
Regardless of their predilections, which was stated up front, after
the experiment everyone who did the task agreed that it was faster to
use the keyboard than the mouse to complete the task.  Everyone.

Here's the kicker: everyone was wrong.  They were being timed, and in
fact the reverse was true.  Although they thought the keyboard was
faster, doing the task using the mouse was faster for everyone, by a
substantial fraction.

The explanation, besides the obvious that arrow keys are actually
pretty slow if you're going more than a line or character, is that
people feel the mouse wastes time because you need to grab it and move
it, but it's time well spent.  The part of the brain that uses
keyboard commands to move the cursor is a higher-order function, and
thinking and planning how to use the keys to get to the destination
blocks thinking about the editing task at hand.  But using the mouse
is done by a lower-order part of the brain, which keeps the editing
part of the brain clear.  There's less task switching going on when
you use the mouse, so you work more efficiently.

If you don't believe me, the story is here:
	http://www.asktog.com/readerMail/1999-12ReaderMail.html
Thanks to some forgotten 9fan who mentioned this a while back.

I didn't know about these experiments when I said, long ago, that
using arrow keys to point at a display is like telling someone how to
go somewhere by giving directions, while using a mouse is like
pointing at a map.  In fact, I never used a screen editor until I had
a mouse, for just this reason.

Before this discussion devolves into the usual silliness, here's
something fun we've been working on.  Who last modified those ether
drivers?

	pc% ls -m ether*.c
	[sape]     --rw-rw-r-- M 2812 sape sys  2820 Apr 18 12:23 ether2000.c
	[sean]     --rw-rw-r-- M 2812 sape sys 34782 May  3 10:19 ether2114x.c
	[sape]     --rw-rw-r-- M 2812 sape sys  4644 Apr 18 12:23 ether589.c
	[sean]     --rw-rw-r-- M 2812 sape sys 13352 May  3 10:18 ether79c970.c
	[sape]     --rw-rw-r-- M 2812 sape sys  6665 Apr 18 12:24 ether8003.c
	[sean]     --rw-rw-r-- M 2812 sape sys 25364 May 17 10:15 ether82543gc.c
	[presotto] --rw-rw-r-- M 2812 sape sys 28587 Apr 23 13:52 ether82557.c
	[sape]     --rw-rw-r-- M 2812 sape sys 17544 Apr 18 12:24 ether8390.c
	[jmk]      --rw-rw-r-- M 2812 sape sys  3745 May  2 17:02 etherec2t.c
	[sean]     --rw-rw-r-- M 2812 sape sys 47826 May 17 10:14 etherelnk3.c
	[jmk]      --rw-rw-r-- M 2812 sape sys 24348 May  2 16:59 etherga620.c
	[sape]     --rw-rw-r-- M 2812 sape sys 15079 Apr 18 12:26 ethersmc.c
	[jmk]      --rw-rw-r-- M 2812 sape sys 28045 May  8 13:18 etherwavelan.c
	pc% 

The -m flag reports the muid (modifier uid) of the file, as reported
in the new 9P protocol.  This is the person who most recently modified
the file, instead of the person who created it.

History reports the information over time:

	pc+% history ether82557.c
	Apr 23 13:52:18 EDT 2001 ether82557.c 28587 [presotto]
	Apr 23 13:52:18 EDT 2001 /n/dump/2001/0519/sys/src/9/pc/ether82557.c 28587 [presotto]
	Apr 18 13:33:20 EDT 2001 /n/dump/2001/0423/sys/src/9/pc/ether82557.c 28510 [jmk]
	Feb 28 18:40:30 EST 2001 /n/dump/2001/0418/sys/src/9/pc/ether82557.c 28445 [jmk]
	Nov 11 10:30:56 EST 2000 /n/dump/2001/0228/sys/src/9/pc/ether82557.c 28058 [sape]
	Jun 19 00:05:20 EDT 2000 /n/dump/2000/1111/sys/src/9/pc/ether82557.c 28058 [jmk]
	...

The history command could now be renamed 'whotoblame'.  And as always,
history -D will tell you why to blame them.

-rob



         reply	other threads:[~2001-05-19 14:14 UTC|newest]

Thread overview: 171+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-08-18 15:34 [9fans] Re: Solaris thread scheaduling rob pike
     [not found] ` <rob@plan9.bell-labs.com>
2000-08-02 14:48   ` [9fans] pipefile rob pike
2000-08-02 15:49     ` James A. Robinson
2000-08-18 20:25   ` [9fans] Re: Solaris thread scheaduling Tom Duff
2000-09-06 21:59   ` [9fans] Reliable Cray Y-MP C90 Supercomputer rob pike
2000-09-06 22:02     ` James A. Robinson
2000-09-06 22:14       ` Boyd Roberts
2000-09-06 22:11     ` Boyd Roberts
2000-09-07 22:18   ` [9fans] new versions of graphics programs? Tom Duff
2000-11-01 22:23   ` [9fans] /n/smtp rob pike
2000-11-01 22:38     ` Scott Schwartz
2000-11-24  0:41   ` [9fans] Crazy idea... or a new project? rob pike
2000-11-24  0:48     ` Boyd Roberts
2000-11-24 22:13     ` Scott Schwartz
2000-11-24 22:24       ` Boyd Roberts
2001-02-06 17:11   ` [9fans] azerty [french] keyboard support rob pike
2001-02-06 19:10     ` Scott Schwartz
2001-02-06 19:23     ` Dan Cross
2001-02-07 15:23   ` [9fans] 9p2k, fsync rob pike
2001-02-07 18:42     ` Scott Schwartz
2001-02-08  1:19     ` Dan Cross
2001-02-08  9:43       ` Douglas A. Gwyn
2001-02-14 13:51   ` [9fans] isatty rob pike
2001-02-14 16:42     ` Scott Schwartz
2001-03-26 14:12   ` [9fans] sam mod for delete-forward rob pike
2001-03-26 15:37     ` Douglas A. Gwyn
2001-03-27  8:25       ` Boyd Roberts
2001-03-27 14:01         ` Sam
2001-03-27 16:51           ` Dan Cross
2001-03-28  8:37             ` Douglas A. Gwyn
2001-03-29  8:26               ` Boyd Roberts
2001-03-26 15:42     ` Scott Schwartz
2001-05-10 14:59   ` [9fans] snprint(), getfields() specification rob pike
2001-05-10 16:42     ` Scott Schwartz
2001-05-10 18:13     ` Steve Kilbane
2001-05-10 21:38       ` Boyd Roberts
2001-05-11  6:51         ` Steve Kilbane
2001-05-19 14:14   ` rob pike [this message]
2001-05-19 14:26     ` Re[6]: [9fans] home, end ^h^j^k^l Matt H
2001-05-19 22:45       ` [9fans] ls -m Scott Schwartz
2001-05-19 22:50         ` Boyd Roberts
2001-05-19 15:35     ` Re[4]: [9fans] home, end ^h^j^k^l James A. Robinson
2001-05-19 20:36     ` Boyd Roberts
2001-05-19 23:30     ` Richard Elberger
2001-05-20  2:37     ` Boyd Roberts
2001-05-20  7:03     ` Lucio De Re
2001-05-20 11:16     ` paurea
2001-05-20 13:11       ` Boyd Roberts
2001-05-20 13:04     ` Boyd Roberts
2001-05-23  8:24     ` Randolph Fritz
2001-05-23  8:46       ` Re[6]: " Matt H
2001-05-23  9:04         ` Boyd Roberts
2001-05-20  0:16   ` [9fans] ls -m rob pike
2001-05-20  0:31     ` Boyd Roberts
2001-05-20  1:38     ` [9fans] mouse vs key Scott Schwartz
2001-05-20  6:29       ` Dan Cross
2001-05-20  8:09       ` Matt H
2001-05-20 11:35         ` Re[2]: [9fans] mouse vs key - nethack matt
2001-05-20 13:13           ` Boyd Roberts
2001-05-20 12:50         ` [9fans] mouse vs key Boyd Roberts
2001-05-29  4:27   ` [9fans] src vs db rob pike
2001-05-29  4:37     ` Scott Schwartz
2001-07-11 19:22   ` [9fans] sam vs acme rob pike
2001-07-11 20:08     ` James A. Robinson
2001-08-14 12:54   ` [9fans] User Interface rob pike
2001-08-14 15:01     ` James A. Robinson
2001-08-16 13:45     ` phaet0n
2001-08-20  8:57     ` Randolph Fritz
2001-12-02  3:10   ` [9fans] plumb rob pike
2001-12-02  3:31     ` Scott Schwartz
2002-01-30  5:52   ` [9fans] venti rob pike
2002-01-30  6:23     ` George Michaelson
2002-01-30  8:07     ` paurea
2002-01-30 11:17     ` Boyd Roberts
2002-03-01  6:20   ` Fwd: Re: [9fans] samuel (fwd) rob pike
2002-03-01  6:34     ` George Michaelson
2002-03-01 12:04     ` Boyd Roberts
2002-04-27 16:35   ` [9fans] Fourth Release of Plan 9 Now Available rob pike, esq.
2002-04-27 18:24     ` Scott Schwartz
2002-04-27 22:14     ` Laura Creighton
2002-04-29  9:37     ` Andrew
2002-06-28 16:49   ` [9fans] dumb question rob pike, esq.
2002-06-29  2:23     ` Scott Schwartz
2000-09-07 21:57 [9fans] new versions of graphics programs? rob pike
2000-09-07 22:50 ` Jim Choate
     [not found]   ` <ravage@einstein.ssz.com>
2000-09-07 22:35     ` Tom Duff
2000-09-07 23:24       ` Jim Choate
2000-09-08 15:28         ` please_no_spam_to_
     [not found]           ` <D.M.Pick@qmw.ac.uk>
2000-09-08 16:43             ` Tom Duff
2001-05-19  8:29 Re[2]: [9fans] home, end ^h^j^k^l Russ Cox
2001-05-19  8:44 ` Re[4]: " Matt H
2001-05-19  8:48 Russ Cox
2001-05-19 20:28 ` Boyd Roberts
2001-05-19  9:17 forsyth
2001-05-19 15:39 rob pike
2001-05-19 17:07 Re[2]: " Quinn Dunkan
2001-05-19 16:00 ` Re[4]: " Matt H
2001-05-19 20:46   ` Boyd Roberts
2001-06-09 17:22 [9fans] could those of you who have students check this out for forsyth
2001-06-09 18:50 ` [9fans] Re: the 'science' in computer science andrey mirtchovski
2001-06-09 17:56   ` Boyd Roberts
2001-06-11  8:27     ` pac
2001-06-11 15:19     ` Dan Cross
2001-06-11 21:43       ` Boyd Roberts
     [not found]       ` <0cb501c0f2bf$97cacea0$e8b7c6d4@SOMA>
2001-06-11 22:43         ` paurea
2001-06-12 14:18           ` Dan Cross
2001-06-12 15:50             ` Boyd Roberts
2001-06-12 18:48               ` Dan Cross
2001-06-12  0:09   ` Scott Merrilees
2001-06-12  0:16     ` Boyd Roberts
2001-06-12  0:42       ` Scott Merrilees
2001-06-12  1:08         ` Boyd Roberts
     [not found]   ` <0cc301c0f2c0$78949560$e8b7c6d4@SOMA>
2001-06-12 14:12     ` Dan Cross
2001-06-16 23:34   ` Matt
2001-06-28 21:29     ` Boyd Roberts
2001-06-28 22:03       ` Matt
2001-06-28 23:20         ` George Michaelson
2001-06-29 21:27           ` Boyd Roberts
2001-07-18 15:49           ` Ralph Corderoy
2001-06-29  4:30         ` Lucio De Re
     [not found] <vikki@proweb.co.uk>
2001-06-10 17:32 ` [9fans] string to list? vikki
2001-06-10 17:47   ` Boyd Roberts
2001-06-10 17:55   ` Boyd Roberts
2001-06-10 18:03   ` Scott Schwartz
2001-06-10 21:48     ` Matt
2001-06-10 22:24       ` Scott Schwartz
2001-06-10 22:30         ` Boyd Roberts
     [not found] <matt@proweb.co.uk>
2001-06-12  0:39 ` [9fans] help, i'm in a wet paper bag and I can't get out Matt
2001-06-12  0:55   ` Scott Schwartz
2001-06-12  1:12     ` Boyd Roberts
2001-06-12  1:00   ` Boyd Roberts
2001-06-12  1:30     ` Jonathan Sergent
2001-06-15  8:27     ` Hermann Samso
2001-06-15 11:53       ` Boyd Roberts
2001-06-15 12:18         ` Matt
2001-06-15 14:01         ` Matt
2001-06-15 14:25           ` Boyd Roberts
2001-06-26 16:33 [9fans] bitsy question John Packer
2001-06-26 17:10 ` [9fans] " Dan Cross
2001-06-26 19:51   ` John Packer
2001-06-26 20:34     ` Dan Cross
2001-06-29 22:32       ` Boyd Roberts
2001-06-27  1:15     ` [9fans] Two cpu servers? Ish Rattan
2001-06-26 20:09   ` [9fans] Re: bitsy question John Packer
2001-06-26 20:36     ` Dan Cross
2001-06-26 20:18   ` Latchesar Ionkov
2001-06-26 20:28     ` Matt
2001-06-26 22:13       ` Steve Kilbane
2001-07-12  8:42 [9fans] architectures forsyth
2001-07-12 13:56 ` Laura Creighton
2001-07-12 16:13 ` Ozan Yigit
2001-07-12 16:33   ` Matt
2001-07-12 18:12     ` Scott Schwartz
2001-07-12 18:16       ` Martin Harriss
2001-07-12 18:43       ` Dan Cross
2001-07-13 14:52         ` Douglas A. Gwyn
2001-07-13 15:13           ` Boyd Roberts
2001-10-25 17:55 [9fans] Virtual memory in BSD and Plan9 Russ Cox
2001-10-25 18:29 ` William Josephson
2001-10-26  8:09   ` [9fans] acme bug/annoyance? Matt
2001-10-26 11:36     ` rob pike
2001-10-26 14:43       ` Scott Schwartz
2001-10-29 10:16   ` [9fans] Virtual memory in BSD and Plan9 John S. Dyson
2002-01-20 20:02 [9fans] Getting started in Plan9 - help Roshan James
2002-01-20 21:01 ` Matt H
2002-01-20 22:02   ` Scott Schwartz
2002-01-22  9:54     ` ozan s yigit
2002-01-23 10:05       ` Bakul Shah
2002-01-21 10:22   ` Boyd Roberts
2002-01-21 10:40     ` John Murdie
2002-01-20 21:03 ` William S.
2002-01-20 21:34 ` William Josephson
2002-01-21  6:53 ` cej

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20010519141427.A5005199C1@mail.cse.psu.edu \
    --to=rob@plan9.bell-labs.com \
    --cc=9fans@cse.psu.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).