[comp.software-eng] Speed versus whatever

cox@stpstn.UUCP (Brad Cox) (12/31/90)

In article <19413@yunexus.YorkU.CA> davecb@yunexus.YorkU.CA (David Collier-Brown) writes:
>From <1990Dec19.102005.11830@engin.umich.edu>
>by zarnuk@caen.engin.umich.edu (Paul Steven Mccarthy):
>[...]						 The impression that I 
>| have gotten from most professionals in the software trade is something
>| like: "Speed isn't important.  The hardware will speed up and take care
>| of our inefficiencies."
>
>  Many moderately experienced people in the commercial world believe that
>optimization is the work of the devil.

To bring this from the general to the specific:

Observation #1: Unix tools, such as vi, are remarkable (IMHO) for 
	(a) their speed (adequate) 
	(b) their user interface (terrible).

Observation #2: Macintosh tools such as Nisus (a text editor with comparable
	regular expression capability) are remarkable for 
	(a) their speed (terrible)
	(b) their user interface (adequate).

To make these difference specific, I've just spent the weekend moving a
.5M Interleaf file from Unix to Mac, using regular expressions under Nisus
as I've used them countless times under vi. I've allocated 4M of
memory allocated to Nisus (since it manages the entire file in memory.
Note that vi does not; holding large files partially on disk).

I've consistently observed that searches that would have finished in
milliseconds under vi can take anywhere from many seconds to, occasionally,
*hours* under Nisus. 

This is not to single out Nisus. The same general observation seems to hold 
for comparable end-user applications across the board.

My question: Why does this pattern seem to recur consistently between comparable
Macintosh versus Unix applications?
	
Is it because of a technical reason (maybe file system differences; memory
management, etc?)?

Or is it because of something non-technical; a difference between the 
cultures who develop for these platforms?

I'm particularly interested in hearing from anyone who has deep technical
and/or cultural experiences on both machines. Opinions and/or guesses are 
welcome too, but the differences are sufficiently remarkable that I suspect
there's a tangible reason.
-- 

Brad Cox; cox@stepstone.com; CI$ 71230,647; 203 426 1875
The Stepstone Corporation; 75 Glen Road; Sandy Hook CT 06482

davecb@yunexus.YorkU.CA (David Collier-Brown) (01/01/91)

cox@stpstn.UUCP (Brad Cox) writes:
>My question: Why does this pattern seem to recur consistently between comparable
>Macintosh versus Unix applications?
>	
>Is it because of a technical reason (maybe file system differences; memory
>management, etc?)?

>Or is it because of something non-technical; a difference between the 
>cultures who develop for these platforms?

  I'd suggest culture as much as any single thing.  Partially because culture
is more than a single thing (:-)).

  Because the authors of Unix were researchers, they were interested
in ongoing work in the areas of string matching, for example, and carried
out analyses and experiments to discover the performance of both the
algorithms and their implementation(s).
  Because the authors of the Macintosh were marketers (in the complimentary
sense!), they were interested in the acessability of the systems they
designed, and carried out analyses and experiments to discover what could be
understood quickly and unambiguously by new users.

  In one small company I had the pleasure to have been associated with, they
were marketers porting a known high-performance application. **They** did
analyses and conducted experiments on both acessability and speed.
Acessability came first, but in the presence of competition, we found a
bottleneck in the Mac Pascal compiler, and significantly improved the speed
of the critical inner loop of TeX.
  They were quite aware of the significance of speed to their customers, but
a working product came first... very much first (the then compeditor had a
tendancy to stop mysteriously about 10 pages into a complex paper full of
math: we didn't really mind being slower as long as we never actually
stopped (:-)).

  You see similar ``what do we concentrate on first'' decisions elsewhere
in the industry, often very closely related to either the culture the
company lives in, or the one it plans to sell into.
  One of the obvious ones is Mips/SGI: after doing an operating system
together, Mips spent time and money on BSD4.x compatability and SGI spent
effort on graphics.  

--dave

davidm@uunet.UU.NET (David S. Masterson) (01/01/91)

>>>>> On 30 Dec 90 20:11:33 GMT, cox@stpstn.UUCP (Brad Cox) said:

Brad> Observation #1: Unix tools, such as vi, are remarkable (IMHO) for
Brad> 	(a) their speed (adequate)
Brad> 	(b) their user interface (terrible).

Brad> Observation #2: Macintosh tools such as Nisus (a text editor with
Brad> comparable regular expression capability) are remarkable for
Brad> 	(a) their speed (terrible)
Brad> 	(b) their user interface (adequate).

Brad> To make these difference specific, I've just spent the weekend moving a
Brad> .5M Interleaf file from Unix to Mac, using regular expressions under
Brad> Nisus as I've used them countless times under vi. I've allocated 4M of
Brad> memory allocated to Nisus (since it manages the entire file in memory.
Brad> Note that vi does not; holding large files partially on disk).

Brad> I've consistently observed that searches that would have finished in
Brad> milliseconds under vi can take anywhere from many seconds to,
Brad> occasionally, *hours* under Nisus.

Brad> My question: Why does this pattern seem to recur consistently between
Brad> comparable Macintosh versus Unix applications?

Just a guess, but I'll bet it has to do with the NIH (Not Invented Here)
syndrome in the industry (I'm not singling out Apple).  Add to this the GIDN
(Get It Done Now!) syndrome and you have people implementing something new (or
what they think is new - NIH) as fast as possible (GIDN) and then not having
time to go back and fix it until complaints come in.

Comments?
--
====================================================================
David Masterson					Consilium, Inc.
(415) 691-6311					640 Clyde Ct.
uunet!cimshop!davidm				Mtn. View, CA  94043
====================================================================
"If someone thinks they know what I said, then I didn't say it!"

thom@dewey.soe.berkeley.edu (Thom Gillespie) (01/02/91)

I'm not sure I understand the question. I use a Mac at Home, IBM/Mac at
school, and vi as the common element everywhere. I really don't do all that
much " regular expression searching" On the Mac using scroll bars and having an
idea about where my info is reduces slow searches. On vi I find the " regular
expression searching" very slow because it takes me through too many intsances.

I know that vi is faster than anything I use on the Mac or IBM: Word, WriteNow,
and WordPerfect, but it doesn't matter. If it takes a long time I just read
something. Half the time I'm running multifinder on the Mac and have a unix
account running vi in one window and Word in another window.

I've used vi so long that my finger nails know what to do. I guess the
interface is more important now. I came to the Mac from vi and unix, it all
seemed wonderful. If I was going from a Mac and Word to vi and unix I don't
think I'd feel the same. My wife gets very frustrated when she is using mail
and the vi editor doesn't act like a Mac editor, no mousing.

--Thom

mce@tc.fluke.COM (Brian McElhinney) (01/05/91)

In article <5966@stpstn.UUCP> cox@stpstn.UUCP (Brad Cox) writes:
>
>Observation #1: Unix tools, such as vi, are remarkable (IMHO) for 
>	(a) their speed (adequate) 
>	(b) their user interface (terrible).
>
>Observation #2: Macintosh tools such as Nisus (a text editor with comparable
>	regular expression capability) are remarkable for 
>	(a) their speed (terrible)
>	(b) their user interface (adequate).
> [...]
>
>My question: Why does this pattern seem to recur consistently between
>comparable Macintosh versus Unix applications?

First and foremost there are fundamental user interface differences (textual
vs graphical).  Graphical user interfaces are much harder.  They take a
significant percentage of your development resources (time, personnel,
testing, etc).  You never have infinite development resources, so something
has to give.

The UNIX marketplace has fewer end users, and those users tend to be very
technical.  In the Macintosh market this subset of users corresponds to the
so-called "power" users, and is a small percentage of the total customer base.
Non-technical users are less sensitive to performance, and are less likely to
switch if higher-performance tools become available.  They will switch if
"needed" features are in your product.  So what do you make the higher
priority?  Getting features working, or making features work fast?  [This is
also, incidently, what leads to the "kitchen sink" effect so often seen in
Macintosh applications]

There are some technical differences, and though no one of them causes a
problem, they do add up.  Instead of byte stream files, MacOS has structured
files (data and resource forks).  Things that are hard-coded in UNIX programs
are often dynamically loaded resources in Macintosh programs.  The Mac does
not have virtual memory, instead using small heaps allocated via
doubly-indirected pointers (so heap compaction is a problem).  The Mac
community expects binary compatibility across OS versions and new hardware
platforms.  The Mac does not have memory protection, which makes debugging
harder.  What I'm getting at is that there may be more complexity for the
"same" job, leading to a problem similar to that of user interfaces: if it is
hard it takes more effort, and you always have limits on your development
resources.
 
 
Brian McElhinney		  "There is no magic.  There is only knowledge,
mce@tc.fluke.com		   more or less hidden"           --Gene Wolfe

melling@cs.psu.edu (Michael D Mellinger) (01/06/91)

In article <1991Jan4.225943.540@tc.fluke.COM> mce@tc.fluke.COM (Brian McElhinney) writes:

   First and foremost there are fundamental user interface differences (textual
   vs graphical).  Graphical user interfaces are much harder.  They take a
   significant percentage of your development resources (time, personnel,
   testing, etc).  You never have infinite development resources, so something
   has to give.

   [stuff deleted]
	
   There are some technical differences, and though no one of them causes a
   problem, they do add up.  Instead of byte stream files, MacOS has structured
   files (data and resource forks).  Things that are hard-coded in UNIX programs
   are often dynamically loaded resources in Macintosh programs.  The Mac does
   not have virtual memory, instead using small heaps allocated via
   doubly-indirected pointers (so heap compaction is a problem).  The Mac
   community expects binary compatibility across OS versions and new hardware
   platforms.  The Mac does not have memory protection, which makes debugging
   harder.  What I'm getting at is that there may be more complexity for the
   "same" job, leading to a problem similar to that of user interfaces: if it is
   hard it takes more effort, and you always have limits on your development
   resources.


So, what would happen if a company built a computer that used Unix,
then added a GUI comparable to that of the Macintosh, and to top it
off, they did all the tedious user interface work for the software
developer?

I think the next few years should prove to be an interesting time for
software developers.

-Mike

rar@saturn.ads.com (Bob Riemenschneider) (01/07/91)

In article <F7&0x-14@cs.psu.edu> melling@cs.psu.edu (Michael D Mellinger) writes:

   So, what would happen if a company built a computer that used Unix,
   then added a GUI comparable to that of the Macintosh, and to top it
   off, they did all the tedious user interface work for the software
   developer?

My guess is it would start selling enough to be a threat to Apple, be
sued by Apple for violating the Mac "look and feel" copyright (even if
the GUI didn't look or feel much like the Mac's), spend millions
defending itself in court, and probably go belly up as a result.

							-- rar

rmartin@clear.com (Bob Martin) (01/10/91)

>In article <5966@stpstn.UUCP> cox@stpstn.UUCP (Brad Cox) writes:
>>Observation #1: Unix tools, such as vi, are remarkable (IMHO) for 
>>	(a) their speed (adequate) 
>>	(b) their user interface (terrible).
>>Observation #2: Macintosh tools such as Nisus (a text editor with comparable
>>	regular expression capability) are remarkable for 
>>	(a) their speed (terrible)
>>	(b) their user interface (adequate).
>>My question: Why does this pattern seem to recur consistently between
>>comparable Macintosh versus Unix applications?

I don't know about Nisus (sounds like a Larry Niven Character).  And I have
seen Mac programs with UIs that are merely adequate.  But in general the MAC
system and most of the applications support UIs that are far far superior to
anything on a Unix or any other kind of system.  (OK, OK, this sounds polarized
and there are some good UIs for _some_ unix programs?)

Take programs like More or Excel, or programming languages like Prograph.
These programs have outstanding user interfaces.  Many people never even
have to crack the manuals (no so for Prograph).  

Even little things like Macwrite, Macpaint, Macdraw are extremely useful
even with their (sometimes significant) limitatoins, simply because you
get a whole lot of functionality accesible to the user who is not willing
to spend a lot of time learning how to use it.

But it would seem that your real complaint is speed.  Granted some Mac
programs could be faster.  But for the majority of the things that you
can use a Mac for, the speed is a non-issue.  Furthermore, execution
speed is only a tiny fraction of what can slow down a user.  The UI
on the Mac makes most jobs go much faster simply by virtue of its ease
of use.

BTW there are some pretty fast programs on the Mac.  


-- 
+-Robert C. Martin-----+:RRR:::CCC:M:::::M:| Nobody is responsible for |
| rmartin@clear.com    |:R::R:C::::M:M:M:M:| my words but me.  I want  |
| uunet!clrcom!rmartin |:RRR::C::::M::M::M:| all the credit, and all   |
+----------------------+:R::R::CCC:M:::::M:| the blame.  So there.     |

rmartin@clear.com (Bob Martin) (01/10/91)

In article <F7&0x-14@cs.psu.edu> melling@cs.psu.edu (Michael D Mellinger) writes:
>So, what would happen if a company built a computer that used Unix,
>then added a GUI comparable to that of the Macintosh, and to top it
>off, they did all the tedious user interface work for the software
>developer?
>
>I think the next few years should prove to be an interesting time for
>software developers.
>
>-Mike

I think the next few years will prove very interesting for the 
software industry.  But I am not sure what you are getting at.  Will
a non-technical organization _ever_ be able to put a Unix machine
on a secretaries desk.  Can Unix machines be sold to housewives and
high school students in relative bulk.

Even if a company did what you suggest (and a few have or course)
Unix remains far far to complex a management and support problem for
the personal or non-technical professional user.



-- 
+-Robert C. Martin-----+:RRR:::CCC:M:::::M:| Nobody is responsible for |
| rmartin@clear.com    |:R::R:C::::M:M:M:M:| my words but me.  I want  |
| uunet!clrcom!rmartin |:RRR::C::::M::M::M:| all the credit, and all   |
+----------------------+:R::R::CCC:M:::::M:| the blame.  So there.     |

lee@quincy.cs.umass.edu (Peter Lee) (01/16/91)

In article <F7&0x-14@cs.psu.edu> melling@cs.psu.edu (Michael D Mellinger) writes:

   Path: dime!umvlsi!m2c!bu.edu!att!tut.cis.ohio-state.edu!cs.utexas.edu!wuarchive!psuvax1!news
   From: melling@cs.psu.edu (Michael D Mellinger)
   Newsgroups: comp.software-eng
   Date: 5 Jan 91 21:19:03 GMT
   References: <470@eiffel.UUCP> <19413@yunexus.YorkU.CA> <5966@stpstn.UUCP>
	   <1991Jan4.225943.540@tc.fluke.COM>
   Sender: news@cs.psu.edu (Usenet)
   Organization: Penn State Computer Science
   Lines: 35
   Nntp-Posting-Host: client6.cs.psu.edu



   In article <1991Jan4.225943.540@tc.fluke.COM> mce@tc.fluke.COM (Brian McElhinney) writes:

      First and foremost there are fundamental user interface differences (textual
      vs graphical).  Graphical user interfaces are much harder.  They take a
      significant percentage of your development resources (time, personnel,
      testing, etc).  You never have infinite development resources, so something
      has to give.

      [stuff deleted]

      There are some technical differences, and though no one of them causes a
      problem, they do add up.  Instead of byte stream files, MacOS has structured
      files (data and resource forks).  Things that are hard-coded in UNIX programs
      are often dynamically loaded resources in Macintosh programs.  The Mac does
      not have virtual memory, instead using small heaps allocated via
      doubly-indirected pointers (so heap compaction is a problem).  The Mac
      community expects binary compatibility across OS versions and new hardware
      platforms.  The Mac does not have memory protection, which makes debugging
      harder.  What I'm getting at is that there may be more complexity for the
      "same" job, leading to a problem similar to that of user interfaces: if it is
      hard it takes more effort, and you always have limits on your development
      resources.


   So, what would happen if a company built a computer that used Unix,
   then added a GUI comparable to that of the Macintosh, and to top it
   off, they did all the tedious user interface work for the software
   developer?

   I think the next few years should prove to be an interesting time for
   software developers.

   -Mike

It strikes me that what you are describing is exactly what NeXT did -- the
NeXTStep GUI runs on top of a MACH Kernel, and the Interface Builder
application is supposed to greatly ease software development.  Of course it's
noticeably sluggish on a 68030 (largely, I'm told, from the use of Postscript
as the unified imaging model).  We'll see how they fare as the 68040 based
models start becoming more widespread...


--
|-                       Peter E. Lee, Staff Assistant                       -|
|   Software Development Lab at the University of Massachusetts at Amherst    |
|         lee@cs.umass.edu or Fuligin@umass.bitnet or (413) 256-1329          |
"When you expect whistles, it's flutes.  When you expect flutes, it's whistles"