Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 15 Jun 1997 19:21:13 -0400
From:      Joel Ray Holveck <joelh@gnu.ai.mit.edu>
To:        molter@logic.it
Cc:        adrian@obiwan.psinet.net.au, vas@vas.tomsk.su, chat@FreeBSD.ORG
Subject:   Re: To UNIX or not to UNIX ;-). Was: PPP problems.
Message-ID:  <199706152321.TAA14966@ethanol.gnu.ai.mit.edu>
In-Reply-To: <Pine.BSF.3.91.970615184746.194A-100000@dumbwinter.ecomotor.it> (message from Marco Molteni on Sun, 15 Jun 1997 19:25:55 %2B0200 (MET DST))

next in thread | previous in thread | raw e-mail | index | archive | help

>> * We (ISP's) are out to provide a service to people, and make money.
>> * In order to make money we have to cater for the majority of the market,
>>   unless of course the minority want to pay us huge amounts of money :)
>> * The majority of users use a Microsoft-based OS, so the ISP which caters
>>   for the Microsoft-based OS, no matter how whacky Microsoft twist TCP/IP,
>>   PPP, or whatever into.. will be making the most money.
> Sad, but surely true.

Yes, but I can't say that we (the Unix community) haven't been guilty
of the same behaviour.  For example:
 * According to the RFC, rlogin should send a terminal type from the
'Assigned Numbers' list.  Unix rlogin, however, invariably sends
$TERM, whatever it may be.  Other OS's simply have to cope.
 * All SMTP, NNTP, etc, etc servers must recognize a newline as a line
terminator, despite the fact that the proper line terminator is a
CRLF.

Now, with the diversity of Unices out there, and since the Internet
has been Unix-dominated for several years, we have kept up the
compatibility goal of the Internet.  However, we haven't been as
faithful to inter-OS compatibility as we would like to pretend.  Mind
you, we have been a lot better than Billy Boy, but not pristine
either.

>> Get UNIX into the homes is what I say. Dress it up, make it easy to use,
>> make it pretty, make it do what people want. Once its out there, and its
>> gained some popularity, people WILL start writing more applications for
>> it.
> I agree when you say "make it do what people want". But, IMHO, the 
> problem lays in the "make it easy to use" part. 

I disagree.  It *is* possible to make good, easy-to-use interfaces
over Unix.  Let's look at NeXT for an excellent example.  (Pedants,
don't start.  I'll say that the NeXT runs a Unix clone for simplicity;
it's similar enough to not make a difference.)  It had a wonderful
user interface, even for system configuration.  Your average user
could do all of his average user-type things and never see a shell
prompt, or have to ask the local guru for help.

Let's look at a profile of J. Random Luser and his interface
requirements in the modern OS world, shall we?  Now, remember, I'm not
profiling you or me.  I'm profiling the average computer store
customer who is trying to decide whether to install Win95 or BSD on
his new computer.  Having spent most of my time in either computer
retail and repair or technical support, I feel fairly confident in
most of these assessments.  (Speaking of support, I'm going to ignore
that issue and concentrate instead on things having to do with the OS
itself.)

* Goals (roughly by importance)

** Lack of need for documentation

J. Random Luser hates to read, and doesn't understand computer terms.
Manuals are intimidating and boring to J. Random Luser, so it doesn't
matter if we have happy wonderful hypertext interfaces to extensive,
clear docs, because JRL already has a prejudice against docs.

** Ease of installation

What was the most common complaint against Win95 when it was released?
"I couldn't get it to install properly."  "I had to install it three
times to get it to work."  "It didn't recognize my hardware."  If
J. Random Luser trys to install an OS but becomes confused and fails
to install it properly, he will become frusturated and switch over to
another OS, before even logging in once.  First impressions are the
most important, guys.

** Ability to get things done

People buy on emotion, but must justify their actions internally.
When I was selling computers, I would first make the person feel happy
and comfortable about the shop, their computer shopping, and the
computer I wanted them to buy.  (This would be the computer that best
fit their needs; I do believe in happy long-term customers.)  Next,
however, I would have to help them justify to themselves why they
bought that computer.  It is the same with an OS.  Even though 80% of
the people who purchase a computer (and OS) today don't know what they
want to do with it, they still must be able to perform their tasks.
Things such as bookkeeping, word processing, etc.

* Requisites (in no particular order)

** Complete graphical user interface

J. Random Luser hates a shell prompt.  He hates to have to remember
anything, particularly commands.  Point and drool may not be the
fastest or most flexible way to go at anything, but for all its
disadvantages, it is easier to remember.

** Application compatibility

J. Random Luser hears of WordPerfect.  J. Random Luser hears
WordPerfect is good.  He doesn't know why, but he hears it's good.
J. Random Luser must be able to run WordPerfect or the OS is bad.

** Shielding from hardware

Most computer users can't spell ISA, let alone configure an IRQ.  As
much as it is possible, J. Random Luser doesn't want to even know that
he has a SoundBlaster, let alone what interrupt it is at.  Again,
computer internals are intimidating to JRL and he doesn't want to use
them.

* Methods

** GUI

The GUI actually has two parts: the graphical layer and the user
interface layer.  The graphical layer handles drawing things.  The
user interface layer is what the user uses to get things accomplished.
X is a wonderful graphical layer, but traditionally the UI has still
been the shell.  Again, I point at NeXT for having a wonderful UI
layer.

The GNU project is currently working on a UI layer, known as Teak.  I
haven't seen it in action, and it hasn't yet hit release point, but it
may be a good thing to add to future FreeBSD releases.  Check it out
at http://www.gnu.ai.mit.edu/software/teak/teak.html FMI.

** System configuration

I'm sorry, guys, but this *must* be done well.  How difficult would it
be to write an X interface to get the /etc files handled right?  Or
maybe systems to take a new user by the hand and set up some of the
systems (like ppp) from scratch?  I can see using Guile (an extension
Lisp) or a similar language to make a basic framework and library,
which then can take care of configuration for other subsystems as they
are added.  For instance, the ppp package could add its little bit of
configuration code to a standard directory, which the configuration
tool could then take in and have seamless integration into the rest of
the configuration.  I'm really thinking of something closer to the
Microsoft configuration wizards than Smit here; we need to be very
sure not to scare off the user with lots of technical things.

** Hardware and kernels

Kernel configuration has traditionally been an area for new Unix
sysadmins to be initiated, like morse code for hams.  But it really
doesn't have to be that way.  J. Random Luser doesn't know a kernel
from a colonel, and doesn't want to either, just to get his sound card
working.  Sure, we all know the terrors of autodetection under ISA.  I
don't suggest we follow Microsoft's lead in this area, from a
technical or UI standpoint.  All I suggest is that we make hardware
configuration kinder and gentler.

** Getting started with apps.

There are some excellent apps in the ports section.  Lots of them.
Lots and lots.  Enough to make poor JRL's head swim.  Perhaps creating
a distribution with some of these apps would be a good thing.  You
know, just some of the basic things that he wants to be able to access
when you first turns on his computer:
 - Netscape Navigator (which we can replace with GNU E-scape when it
is finished; hurry up nemo!): There we handle WWW, email, and news.
Although it's not technically very good handling of the second two, it
is easier to configure and use out of the box than, say, xmh.
 - Some basic word processor.  I'm not talking about Emacs here, since
JRL balks at the idea of not having different fonts and sizes
(although that is in the works for Emacs).  Does anybody know of a
WYSIWYG (or even -ish) TeX editor or something of the sort?
 - Oleo, a Unix spreadsheet.  (Gotta let them justify having the
computer, remember!)
 - Nethack, xboard and GNU chess, or another game.  I don't recommend
xtank or xpilot because of the bandwidth issue.
 - A fax program.

All of these should be documented somewhere.

---

This is just a first run at the profile.  I'd love for it to be
refined as necessary.  Seriously, please send me ideas for changes.

I'm also not saying that we change the basic distribution to make 'a
kinder, gentler BSD'.  I'm proposing making a distribution mechanism
so that J. Random Luser with no Unix experience can grab BSD, and have
it up and running and having fun that night.

> I don't think Unix is for dummies. Unix is Unix. Hard at the beginning, 
> but when you know it, you can do whatever you want with it,

Including write a better user interface.

> If I'm suggesting a configuration change of your system, I can 
> simply say: "modify /etc/fstab and put the line ...", I don't have to 
> say: "fire up your GUI, double click on the icon you find on the bottom 
> left of the second display ...."

Terrific.  Let's keep it like that.  But let's also add a GUI
interface to do the same thing.  Pulling our system configuration out
of /etc/rc and putting it in a single file as a bunch of variable
assignments was the perfect setup for this.  All that needs to be done
is to write an interface to change those.

> Surely, I do love the X window system, but I'm glad I can fix my Unix box 
> from a dumb terminal on the other end of the planet.

No, we're not going to ever take away our beloved Unix terminal
interfaces and configurations.  But that doesn't mean we shouldn't
supplement it.  Think of writing a parser in straight C, and in yacc.
Now, we use yacc because it's easier, but if we need to, we can still
use C, right?  You get the idea.

> I don't think Unix can be made the OS of choice for the casual user, 
> because to achieve this goal you (probably) have to distort the 
> philosophy behind it.

What do you see as the philosophy behind Unix?  I see a wonderful
toolbox... but we're all sitting here writing tools to make tools, and
tools to make Unix better for making more tools, instead of using the
tools we have to make Unix more popular to the masses.

> I think everybody wanting to seriously learn Unix has to love computers, 
> has to have the right attitude at it and has to find the time to learn it.

But most people don't want to seriously learn Unix.  Most people also
don't want to seriously learn Windows 95, or the Macintosh System, or
any other OS.  I only know how to change the oil on my truck; I can't
diagnose or replace a blown cooling system gasket.  Nevertheless, I
still want to be able to drive.  Similarly, J. Random Luser should be
able to use his computer without having to learn a lot about Unix, and
without having to submit to the tyranny of Microsoft.

Happy hacking,
joelh

-- 
http://www.wp.com/piquan --- Joel Ray Holveck --- joelh@gnu.ai.mit.edu
All my opinions are my own, not the Free Software Foundation's.

Second law of programming: Anything that can go wrong wi sendmail:
segmentation violation -- core dumped



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199706152321.TAA14966>