[net.cog-eng] comments on Norman flame

gsp@ulysses.UUCP (08/22/83)

Here is my reply to Don Norman's flame on the lack of software tools,
especially for screen handling.  

It seems netnews from sdcsla is not reaching the net,
so it may be a while until his message reaches the same net.cog-eng.

Don says cong-eng is thwarted by the lack of software tools.
	This is precisely what I have argued by implementing my Interface Arsenal.
	Unfortunately, this software is not available outside Bell Labs.

Don asks why UNIX uses the screen as a scolling teletype rather than
using paging and screen formatting?
	Look at UNIX games!  There are some that have these features,
	and they are a million times better than the scrolling kind.
	How awful that chess program is!  It should be changed!
	But there are also points from the other camp.
	By making no assumptions about the terminal, portability
	is enhanced.  By putting scrolling programs into windows on my blit,
	I in effect have done the screen formatting; paging is less important
	in a small window.

	About paging: Well, Don is complaining about slow lines (he never goes
	below 1200 baud).  With faster lines, we could save the context that
	scolling saves over paging.  I should also point out that many of
	the problems Don is having are due to the verbosity of the programs
	he is using; in many cases, I think less would give him more.
	Don's computations about paging versus scrolling took me more time
	to read than a months worth of time savings.

Don complains about the `cursors' package.  That's 'curses' Don.
	I aggree the curses package is too big and overkill.
	After reading Don's note, I sat down for an evening to
	write, ta da!, yes another component of the Interface Arsenal:
	the tiny curses package that features:
		no screen optimization
		no intelligence at all
		not nearly as many functions as curses (about ten)
	But it does have:
		move (row, col)
		clear ()
		clearline ()
		clearbottom ()
		bell () /* may be visible */
		bold, italic, and regular fonts
		up(), down()
		lineadd ()
		linedelete ()
		<others may be coming>
	This may be even more than is needed, but it sheilds the
	programmer from termcap, and provides the functions for the
	most popular capabilities.  The code is about 100 lines.
	The overhead is a few thousand bytes, not the 30K of curses.
	The software runs fast enough to use without guilt in any program.
	But for the windowing capabilities on glass ttys,
	and intelligent screen handling, it may be that curses
	is the best that can be done.
	On bit mapped screens, much better software can be provided,
	but the software has not caught up to that hardware.


In summary, I think Don has some good points.
Some can be answered with a few hours work: tiny curses.
Some are worth arguing: paging versus scrolling,
but will probably go away with better hardware,
and the software it will inspire.