Zsh Mailing List Archive
Messages sorted by:
Re: Complex forms deprecated?
- X-seq: zsh-users 11561
- From: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- To: zsh-users@xxxxxxxxxx
- Subject: Re: Complex forms deprecated?
- Date: Wed, 13 Jun 2007 08:42:34 -0700
- In-reply-to: <466FAB58.5090103@xxxxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
- References: <20070611144016.GB5245@xxxxxxxxxxxxxxxxxxxxx> <466FAB58.5090103@xxxxxxxxxxxxxxxxxx>
On Jun 13, 10:31am, Marc Chantreux wrote:
} > I would like to know if the alternate forms for complex commands
} > (cf. zshmisc) are really deprecated as mentionned, and if they are
} > really supposed to be removed some day.
} Deprecated ? but why ? i always thought that the stoneage syntax will be
} deprecated some day!
As is often the case, the answer to "why?" is a history lesson.
Back in the dawn of time (that would be around 1990), zsh was created
to be a shell that had all the interactive advantages of csh and all
the scripting advantages of the Bourne shell. It therefore had a mix
of the syntax of both, but made no special effort to be 100% compatible
with either of them.
Skip ahead a few years. Paul Falstad is no longer at Princeton  and
no longer has an active role in maintaining zsh. At the same time, the
POSIX standard has begun to be widely accepted and the Korn shell is
spreading through the commercially-available UNIX platforms. Both of
these enshrine the "stoneage" Bourne shell syntax as The Standard, with
a smaller number of extensions but some that zsh doesn't have. 
In this context, the group that had taken over zsh from Paul decided 
that the thing to do was to abandon the "obsolete" csh syntax and become
a Korn shell clone. Options that had been named "csh_whatever" became
"csh_junkie_whatever"  and "glob_qual" became "bare_glob_qual" and
so on. The manual was reoganized to separate the non-POSIXy syntax into
its own section and parts were marked as deprecated. Other assorted
changes were begun that would eventually lead to the "emulate" command
and to POSIX compatibility when running as "sh". 
Skip ahead another few years. Now Linux is beginning to explode and
has carried zsh with it into parts of the world it never saw before.
The leadership of the Zsh Development Group has changed from mostly
American college students and sysadmins to mostly European university
students and computer professionals. The faction that was strongly
in favor of becoming a pure POSIX shell has moved on, and the major
development focus has shifted from shell syntax to the new completion
system and the dynamic module architecture.
This environment made the things that were different about zsh into
strengths rather than perceived weaknesses.  The larger user base
made backward compatibility more important.  Most zsh development
had been in the C code before, but now the biggest project was being
written in the shell language itself, and there wasn't any incentive
to keep fooling with the parser. The plans to drop the "deprecated"
features evaporated, but there didn't seem to be any reason to update
the manual to restore them to their former status.
Which, after another skip of a few years, brings us to the present,
where the shell has mostly stabilized, the development group is led
almost entirely by computer professionals,  the focus is on
cleaning up the messes left by the previous 15 years, and it requires
500 words to answer a one-word question. 
 In fact, he was working for me at Z-Code Software.
 And in some cases still doesn't have, in large part because of
internal code structure from the original implementation that
doesn't lend itself to the ksh extension style.
 I objected to this decision.
 Only "addicts" would insist on using csh syntax, you see.
 So it wasn't all bad.
 From my admittedly subjective viewpoint, see .
 You can make people reconfigure their MP3 player every time you
upgrade it, but if you meddle with their shell they can't even
 We need to get a few more students in here again, but they're
all off programming in Java and Python.
 Somebody should add all this to the Zsh entry on Wikipedia.
Messages sorted by: