[comp.sys.mac] Rooms?

binder@eniac.seas.upenn.edu (Tim Binder) (11/17/88)

With all this talk about Mac interface improvement, I remember reading
somewhere (InfoWorld?) about Xerox's next step (:-) in user interfaces:
Rooms, where each "room" is dedicated to a particular project you might
be working on. Each room seemed to be the equivalent to a Mac MultiFinder
desktop. Does any have more details or better yet, comments on this
interface? Could this be the next step in interfaces?

On a slightly different note: One thing that really annoys me about the Mac
is that it has taken Apple over 4 years to get the Mac to where the Lisa
was when it was first introduced! The Lisa had only 512K of memory, yet
supported a desktop much like MULTIFINDER now. Now, however, if you have
1 MEG of RAM or less, don't even think about it. The same is becoming true
for many applications. Are people just getting "sloppy" about memory usage,
or is there something I'm missing? Admittedly, the Lisa had a limited base
of programs, but then again, no development environment existed for it.

Tim



       __                                              
      /\ \       Timothy M. Binder                | "He's dead honey
     /  \ \      binder@eniac.seas.upenn.edu      |  'cause Mommy
    / /\ \ \     CI$ 71106,1124 [but VERY rarely] |  killed him."
   / / /\ \ \                                     |
  / / /__\_\ \   known in the SCA as              |
 / / /________\    Gwydion Rhys ap Rhianwen       |                 
 \/___________/                                   

bob@eecs.nwu.edu (Bob Hablutzel) (11/17/88)

> On a slightly different note: One thing that really annoys me about the Mac
> is that it has taken Apple over 4 years to get the Mac to where the Lisa
> was when it was first introduced! The Lisa had only 512K of memory, yet
> supported a desktop much like MULTIFINDER now. Now, however, if you have
> 1 MEG of RAM or less, don't even think about it. The same is becoming true
> for many applications. Are people just getting "sloppy" about memory usage,
> or is there something I'm missing? Admittedly, the Lisa had a limited base
> of programs, but then again, no development environment existed for it.

Personally, I think there are several reasons for memory use increasing:

Programs are more complex: Consider FullWrite, XPress, etc. Nothing of this
complexity exists for the Lisa. Obviously, the more a program does, the more
code is needed to implement this complexity.

Programs are sloppier about memory: With the complexity of programs increasing,
it is getting harder and harder to watch every piece of memory. Especially
with the (unique?) error reporting on the Mac.

Finally, and I'm going to get flamed right and left for this, but here we go:
Most applications are written in high level languages these days, by teams of
programmers. I'm sorry, and you can disagree, but there is _no way_ that 
high level code can match the size and speed compactness of assembly language
programming. This has nothing to do with using tricks of the chip, or black 
magic, but because high level languages require support routines and the
like which assembly language code can avoid.

(For example: I just stopped work on a mail project - it communicated between
VAX Mail and a Macintosh, with a true Mac interface, printing, cut/paste (no
undo), graphic interface, etc, etc. It was written completely in assembler,
both on the VAX and the Mac. Consider it to be 85% done. Final code size:
26K on the VAX, and 40K on the Mac. Needless to say, it worked just fine
with MultiFinder).

Oops. Didn't quite mean to go on like that. Well, the above is my opinion, and
I tend to get overworked about it sometimes. Sorry about that.

Bob Hablutzel	BOB@NUACC.ACNS.NWU.EDU

rick@Jessica.stanford.edu (Rick Wong) (11/18/88)

In article <6217@netnews.upenn.edu> binder@eniac.seas.upenn.edu.UUCP (Tim Binder) writes:
>With all this talk about Mac interface improvement, I remember reading
>somewhere (InfoWorld?) about Xerox's next step (:-) in user interfaces:
>Rooms, where each "room" is dedicated to a particular project you might
>be working on. Each room seemed to be the equivalent to a Mac MultiFinder
>desktop. Does any have more details or better yet, comments on this
>interface? Could this be the next step in interfaces?

I've seen it, and I was very impressed.  It allows you to build rooms
oriented toward particular tasks that you perform often.  For instance,
you can have:  a publishing room that contains tools for word-processing,
drawing, and page layout; a mail room that contains telecommunications
and text-processing tools; a filing room for your Finder; etc.

You can create "doors" between rooms, so that you can easily switch
between related tasks (imagine several instances of MultiFinder running
under Switcher . . .).

One of my big complaints with MultiFinder is the window cluttering it
creates.  Because of the small screen space, the application I want to
switch to is often buried under some other application's windows.  To
get to the application I want usually takes several clicks (I almost
never use the Apple menu, because of the extra work of having to drag
all the way to the bottom of the menu, and then having to think about
which application I want to choose).

NeXT gets around the window-cluttering problem somewhat by allowing
you to "iconize" an application.  Although this reduces window-clutter,
it doesn't really eliminate the rigamarole you have to go through when
switching tasks (i.e., find current tasks's main menu; choose "iconize",
or "hide", or whatever it's called; find icon for desired task; where
is that darned icon?; etc.).

By the way, Rooms was developed at Xerox AI Systems, not PARC (just
setting the record straight).

Rick "Wild Twinkie Surprise" Wong
Courseware Authoring Tools Project, Stanford University
rick@jessica.stanford.edu

"Ask not what your country can do for you; ask what you can do for George Bush"

lsr@Apple.COM (Larry Rosenstein) (11/18/88)

In article <6217@netnews.upenn.edu> binder@eniac.seas.upenn.edu.UUCP (Tim Binder) writes:
>
>is that it has taken Apple over 4 years to get the Mac to where the Lisa
>was when it was first introduced! The Lisa had only 512K of memory, yet
>supported a desktop much like MULTIFINDER now. Now, however, if you have
>1 MEG of RAM or less, don't even think about it. The same is becoming true

The Lisa came with 1Mb; we never quite got the system to run with 512K of
RAM.  More importantly, the Lisa has an MMU and used virtual memory.

Also, there was a development environment for the Lisa (called the Lisa
Workshop), and there was an application framework called the Lisa ToolKit,
which was the predecessor of MacApp.  (There was also a way to write
character-based applications that ran on the Lisa.)  A couple of 3rd
parties did write applications for the Lisa.

-- 
		 Larry Rosenstein,  Object Specialist
 Apple Computer, Inc.  20525 Mariani Ave, MS 46-B  Cupertino, CA 95014
	    AppleLink:Rosenstein1    domain:lsr@Apple.COM
		UUCP:{sun,voder,nsc,decwrl}!apple!lsr

levin@bbn.com (Joel B Levin) (11/18/88)

In article <4151@Portia.Stanford.EDU> rick@Jessica.stanford.edu (Rick Wong) writes:)
]							 . . .  To
]get to the application I want usually takes several clicks (I almost
]never use the Apple menu, because of the extra work of having to drag
]all the way to the bottom of the menu, and then having to think about
]which application I want to choose).

Check out Larry Rosenstein's INIT/cdev ApplicationMenu.  It lets you
click at either end of the menu bar to get a menu of all application
layers (and the DA layer if you have any going), or with modifier keys
(e.g. command key) anywhere on the menu bar.  Also, Suitcase users can
hold Option while mousing the Apple menu and all the DAs will be
omitted, thus presenting the application list near the top.

	/JBL
UUCP:     {backbone}!bbn!levin		POTS: (617) 873-3463
INTERNET: levin@bbn.com

blm@cxsea.UUCP (Brian Matthews) (11/19/88)

Tim Binder (binder@eniac.seas.upenn.edu.UUCP) writes:
|On a slightly different note: One thing that really annoys me about the Mac
|is that it has taken Apple over 4 years to get the Mac to where the Lisa
|was when it was first introduced! The Lisa had only 512K of memory, yet
|supported a desktop much like MULTIFINDER now. Now, however, if you have
|1 MEG of RAM or less, don't even think about it. The same is becoming true
|for many applications. Are people just getting "sloppy" about memory usage,
|or is there something I'm missing?

Yes, badly.  The Lisa was a virtual memory machine.  Each application had
it's own 16Meg chunk of "memory", and the underlying OS paged things to
hard disk.

-- 
Brian L. Matthews  blm@cxsea.UUCP   ...{mnetor,uw-beaver!ssc-vax}!cxsea!blm
+1 206 251 6811    Computer X Inc. - a division of Motorola New Enterprises

mdixon@arisia.Xerox.COM (Mike Dixon) (11/19/88)

In article <4151@Portia.Stanford.EDU> rick@Jessica.stanford.edu (Rick Wong)
writes:
> ....
>By the way, Rooms was developed at Xerox AI Systems, not PARC (just
>setting the record straight).

Just to set the record a little straighter, Rooms *was* developed at
PARC, by Stu Card and Austin Henderson.  It was later reimplemented
(primarily by Doug Cutting, I believe) and marketed by Xerox AI
Systems.
                                             .mike.
-- 

                                             .mike.

mce@tc.fluke.COM (Brian McElhinney) (11/24/88)

In article <10330083@eecs.nwu.edu> bob@eecs.nwu.edu (Bob Hablutzel) writes:
>Most applications are written in high level languages these days, by teams of
>programmers. I'm sorry, and you can disagree, but there is _no way_ that 
>high level code can match the size and speed compactness of assembly language
>programming. This has nothing to do with using tricks of the chip, or black 
>magic, but because high level languages require support routines and the
>like which assembly language code can avoid.

True enough, if you have an infinite amount of time; there is also _no way_
that a team of programmers can develop and test code in the same amount of
time using low-level tools (assembly language).  You just can't manage a large
amount of arbitrary complexity without high level tools.  Best put by the (so
far as I know) anonymous quote:

	"Newton said that if he had seen further than others it was because he
	was standing on the shoulders of giants.  The problem with software
	engineering is that we're all standing on each other's toes."

Obviously, we still have a long way to go yet, even with high level languages.

Assembly language is useful in it's place, but only there.  I would wager that
most of the speed and compactness improvements are due to better work habits
forced on you by the lack of type checking, etc., of assembly language.  The
same skills would serve you just as well in any software environment.
 
 
Brian McElhinney
mce@tc.fluke.com

pcolby@robbie.prime.com (Peter Colby) (11/28/88)

In article <6105@fluke.COM> mce@tc.fluke.COM (Brian McElhinney) writes:
>In article <10330083@eecs.nwu.edu> bob@eecs.nwu.edu (Bob Hablutzel) writes:
>> ... I'm sorry, and you can disagree, but there is _no way_ that 
>>high level code can match the size and speed compactness of assembly language
>>programming. This has nothing to do with using tricks of the chip, or black 
>>magic, but because high level languages require support routines and the
>>like which assembly language code can avoid.
>
>True enough, if you have an infinite amount of time; there is also _no way_
>that a team of programmers can develop and test code in the same amount of
>time using low-level tools (assembly language).  You just can't manage a large
>amount of arbitrary complexity without high level tools. ...
>
>Assembly language is useful in it's place, but only there.  I would wager that
>most of the speed and compactness improvements are due to better work habits
>forced on you by the lack of type checking, etc., of assembly language.  The
>same skills would serve you just as well in any software environment.
> 

Several comments.
	1) OS 360 was written in assembly language. Even today there are not a
       whole lot of programs equivalent in either size or complexity.
	   Remember, we're talking somewhere around 1965-1968. Read
	   "The Mythical Man Month" by ?? Brooks. The issue isn't complexity,
	   it's lines of code. In most cases you get more work per line of HOL
	   code than you do per line of assembly. The only reason HOLs are
	   considered an advantage is because most programmers are really coders
	   Automate coding from design specs and you lose all advantage of HOLs.
	   (Of course the "design language" now becomes the HOL and languages like
	   C, LISP, SMALLTALK etc become "assembly languages" and are inefficient
	   low level tools.)
	2) One of the major savings in using assembly language IS due to "tricks
	   of the chip". I remember doing assembly programming on a CDC 6600
	   (1975). Two techniques in particular were used to speed up programs;
	   First, we coded inner loops to keep the entire intruction stream in
	   the instruction cache - no memory access (for instructions) - major
	   gain; second, we interleaved instructions to take advantage of mutually
	   independant asynchronous functional units - the units only synchronized
	   to access common registers - depending upon the task, this could gain
	   little to a lot.
	3) The other major saving in using assembly language is "optimization". Yes,
	   having to include support code and other general library routines from
	   the compiler cuts down on code efficiency, but the major problem is that
	   most commercial compilers generate horrible code. Hand coding in assembly
	   makes up for the stupidity of compilers. Of course, good compilers can be
	   written but I suspect that the R&D effort involved would push the
	   potential selling price out of the reach of most buyers. However, take a
	   look at the IBM FORTRAN H (optimizing) compiler or the original PASCAL
	   compiler written specifically for the CDC 6600.
	4) It's still a truism that appropriate algorithms buy you far more than
	   hand optimization. However, once you have a working program you can
	   substantially improve it's speed by analysing the bottlenecks and
	   recoding the critical procedures (or loops) in assembly language. As
	   an aside, the latest MacTutor has an interesting article on optimizing an
	   assembly language routine.

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
UUCP: {sun,decvax,linus}!cvbnet!pcolby ||| "We has met the enemy and he is us."
UUCP: pcolby@robbie.prime.com          |||                           Pogo
CSNET: pcolby@robbie.prime.com         |||