From: craigdo@microsoft.com (Craig Dowell)
Subject: Re: Author's reply: re: The sin of MicroSoft
Date: 25 Jan 93 21:09:13 GMT
Organization: Microsoft Corporation

In article <1993Jan21.102212.20138@Princeton.EDU> wgsohne@phoenix.Princeton.EDU (William Guido Sohne) writes:
>>  Unix is a time-sharing system.  It makes use of multi-tasking so as to
>>  serve more than one user concurrently.  Even if no individual user is
>>  making use of multi-tasking features, the operating system itself is
>>  still doing multi-tasking all the time.
>>
>	
>	That's exactly right. UNIX  is a time-sharing system. *But* the PC is
>not. Multitasking on a PC is for the purposes of a single user (most of the
>time). That's why PC multitasking needs a GUI as a front end - so that
>multitasking is actually a useful feature, not just a cool gizmo that one has
>but doesn't use. Witness how much easier multitasking is under Windows as
>opposed to on the Mac - with the Mac you can't have two programs running
>side by side with access to both their menu bars.

Unix is a time-sharing system, but the PC is not.  Huh?  Typical comparison
in this group; software and hardware compared using the same criterion.

Anyway, the issue here has nothing to do with hardware.  What you are saying
is that multiple overlapping windows are good.  I agree.  You are saying that
multiple windows are better than one.  I agree.  This has nothing to do with
hardware, though, unless you look at the horsepower needed to move the bits
around on the graphical display.

I disagree when you say that multitasking needs a GUI as a front end.  It is
very useful when you want to do more than one thing no matter what the user
interface may look like.  What the user interface does is to change the way
you interact with the system.  For years I used to type:

	make mumble >& err.log&

and go on and work on other things while compilations were running.  If I
wanted to see what was going on I typed things like:

	^Z	pause current process
	bg	run it in background
	%5	bring job #5 into the foreground

to interact with an application.  This was _unbelievably_ useful.  Multitasking
in Apple-land is similar in that there is only one view to the system and you
have to do the ^Z;bg;%5 equivalent to switch between views.

Multiple windows give you multiple views into the system.  This is good since
it removes the arcane process switching commands and replaces them with the
concept of focus.  Multiple overlapping windows are even more useful since they
give one more flexibility in controlling the view into the system.

Multiple overlapping windows can be run without multitasking at all.  The 
window with focus is simply the only executing "thing."  Multiple overlapping
windows can be run with cooperative multitasking:  "threads" in the system
yield periodically and a single execution context is shared between windows,
giving the effect of seeing things progress in all windows.  Multiple over-
lapping windows can be run on systems which multitask using time-sliced
processes.  Each window becomes a process and the system swaps from process
to process without an application having to yield.  Thread-based systems
add more fine-grained control to process-based systems.

My point in this long-winded discussion is that GUI and OS are orthogonal.
GUIs make interacting with a computer easier for most people.  Most people
can take advantage of additional OS power (multitasking) using a GUI when
they would have a hard time using any other method.

The issue relating to time-sharing versus dedicated user doesn't have anything
to do with GUI either.  This is an issue relating to system resources.  You
can have a system with 100 dumb terminals or you can have a system with 100
X-terminals.  You can have a system with 1 dumb terminal or you can have a
system with 1 X-terminal.

If you have a system which has multiple mice, keyboards, and graphical displays
there is no reason why you can't have a multiple GUI system -- a multiuser
system using GUIs.  After all, a multiuser system (the time sharing system
talked about above) needs at least a dumb terminal per user doesn't it?

These arguments about which OS is better, based on GUI and system resources
seem pretty ridiculous.  You can compare GUI with GUI, OS with OS, hardware
with hardware.  You'ze can't compare GUI with hardware, etc.

Of course the packaging of these different elements doesn't help.  Everybody
bundles all of these things into packages, with hardware, OS, GUI and apps
all rolled together.  When someone talks about OS/2 nowadays, they are 
referencing a collection of drivers, OS, GUI and shell.  Windows references
another collection of drivers, OS (don't want to hear it), GUI and shell.
Unix (to some) refers to another OS, GUI and shell.  All of this stuff can
run on the same hardware, or different.

Free form comparison of these different systems isn't going to get anybody
anywhere (unless, of course, you are an advocate and fairness, meaningfulness
and logic are second to the true cause of boosting your favorite system :-).

-- Craig