[comp.unix.questions] Unix Type-ahead problem

gph@hpsemc.HP.COM (Paul Houtz) (05/10/89)

I have a question about Unix type-ahead:

   Do all unix systems echo the characters to the screen no matter what
is going on as you type them?  I have only worked on one type.

   The VMS systems I have worked on have type-ahead, and it buffers what 
you type without echoing until it is ready to actually execute the command.

   It's been a while since I used it, but I find the VMS implementation to
be more logical, in that I don't end up with parts of command repeated at 
the prompt.

   On unix, I find myself having to backspace to see which characters DON'T
disappear. 

   Is this implementation dependent?

prc@erbe.se (Robert Claeson) (05/11/89)

In article <810053@hpsemc.HP.COM>, gph@hpsemc.HP.COM (Paul Houtz) writes:

>    Do all unix systems echo the characters to the screen no matter what
> is going on as you type them?  I have only worked on one type.

Yes, unless echo is disabled by you or the command you're currently running.

.....
>    On unix, I find myself having to backspace to see which characters DON'T
> disappear. 
> 
>    Is this implementation dependent?

No, it's normal behaviour. BTW, Korn shell will print out the complete input
buffer again when it prints out its prompt.
-- 
          Robert Claeson      E-mail: rclaeson@erbe.se
	  ERBE DATA AB

barnett@crdgw1.crd.ge.com (Bruce Barnett) (05/11/89)

In article <677@maxim.erbe.se>, prc@erbe (Robert Claeson) writes:
>In article <810053@hpsemc.HP.COM>, gph@hpsemc.HP.COM (Paul Houtz) writes:
>
>>    Do all unix systems echo the characters to the screen no matter what
>> is going on as you type them?  I have only worked on one type.
>
>Yes, unless echo is disabled by you or the command you're currently running.

If the line you are typing is interrupted by the output from some command,
you could try Control-R to refresh the line.

I must admit that I like seeing the line I am typing in, and can type ahead
without worrying about typo's.

--
Bruce G. Barnett	<barnett@crdgw1.ge.com>  a.k.a. <barnett@[192.35.44.4]>
			uunet!steinmetz!barnett, <barnett@steinmetz.ge.com>

gandalf@csli.Stanford.EDU (Juergen Wagner) (05/12/89)

In article <810053@hpsemc.HP.COM> gph@hpsemc.HP.COM (Paul Houtz) writes:
>...
>   Do all unix systems echo the characters to the screen no matter what
>is going on as you type them?  I have only worked on one type.
>...

It depends on whether the driver which accepts character by character from
a terminal echoes input (because it is in some `echo' mode), or whether your
application has to decide the question of echoing.

By default, UNIX shells put the terminal driver into a mode in which it
echoes all its input. That's reasonable for most applications. However, under
Emacs and other programs which perform special interpretation of characters,
and/or wish to maintain a particular screen layout, it is necessary to echo
characters from the respective application program.

If UNIX could echo characters as they are *consumed* by the program which reads
from a terminal, as opposed to when they are *typed*, you would get the desired
behavior.

-- 
Juergen Wagner		   			gandalf@csli.stanford.edu
						 wagner@arisia.xerox.com

andy@syma.sussex.ac.uk (Andy Clews) (05/12/89)

From article <810053@hpsemc.HP.COM>, by gph@hpsemc.HP.COM (Paul Houtz):
>    The VMS systems I have worked on have type-ahead, and it buffers what 
> you type without echoing until it is ready to actually execute the command.
> .....
>    On unix, I find myself having to backspace to see which characters DON'T
> disappear. 

You could always do a CTRL R to refresh your command line when the
prompt finally appears. Although I'm a confirmed UNIX fan, this is one
of the features that I like in the VMS ennvironment. Now don't let's
start another UNIX/VMS war :-)

I guess it's the tty driver that's to blame, rather than the Shell.

-- 
Andy Clews, Computing Service, Univ. of Sussex, Brighton BN1 9QN, ENGLAND
JANET: andy@syma.sussex.ac.uk   BITNET: andy%syma.sussex.ac.uk@uk.ac
Voice: +44 273 606755 ext.2129

chris@mimsy.UUCP (Chris Torek) (05/13/89)

In article <8942@csli.Stanford.EDU> gandalf@csli.Stanford.EDU
(Juergen Wagner) writes:
>If UNIX could echo characters as they are *consumed* by the program
>which reads from a terminal, as opposed to when they are *typed*, you
>would get the desired behavior.

This would be easy to implement.  The question is `desired by whom'---
certainly not me.  Except when it would create real trouble (e.g., in
vi, Emacs, rogue/hack/moria, ...) I prefer to see what I am typing-ahead.

VMS (and a number of other systems) do have an advantage over
traditional Unix tty drivers, however, in the area of fast echo during
edit sessions or other `controlled screen' times.  Here, the
application should be allowed to tell the system which characters
should merely echo and be queued, and which should not echo, but rather
cause the application to wake up and see what has been typed thus far.
This must be accompanied by a maximum input length (to avoid screen
wraparound in some cases).  The matter gets rather complicated because
of the vagaries of various terminals; VMS and many (if not all) of
those other systems cheat by assuming that you have a particular brand
of terminal attached.  But it is possible to do right, and it does
improve interactive response in those special cases where it may be
used.
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 7163)
Domain:	chris@mimsy.umd.edu	Path:	uunet!mimsy!chris

dhesi@bsu-cs.bsu.edu (Rahul Dhesi) (05/14/89)

It's a question of whether you "Think VMS" or "Think UNIX".  If I use
VMS for a while, I get used to typing commands like

     cc x <cr>
     link x <cr>
     run x <cr>

quickly, and the commands are echoed as they are executed one by one.
Then when I move to UNIX, for a while I do the same and I find it
annoying that characters get echoed as I type them.  But soon I begin
to "Think UNIX" again, and I instead type

     cc x; a.out

or better still:

     cc x && a.out

You see, if you "Think UNIX", you use the semicolon to separate
multiple commands rather than newlines, and you learn to use && to
connect commands when suitable.  *Then*, when you move back to VMS,
it's annoying that you can't do this any more.

So it's all a question of your state of mind.
-- 
Rahul Dhesi <dhesi@bsu-cs.bsu.edu>
UUCP:    ...!{iuvax,pur-ee}!bsu-cs!dhesi

gandalf@csli.Stanford.EDU (Juergen Wagner) (05/14/89)

In article <7195@bsu-cs.bsu.edu> dhesi@bsu-cs.bsu.edu (Rahul Dhesi) writes:
>It's a question of whether you "Think VMS" or "Think UNIX".
...
>But soon I begin to "Think UNIX" again, and I instead type
>     cc x; a.out
>or better still:
>     cc x && a.out

Even better: use a Makefile. By now, there are also `make' clones available
under VMS and other operating systems. Yet, how long did it take until `make'
was accepted as a reasonable tool under VMS (by "accepted" I mean "accepted by
those who built VMS" - No, no names).

UNIX certainly has its deficiencies and problems, and there will always be a
non-trivial number of users who will not be satisfied with a particular
operating system. However, one thing I especially like about UNIX is the
spirit of creating new tools as they are needed. As Rahul mentions, command
pipelines, multiple processes, and other concepts which are inherent features
of UNIX are often found only rudimentary in other systems (how would I do
something like "tbl foo.me | nroff -me | more" without temporary files; why
does it take so long to create a subprocess; ...). The elementary principle
of function composition is one of the most important features of UNIX.

These features are what is needed in a development environment. A production
environment (like VMS) may not need them but developing software might be
less comfortable (and if one tries to embed UNIX in VMS [Eunice], significant
performance problems may arise).

[PS: I used the Very Mysterious System for a few years, but have become
     a highly biased UNIX-user over the last six years.
 flame/output=NLA0:[0,0]/ignore=world/override=permissions/blocksize=0]

-- 
Juergen Wagner		   			gandalf@csli.stanford.edu
						 wagner@arisia.xerox.com

andy@syma.sussex.ac.uk (Andy Clews) (05/15/89)

From article <7195@bsu-cs.bsu.edu>, by dhesi@bsu-cs.bsu.edu (Rahul Dhesi):
> [...useful advice on Thinking Unix instead of Thinking VMS]
> 
> So it's all a question of your state of mind.
                                 ^^^^^^^^^^^^^
Severely hallucinogenic, if one constantly switches between VMS and UNIX :-)


-- 
Andy Clews, Computing Service, Univ. of Sussex, Brighton BN1 9QN, ENGLAND
JANET: andy@syma.sussex.ac.uk   BITNET: andy%syma.sussex.ac.uk@uk.ac
Voice: +44 273 606755 ext.2129