modifier duplicating/swapping (was Re: "A Word of Caution" to all newcomers)

Doug Way dway at mailcan.com
Sat Dec 4 06:15:16 UTC 2004


On Friday, December 3, 2004, at 07:57 AM, lex at cc.gatech.edu wrote:
>
> Here's my analysis from the last time this went around.  I tried to
> incorporate every issue that people have mentioned, including tutorial
> writing and power users, in order to find a good compromise.  Comments
> are welcome!  I think my proposal is a real improvement over what we
> have, but I'll leave it for the end.  If you find this interesting, why
> not try tracing this analysis but putting in your own numbers?
>
> At any rate, no one really disagreed with this analysis.  So maybe we
> should implement the solution if there are still no objections?  It's
> just a matter of putting one thing or another into the update stream.

Nice analysis!  Yes, we really ought to be able to pick a solution out  
of these and incorporate it, now that we're looking at all the angles.

Comments follow...

> ====  
> http://lists.squeakfoundation.org/pipermail/squeak-dev/2003-October/ 
> 068898.html ====
> Okay, to try and prevent a huge flame war and never seeing anything
> happen, let me try to analyze this objectively.  I will list out the
> issues and the proposals, score each proposal on each issue, and then
> compute an overall score.  The numbers are of course debatable, but  
> this
> analysis should at least let us see the overall breakdown.
>
>
> The issues are as follows:
>
> 	1.Users, especially new users, expect cut-and-paste to work the same  
> in
> Squeak as with the rest of their OS.
>
> 	2. Tutorials need to be as simple as possible to understand.
>
> 	3. Experienced users want to have more power available.
>
>
> What other issues are there to consider?

Those sound about right.

> Anyway, the proposals so far for dealing with this are:
>
> 	autoSwap:  Swap the "control" and "alt/command" keys automatically on
> different platforms.
>
> 	prefSwap: Swap the "control" and "alt/command" keys according to a
> manual preference.
>
> 	dupMain: Duplicate the cut and paste keys for control and alt, and
> leave the other bindings alone.
>
> 	prefDupMain: same as above, but it's a manual preference.
>
> 	dupAll: duplicate all the control and alt keys.  Make the original
> control keys available under something like control-shift or
> control-alt.
>
> Have I missed any?

Mmm, at this point, I think whichever proposal we go with, there would  
be a preference to turn it off.  So I'd assume that a preference would  
be there, we're just considering what would be turned on by default.

swapAllForWin: Swap the "control" and "alt/command" keys automatically  
on Windows by default. (via the automaticPlatformSettings pref)

swapMainForWin: Swap control and alt/cmd keys for the 8 common editing  
operations on Windows by default.

dupAll: Duplicate all control and alt/cmd keys by default. (on all  
platforms)

dupMain: Duplicate control and alt/cmd keys for the 8 common editing  
operations by default.

swapAndDupPrefsTurnedOff: The current situation, with prefs available  
but turned off by default.  (similar to your prefSwap/prefDupMain)

I think those are the main choices.  You could also have  
dupAllForWin/dupMainForWin, but I think those would be too inconsistent  
between platforms.

> Okay, let's score the proposals on each issue:
>
> On Issue #1, I would say:
>
> 	10  dupMain, dupAll
> 	8  autoSwap
> 	2 prefSwap, prefDupMain
>
>
> The duplicating options are as good as it gets on Issue #1.  autoSwap  
> is
> just as good when it works, but there is a non-zero possibility that
> auto-swapping will get it wrong for a particular user.  The
> preference-based swaps seem worst on this particular issue, because it
> doesn't really help brand new Squeak users.

Sounds right.

> On Issue #2, here's my ordering:
>
> 	10 dupAll
> 	9 prefDupMain
> 	8 dupMain
> 	7 prefSwap
> 	4 autoSwap
>
>
> These are the most tentative of my scorings.  I may well simply be
> uncreative here on how to document something, or on what problems may
> arise.  But here goes an initial attempt.
>
> dupAll is cake to document -- just talk about "command-X" all the time
> and have a few sentences at the beginning say that this means any of
> control, alt, meta, or command.  You could even leave out the  
> sentences,
> and most users (though not all) will experiment and figure out what you
> mean anyway.
>
> dupMain requires different keys to be documented in different ways.
> However, the advantage is that the author could write as if one mapping
> or the other is being used, and simply ignore the duplication on the
> other keys.  prefDupMain is slightly better, because a tutorial writer
> can assume the preference is off and thus that the keys are in
> particular locations.

I would score dupMain almost the same as dupAll, maybe 9 vs 10.  With  
dupAll, you'd only really be able to talk about one set of bindings.   
Same could be true for dupMain, then, er, sort of.

Hmm, one unstated disadvantage of the dup* options versus the swap*  
options is that the dup* options sort of create a third set of key  
bindings, whereas right now (or with swap*) you only have two sets of  
key bindings.  How would help/command-key help look with the dup  
options?  Oh wait, I guess only dupMain really creates three sets of  
key bindings.  Argh.

I guess yet another option would be to have dupMainNoExtraBindings,  
which just loses the 8 extra bindings and not have them on ctrl-shift,  
so you still just have 2 sets of key bindings.  (Maybe that's what your  
dupMain was.)  You'd have to turn off the preference to get them back.

> autoSwap is very problematic for documentation, especially for
> tutorials: there are two possible keys for users to press, and one of
> them is very wrong.  If a user experiments to try and figure out what
> you mean, they can put their Squeak session into a very confusing state
> -- e.g., they open up a comparison window instead of doing a cut
> operation.  This is especially bad when it's a very basic hotkey like
> cut or paste, because the user is usually concentrating on a
> higher-level goal when it happens.  It has been proposed that we make  
> up
> two new pseudo-keys such as "mod" and "command", but now new users  
> have consult a lookup table every time they want to use a hotkey.

I suppose swapMainForWin (my original suggestion) is even more  
problematic for documentation, since only some keys would be swapped,  
and only on one platform.  Maybe rate that a 2 on this issue.

> prefSwap has the same issues as autoSwap, except that tutorial writers
> in particular can assume the keys are in the original location.
> However, there are still problems for non-tutorial documentation, so I
> only give it a 7.
>
>
> On Issue #3:
>
> 	10 prefSwap
> 	9 autoSwap
> 	8 prefDupMain
> 	7 dupMain
> 	6 dupAll
>
> The differences are not that large here, assuming each proposal is well
> implemented.  All features would still be available to experts under  
> all
> proposals, but under some they would require more difficult key
> sequences.

Agreed that the differences aren't too large here, since any experts  
should be able to turn off the default pref if it bothers them too much.

> prefSwap is at the top because it allows all the hotkeys *and* it is
> configurable.  autoSwap also has all the power, but it's at fixed
> keybindings for a particular platform.  prefDupMain removes some
> convenient hotkeys when it is turned on, but it can easily be turned  
> off
> by an expert.  dupMain cannot be turned off.  Finally, dupAll removes a
> lot of hotkeys from the simple control-key to the more complex
> control-shift-key.

My dupMain (a pref which is on by default) would score an 8, I think.   
(I think your prefDupMain was a pref which is off by default, it wasn't  
clear.)

One very important thing before considering dupAll/dupMain is whether  
the control-shift modifier actually works reasonbly across platforms.


> Would anyone like to modify these scorings?  Please be honest, and try
> it out before you read the overall scores below.
>
>
> Okay, here's the overall scores:
>
> 	
> 	autoSwap:    8+4+9 = 21
>
> 	prefSwap:    2+7+10 = 19
>
> 	dupMain:    10+8+7 = 25
>
> 	prefDupMain:    2+9+8 = 19
>
> 	dupAll:    10+10+6 = 26
>
>
> There you have it.  dupAll and dupMain are the winners, and prefSwap,
> autoSwap, and prefDupMain are approximately tied for second place.
>
> We should do one of dupAll or dupMain.  dupAll won by a point, but even
> though I like dupAll I suppose one point is too close for this kind of
> analysis.

It's suddenly late enough that I've lost the mental energy to tally my  
scores, except that I'd give my dupMain a point or two extra on issues  
2 & 3 vs dupAll, and would probably lean toward dupMain or  
dupMainNoExtraBindings.  swapMainForWin is kind of rough to document, I  
admit.

Whew, there is no single solution that is absolutely problem-free.  But  
they're still better than the current situation for Windows beginners.

- Doug


>
> Preferences and swapping are both losers:  they help with one issue and
> suffer on another.
>
>
> And you know this is all correct because it has numbers and it is
> computed on a computer.  If there are any holdouts who disagree, I
> suppose I will post a graph to really nail it down.
>
>
> -Lex
>




More information about the Squeak-dev mailing list