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

SEUL: vi, end-users, and distribution issues [very long, 10k]

[this was intended to be short, but exploded before I could get handle on it]

I feel I must comment, as it seems that few people are quite grasping 
Jean-Francois' point(s).

vi(1) was written 30 years ago, when space and speed were both an issue,
teletypes were the only interface available, and the only users of Unix were
university professors and the random student, all with the time and
inclination to use the system, and hence the inclination to learn to use it.

On the other hand, consider Windows, and the type of user you find in front 
of such a system.  I will use the example of my mom.  She just recently got 
her e-mail address, and is now capable of tooling around in Netscape Mail 
(yeah, I know, but it works for now).  She uses a computer at the hospital 
where she works, but only because she will soon have no choice (paperless 
charting, etc.).

Had I started her out on a system where she would be presented with an xterm 
showing vi, she would have stopped right there.  Were I to succeed in getting 
her to try to learn, she would soon give up and go back to using pencil and 
paper exclusively.  Try it with anyone who doesn't make a living by, or at
least dabble with, computers.  You'll see the same thing every time.

Linux has yet to reach 95% of the market: end-users.  Yes, I know biltmore 
and hurricane are being used by a few "end-users", but that is the exception, 
and I have a feeling that these people aren't "true" end-users, in the sense 
that my mom is.  If we can reach the other 95% of the market, Windows ceases 
to be an issue, as I have zero doubt that Linux can bulldoze Microsoft out of 
a significant (hopefully >50%) share of the PC OS market, with a little work.

To make Linux acceptable to the end-user, it must be friendly, and work as 
expected with the least amount of expended energy on the part of the user.  
Throwing people (indiscriminately or not) into such editors as vi or emacs is 
the surest possible way to scare people back to the known, "intuitive" 
world of Windoze.  Giving them something that is painfully obvious (or just 
painful, to a "guru", such as inhabits this list) to use is the only way to
keep people coming back.

The project I'm heading, SEUL (Simple End-User Linux, www.seul.org), intends 
to create such a system.  One of my primary goals is this: "The user will 
*never* see a commandline (or an xterm, for that matter) unless they 
specifically ask for it.  If they ask for it, we can assume that they know 
what they're doing."  That means no vi(1), and likely no Emacs, as it is just 
as complex.

This is a simplistic goal, of course, as it implies that everything that an 
end-user would never want to deal with (much less learn) is text-based.  
That's not the case, of course.  X resources are a perfect example: they're 
cryptic, numerous, and difficult to use/change.  NOTE: I'm speaking from the 
perspective of and end-user here, but I can't even figure out X resources 
myself (haven't spent much time at it, though), so that shows you how much a 
pain they are.

Certain applications exist to deal with this, like Linuxconf, and DotFiles.  
I like both of these packages, as far as they go.  They do what they intend 
to very well, and I wish the groups luck.  But they assume a certain level of 
understanding about what is being modified.  End-users do not want to deal 
with these programs because of the underlying assumptions about what the user 

Technical knowledge, especially relating to computers, comes in layers.  You 
must know what a command-line is before you can be taught what arguments are 
(besides what you get from a teenager... [I shouldn't say that, I have almost 
a year left as one myself :)]).  You can't understand host (let alone user) 
masquerading until you know how addresses are constructed, routed, and parsed. 
Considering that the target audience here (end-users) has either never used a 
computer before, or has used Windoze, you cannot assume that they know 
anything of these underlying processes.

OK, I should get back to vi(1).  If you were to present an end-user with vi, 
you would have to teach them first the i command, then what escape does, then 
the : command line, then the d? commands, and two hours later you have 
someone who, at least for the next hour, can do very basic editing.  Now 
exit vi, turn off the computer, and come back tomorrow.  Fish out your 
patience, because you'll spend another two hours teaching them the exact same 
thing.  The information is not retained because it's too much to absorb at 
one time for someone who doesn't "do computers".  They simply have better 
things to think about.

End-users use a computer for one reason: to get real work done.  This may be 
sending and receiving an e-mail once or twice a week to a far-off relative 
(as in my mom's case), or it may be writing a sales proposal for the next big 
client.  Either way, they have a job to do, as well as other things to do.  
They will absolutely refuse to RTFM when all they want to do is type out a 
letter.  "I'll use a typewriter, at least that's easier!".  And believe it or 
not, they're right!

Consider the difference between writing a letter or sales proposal on a 
typewriter.  Sure, it's courier or equivalent, but it works.  Very simple: 
you hit a key, a letter appears on the page.  Anyone who can write can type, 
albeit slowly at first.

So why do people use a computer?  Because it has some serious advantages.  It 
may not be faster, but consider: you can erase characters without getting 
white stuff all over your hands, you can re-arrange sentences if something 
sounded stupid, you can have the computer spell check it, and best of all you 
can have the computer send a copy of it around the globe in a matter of half 
a second, without paying postage or long-distance charges.

Now, given that you have all these advantages, you'd think anyone would jump 
at the chance to use a computer: "It can do so many *cool* things!".  Wrong.  
You have to prove to them that the advantages outweigh the disadvantages, and 
then you have to overcome their prejudices (if any).

"Disadvantages, what disadvantages?"  Plenty.  First, a computer is no faster 
for writing a letter than typing it out.  If you can type 30wpm on a 
typewriter, you might be able to squeeze 35wpm out of a computer (because the 
keys are easier to press, no substantial weight behind them).  So what?  You 
still have to turn it on, wait for it to boot, load up the program, type it 
out, edit it (now that you can), turn on the printer, print the letter, save 
the file, close the apps, shut down and turn off the computer.  With a
typewriter, all you have to do is lug it out of the closet and put the paper 
in.  Simple as that.

So we have to provide enough advantages to using the computer that they won't 
want to use the typewriter any more.  OK, that's easy, most of the advantages 
are listed a few paragraphs up.  But forcing a new user to use vi, or 
requiring that they set up their computer to be friendlier, is not an 
advantage.  It incurs a significant penalty in time and likely money (books),
which almost completely negates any advantage that a computer might have had. 
End-users do not have the time or patience for a learning curve, steep or not.

An end-user-friendly Linux system (not necessarily RedHat!) must be designed.
This means not presenting the user with vi or other arcania.  It has been
stated before, and I reiterate: this does *not* mean that such utilities will 
not be available.  Consider tech support in the case where a machine is 
hosed.  Without vi, many systems would be irreparable.  vi in many such cases 
is the only way to get anything working.  I know, I've done it many times.  
Give me a system without vi available, and I'll give it right back!

A large question has solidified over the last few days, watching this thread:
Is RedHat really ready for the end-user market?  While I agree that Hurricane 
is much easier to use than previous incarnations, it still assumes that 
underlying knowledge.  Much more serious changes are required in order to 
directly compete with Windoze, and it sounds to me that there is a large, 
vocal group of people who do not want Linux 'polluted' by such frivolities. 
If that is the case, then perhaps a separate distribution really is required 
for end-user systems.

Either way, SEUL is committed to bringing Linux into direct competition with 
Windoze and equivalent.  Whether that involves providing components to 
enhance an existing distribution such as RedHat, or diverging and creating a 
wholly separate (though likely RedHat-based) distribution depends on what 
RedHat's intended direction is for their distribution.  If they are committed 
to making it end-user-friendly, then they have a long way to go (as will 
SEUL).  If they simply want to make it the best Linux distribution out there, 
catering towards specifically computer users (be they newbies or gurus), then 
they are 99% there.  They have done a wonderful job, and I hope they get that 
last 1% done really soon, cause I want to use it!

If you are interested in working on the SEUL Project, either as a coder or 
any of the multitude of other sub-projects, or simply participating in 
the discussions, check out our web site at http://www.seul.org/.  We have a 
number of lists, the most general of which is seul-project (which this 
message is also being sent to).  If you just want a low-traffic list, sign on 
to seul-announce from the web page.  I don't anticipate more than 1-2 messages
per week average, maximum, eventually.

You'll be hearing more about SEUL in another week, so stay tuned to your 
favorite *-announce!


     Erik Walthinsen <omega@seul.org> - SEUL Project system architect
       /  \                SEUL: Simple End-User Linux -
      |    | M E G A            Creating a Linux distribution
      _\  /_                         for the home or office user