[mod.mac] The latest gossip on Servant!

pugh jon%e.mfenet@LLL-MFE.ARPA (03/14/86)

Last night (3/13) I got to see Andy Hertzfeld give a demo of his latest and
greatest program, Servant.  It was under half done, but still impressive. It
is intended as a replacement for the Finder and Switcher, which makes him a
little uneasy about fixing Switcher. 

Servant looks similar to MultiMac in that when you start up an application
like MacWrite, you can move the window and, lo and behold, the Servant and the
desktop are right behind it.  You can then start another application, and so
on.  There is no real concurrency in that switches only occur when you select
windows, there is no running in the background.  The reason for this is
hardware, pure and simple.  Andy says that he has to move blocks of 3K around
and to do context switching without an MMU creates a very nasty bottleneck
that kills the whole idea.  Alas and alack, the Mac will never be a
multitasker. 

There are a number of other niceties involved that may seem trivial, but are
very nice and slick.  One is the elimination of the scroll bars.  He now uses
a hand to slide all the icons around.  He provides a zoom out icon so that you
can see all the icons at once and move your window around like you do in the
showpage mode of MacPaint.  There is also an icon that shows which direction
the off window icons are so that you know where to look for them.  It has a
very nice feel to it.  He also improved a very minor thing that turned out to
be a significant hassle to program.  When you pick up an icon now, you get a
32 pixel square with a rectangle for the text under it.  Servant picks up an
exact outline of the icon.  It looks very nice. Servant will also allow you to
place any MacPaint picture on the desktop as the background instead of just a
pattern. 

Like I said, this is a partial program right now.  Andy outlined plans for the
rest of it that included; background demons (complete with appropriate icons),
the elimination of desk accessories (who needs little programs that run on top
of other programs when you can run ANY program on top of another program; not
to mention the fact that Andy created them, he can damn well get rid of them
if he wants), the integration of a Friendly resource editor so that normal
people (not just us hackers) can edit resources, and a scripting capability
(not journaling; a real iconic command language supporting parameter passing,
completion codes, variables, if structures, and loops). 

The details for many of these features are not worked out yet.  Andy says that
he is an evolutionary programmer in that he puts something together and then
sees how well it works and modifies it.  This beats the heck out of writing a
complete spec and then having to change it.  Apple said that they wanted a
spec before they would put any money toward this and it shows how good Andy is
that he refused and they went along with it.  He has already sold Servant to
Apple for an undisclosed 6 figure amount.  Apple will recieve the source code
in 6 to 8 months and they will incorporate the features they like into the
Finder.  Then Andy will decide if he likes the way Apple has done it and when
he decides that he doesn't he will finish and polish it himself and release it
on his own. 

Servant appears to suffer from exceeding "desktop clutter."  There can be too 
many windows open at one time for a person to optimally manage.  He intends to 
place an open window list under the Apple menu instead of the DAs.  The DAs 
will become icons, just like programs and can go anywhere.  The resource 
editor will be built in and will be completely icon based so that you can take 
a font icon and place it into your system icon or remove it from your system 
icon.  It is intended to be very simple.  Needless to say, the intended target 
machine for this program is the Mac+.  Andy stressed that this is a very 
memory intensive program.  It has quite a few extra bit map buffers that take 
up room.  He says that he will be able to manage the caching mechanism more 
efficiently too because he will be doing a lot of the memory manipulation 
himself.  Also, Servant is up to 10 times faster than the Finder.  He makes 
this speedup by bypassing the Resource Manager completely.  He says he just 
slaps the resource block from the Desktop file into an array and manipulates 
it himself instead of using the manager.  It is, also of course, intended to 
be run under HFS, although he is going to retrofit it all so that it will run 
on an "old" 512 Mac.  You 128 owners are SOL, so hop on the boat (I don't see 
how ANYONE could live on a 128K machine; for that matter, how did I ever write 
that Star Trek program in 4K of Basic?)

At any rate, Servant looks great.  And that's all I can really say about that.

Oh yeah, one more thing.  Andy said he was giving away Switcher 4.6 at the 
Apple expo in January and that the current version is 4.9.  It includes bug
fixes galore, including a bug that has been there since it was written but
since it was NEVER used it was never noticed.  This concerned the ability of
a program to cause a switch to occur.  He cited an example during which the
Freudian slip "Microso.." came out before he switched to a MacWrite example.
Suppose you are in MacWrite and you have a MacDraw picture there.  By double
clicking on the MacDraw picture, you should be able to select that picture,
switch to MacDraw and edit it, and then switch back to MacWrite and have the 
picture replaced.  Sounds nifty, huh?  Watch for it in an undisclosed program.

Jon