This is a response to Ron Bardarson on Z-Node
      Central, part of a discussion we have been having
      regarding the implementation of WordStar 4.0 as a
      ZCPR3 shell and Jay Sage's column in The Computer
      Journal on the same topic.
                               - Rick Charnes, 7/18/88

Most amusing how you keep turning a conversation about WS4 as a
shell into a conversation about shells in general.  I am curious as
to why you insist on doing this.  I rather chuckled in your using
the marvelous ZFILER as a defense of WS4 being a shell -- please
don't blaspheme such a wonderful program in this manner!

If you have read any of the documentation I have written for my
various aliases or my "Forever Z" column in the Morrow Owners
Review, you will know that I am a particular connoisseur of the
exotic shell and shell variable programs that many don't even use
regularly such as SHSET, SHVAR, GETVAR, RESOLVE, FOR (I even once
went for days with Dreas' SH20 as my main shell -- now that's
interesting!) and keep pushing for their increased use -- not to
mention standard ones such as ZFILER.

The ZCPR3 shells and shell variable utilities are wonderful.  I
relish my use of SHVAR and RESOLVE and recently went on an alias
rampage using SH.VAR as a sort of "data file".  I had SOME of the
same reaction that you did (saw your note on Lillipute) to Jay's TCJ
article.  Jay has, from what I've been able to gather, simply not
gotten around to incorporating into his regular repertoire some of
the more esoteric shell variable utilities that many of us use and
love and would never do without.

But Jay certainly wasn't coming out "against" shells or the shell
variable utilities -- certainly the author of ZFILER couldn't be
fairly accused of that -- but merely the way the shell concept has
been implemented in some programs.  He said nothing about the shell
variable utilities, which strictly speaking must be distinguished
from the shells.  I admit that his discussion of the shell stack and
the shell concept without mentioning once any of the shell variable
utilities does by default help to perpetuate the community's
ignorance of these programs.  But perhaps this is Dreas' (or my) job.

If we distinguish the "menu shells" -- the MENU --> ZMANG/VMENU -->
ZFILER continuum -- from the shell variable utilities, even though
both require the use of the shell stack I think it could safely be
said that for some reason still unknown to me, MOST in the Z
community people rarely use or even know much about the latter, and
this I join you in lamenting.

But do you disagree with, for instance, Jay's logic in arguing for
WS4 as a ZCPR2-style shell, which would allow its use as a "menu"
program AS WELL AS in an alias in a MCL sequence?  And certainly Rob
Wood's implementation of W.COM is an improvement over the way it
previously was prohibited from being used in an alias.  Steve Cohen
has also commented that he might have advantageously used the ZCPR2
concept in his ZPATCH as well, now similarly prevented from ARUNZ
use.

Maybe all this boils down to a disagreement between people for whom
ARUNZ and aliases are a fundamental feature of their Z-System use
vs. those who rarely use the alias facility of Z.  For the latter --
of course! -- WS4 as a full ZCPR3 shell is a natural; there's
nothing lost and everything gained.

On the other hand, for me ARUNZ is the _fundament_ of ZCPR3; it is
its crystallized essence.  It is the Z utility -- nay, the operating
environment -- which gives me more joy, creativity and opportunity
for learning and experimentation than any other.  And naturally, as
you would expect, something that cannot be used in that environment
.. well, I don't like that.

If the disadvantages of being unable to use a ZCPR3 shell inside an
alias are NOT outweighed by the advantages of a program's being a
full Z3 shell, well --- that's the point at which I must question
what's going on.  That's the balance that must be weighed.  Whenever
we consider making a utility a ZCPR3 shell we must face squarely up
to the fact that in doing so we are going to be locking it out from
a major, very important feature of ZCPR3 -- the alias-creation
facility.  And for a larger number of people than I think you might
suspect, those are people's feelings about the status of WS4.

I've always seen my own ZCPR3 practice and ideological underpinnings
as incorporating a synthesis of the Sage/ARUNZ school on one hand
and the Dreas Nielsen/shell variable school which I have defended in
my alias documentations against all detractors, or even more
insidiously those who simply ignore and never use the shell variable
programs.  As far as I know the shell stack is absolutely essential
to these latter type of programs, and Jay erred in not giving these
programs -- and the shell stack they require -- their due.  I love
RESOLVE and SHVAR and use FOR -- yes, from the command line, simply
because it's so much fun -- every occasion I get.

I have similarly used the SHSET/CMD duo for as long as I have been a
Z fan.  In fact this is why I have configured my system for 4 shell
stack entries of *64* bytes each -- a 32-character command line is
far too limiting for any serious SHSET work.  I have also recently
uploaded Dreas Nielsen's modification to the ZCPR33 CP -- that he
released specifically at my request -- to allow for flow control
within custom shells.  I think Jay will disagree with what Dreas has
done, and prefers rather to EITHER implement flow control
system-wide but NOT while while custom shells, or with the SHELLIF
equate within custom shells but NOT system-wide.  Discussion on this
topic should prove interesting.

But all this is neither here nor there.  The point that we were
discussing in previous messages here is not the value of shells in
general, which needs no belaboring here, but rather specifically of
WS4 being implemented as a ZCPR3 shell.  You have said not a word to
convince me of a single advantage in its being this way and I can
only take your silence to confirm me in my belief that it was a
mistake.  I was rather amused by your comment, "Most of the
complaints I have seen about WS4 are really misuse of a shell." This
is funny!  I suppose from a certain point of view trying to put WS4
into a multiple command line could be viewed as a "misuse of a
shell" --- but it begs (and implicitly skirts) the question of why
WS4 should be a ZCPR3 shell in the first place.  As I said
previously I am quite convinced there are far more people, if -- as
with the current implementation of WS4 -- WE ARE FORCED TO CHOOSE
BETWEEN ONE OR THE OTHER, who would rather put WS4 into a multiple
command sequence than use it as a full Z3 shell.

Ok, I just spent 20 minutes or so using WS4 as a shell, utilizing
the shorthand feature to define various keys to run the "R" command,
then a (possibly multiple) command sequence, and finally a carriage
return.  I defined key "z" as:

             RECHO LOADING ZFILER...;ZFILER^M

This is nice, I agree.  And I spent Saturday evening with Dave
McCord who showed it to me on his SB180 (or was it is DT42, I can't
remember) with the RAM disk, and it's even nicer.

But I just don't see that using it as this kind of menu shell has that
much usefulness.  I simply don't see it as the kind of thing that
many people would _do_.  I don't know.  I'd like to hear your point
of view and others'.  I'd like to hear that having this kind of
"interface to the operating system" is important for you to have
FROM WITHIN WS4.  And most importantly --- IS IMPORTANT ENOUGH TO
GIVE UP THE ABILITY TO RUN WS4 FROM AN ALIAS.  My suspicion is that
you don't use ARUNZ much, and I would bet a dime to a dollar that
anyone who defends the implementation of WS4 as a ZCPR3 shell also
doesn't use ARUNZ or aliases much.  The more I think of it, I think
_this_ is really the crux of the issue, the meat of the whole
question.

Furthermore, using WS4 as an ersatz MENU.COM seems quite limited,
since it doesn't even have the ability to "hold" and act upon a
"pointer file" or system file and run its CL sequence on that a la
ZMANG/VMENU or MENU respectively.  Lastly, one is not even returned
to the "shorthand" "menu display" but rather to the WS opening menu,
so an additional keystroke is required to get back to where you
started.  Again, maybe on a RAM disk it feels different, but for me
the advantages just don't outweigh the disadvantages.

I look forward to your response.