emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Enabling Transient Mark Mode by default


From: Jason Earl
Subject: Re: Enabling Transient Mark Mode by default
Date: Wed, 20 Feb 2008 14:13:20 -0700
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux)

Evans Winner <address@hidden> writes:

> I am not an Emacs developer, but am an avid user, and
> thought my input might be useful.  It strikes me that
> enabling hand-holding features by default in Emacs may not
> actually be a favor to new users.

I think that this depends on whether or not the person would
use Emacs or abandon it for some other text editor without the
hand holding.  Once upon a time Emacs was so much better than
the competition that it could afford to be impenetrable.
People who were serious about editing text were going to end
up using Emacs whether they liked it or not.  That's not the
case anymore.

> Very early on in my learning to use Emacs (several years
> ago) I found out how to enable transient-mark-mode.  I
> enabled it blindly on somebody's advice, in essence, because
> I didn't know about or understand the actual use for which
> the mark is designed.  I didn't question the feature because
> it mimics one that I was used to from other applications.
> It was only as a result of reading this thread that I looked
> into the use of the mark and have begun to understand what I
> have been missing.  So, my experience is similar (though not
> identical) to that of someone new to an Emacs in which
> transient-mark-mode is enabled by default.

I had precisely the same thing happen to me.  In fact, I was
halfway through a long rant about the importance of making
Emacs more friendly to beginners when I decided to inform
myself a little better.  So I took a little bit of time to
actually read the part of the Emacs manual that deals with the
point and mark.

Like you, after a bit of experiment I have decided to turn off
transient mark mode for a bit so that I can learn to use the
point and mark more effectively.  I am starting to believe
that my use of transient-mark-mode has caused me to miss out
on one of Emacs' more useful features.  However, there is no
question that a visible representation of the region is very
helpful to someone that is learning to mark regions for the
first time.  I know that it certainly helped me.  Before I
started using Emacs I had never highlighted a block of text
with the keyboard.  In fact, I didn't even know that this was
possible on a more Windowsy editor until very recently :).

Personally, I think that Emacs developers should spend more
time and effort making Emacs approachable to new users, and
more user-friendly defaults is a great place to start.  After
all, I would bet that none of the people on this list spend
any time in a plain vanilla Emacs without a .emacs file.  The
vast majority of people that currently use Emacs understand
how to customize it.  Choosing defaults to satisfy current
users is a waste of time and energy.  The inveterate Emacs
user is going to customize Emacs to his or her specifications.
Only newbies are stuck with the defaults.  As such, the
defaults should be designed to hold the hand of the new user
that doesn't know how to customize Emacs.

> On the other hand, at that time, I was one of those who had
> the idea that GUIs are for wimps, so I also disabled
> menu-bar-mode and tool-bar-mode.  The result was as
> intended: I was forced to learn the Emacs way of doing many
> things and now, though there was a bit more initial
> investment in learning, I am very happy I did it.  I believe
> the time invested has paid off, even though I no longer have
> any objection to GUIs (if designed well), and even though I
> leave those features turned on now.

I certainly believe that we should encourage new users to
learn to use Emacs' key commands effectively.  However, the
real problem that Emacs faces currently is that there are an
increasing number of powerful editors that offer many of
Emacs' advanced features without Emacs' ridiculously steep
learning curve.

I am a true believer in Emacs' way of doing things.  If you
really want to learn to edit text effectively the smartest
thing you can do is find an accomplished Emacs user and learn
his or her tricks.  Heck, that's the real reason why I am
subscribed to this list.  I want to learn to use Emacs more
effectively.  The problem is that other editors have, over the
years, closed the gap considerably on Emacs.  If Emacs is
going to stay relevant and attract another generation of
hackers it can't afford to be actively hostile to newcomers.

> One principle of teaching is that learners tend to strongly
> favor the first mental model of something or method to which
> they are exposed.  From Wikipedia: `` `Unteaching' wrong
> first impressions is harder than teaching them right the
> first time.''[1]  In general, tools or systems designed to
> do something really well require a greater initial outlay of
> time or money to use, but pay off over the long term.

The problem is that the first impression that Emacs gives is
that it is an outmoded text editor with non-standard
keystrokes.  The non-standard keystrokes bit is probably
unavoidable, but the "outmoded" bit could be avoided easily.
Emacs has tons of neat features that simply aren't presented
effectively to the casual user.

transient-mark-mode is a perfect example.  Setting an
operating on regions is a huge part of using Emacs effectively
and yet Emacs has historically forced new Emacs users to learn
how the region works the hard way.  As of today I can see why
people might want transient-mark-mode off in their own setup.
But the only reason to default to having it off in a vanilla
Emacs is that if you *want* to be hostile to newbies.

Take this quote from the Emacs manual:

      When Emacs was developed, terminals had only one cursor,
   so Emacs does not show where the mark is located-you have
   to remember.

To a newbie learning Emacs for the first time this sounds
suspiciously like, "When I was a boy we didn't have fancy
computers like we do today.  We had to toggle the bits in our
files by waving magnets over the platters of the hard drives.
What's more, we liked it that way."  You might as well tell
aspiring young hackers to get off your lawn while you are at
it.

The alternative, as the manual points out, is to enable
transient-mark-mode and have Emacs work like most newbies
would expect a text editor to work.  Yes, this is possibly not
optimal for the advanced user, but the advanced user will be
able to turn the feature (or mis-feature if you will) off.

> I won't bother advocating that menus and tool bars and
> scroll bars be deactivated by default, but I would at least
> suggest that the right principle is that if a feature would
> make it actively more difficult to use Emacs in the way that
> it is fundamentally designed to be used, then that feature
> ought not to be active by default.

I completely agree that this is probably the right way to go
about learning to use Emacs effectively.  Unfortunately, I
think that this is also basically a recipe for disaster for
the Emacs project.  Faced with the prospect of learning a text
editor that is actively hostile to users that don't grok it's
Meta-Alt-Ctrl goodness such a tactic is likely to drive new
users towards the many other text editors and IDEs that are
more friendly to the uninitiated.

I wouldn't mind so much, but I personally would really like to
see the Emacs user community (and through it the Emacs
developer community) grow, not wither and die.

Jason




reply via email to

[Prev in Thread] Current Thread [Next in Thread]