From: boyd@apple.com (scott boyd)
Subject: Re: 7.1 vs. OS/2 and Windows NT
Date: Sat, 3 Oct 1992 22:08:32 GMT
Organization: Apple Computer Inc.
Followup-To: comp.sys.mac.advocacy

In article <EenHBA_00YV_M8K6ly@andrew.cmu.edu>, cj00+@andrew.cmu.edu (Carl
B Jabido) wrote:
<lots of fairly-well-reasoned, non-flaming comments>

> > System 7.1:
> > * Features to support virtually all known forms of written human
> > communication using WorldScript. (Not, Not)
> 
> Well, I guess I shouldn't say this, but I will.  What's the real
> importance of this?  Go ahead flame away.

Consider that over half of the population of the planet Earth do
not use English, or even Roman-derivative, or even left-to-right
writing systems.  Consider, too, that Apple presently makes over
half of its revenue from sales outside the U.S.  Apple and developers
alike stand to benefit tremendously from making our goods available
in the writing system of the user's choice.

> > * Support for multiple scripts (writing systems) within the same edit field.
> > Don't know.  Please explain.  Again, I really want to know what this is.

This is very important for multilingual communication.  For example,
it's quite common to combine both English and Kanji in the same document.
You can do that on a Macintosh.  You can mix Kanji and Hebrew, or Arabic
and French.  Or all of them, for that matter.

> Now let me start. . .
> 
> Pre-emptive multitasking.  Yeah, I know it's been on the net before, but
> I'll reiterate it's importance.  It's important so that one app can't
> take over the whole system.  This is great for communications because if
> one app doesn't release control to a background program doing file
> transfer, you'll lose the transfer.  There are other things, but in a
> world where networking and communications are becoming the norm (enough
> so that System 7 includes basic networking, NT will be released with it,
> WPS IS network aware (just doesn't include the apps), Windows for
> Workgroups, and of course UNIX), preemptive multitasking could be needed
> more.

Your example of doing background file transfers is a good one, except
that it doesn't support your argument for preemptive multitasking.
For example, I'm running a large transfer (using Fetch, Remote Access,
software MNP, AppleTalk, MacTCP, and a 9600 baud modem) in the background
as I type with no discernable degradation in performance.  That's because
the author(s) of Fetch (and all of the networking software in between)
used the appropriate (and available) programming model.  They used
asynchronous calls, which take advantage of the interrupt-handling
capabilities of the Macintosh without requiring other processes to be
blocked while they wait for call completion.  The next issue of 'develop'
(a developer magazine put out by Apple) will contain a clear and detailed
article on how everyone can program this way.  Fetch is evidence that
this programming model is in place and available for developers to use.

There is a place for preemptive multitasking, but there are a variety
of techniques available (including cooperative multitasking, asynch
programming, VBL tasks, time manager tasks, and others) to get the
job done right (i.e. not at the expense of the user's response time).

> Multithreaded operation.  This too has probably been on the net before,
> but it's important too.  Example:  while in a word processor, I can
> select print, and before the word processor is done sending the file to
> the spooler, I'm back at my cursor and I can edit it or whatever.  There
> are more examples of where threading is useful, but I'm tired because
> it's now 1:30. . .

Threading models are available and in use on the Macintosh now.

Thanks for your calm and reasoned and inquisitive approach.

Regards,

scott
boyd@apple.com
macintosh system software
Newsgroups: comp.sys.mac.advocacy