>>5I disagree. Shell syntax is designed to take as few characters as possible, so that it is quickly typable by someone who is well versed in it. It is not meant to be intuitive, readable, or even maintainable. For that, shell syntax usually isn't shit at all.
The problem is when people try to make it maintainable. For example, our
ENTERPRISE build system is an ungodly amalgam of
ant and
make, so naturally every time a tweak needs to be done to it, people just tack on shell scripts because it's easier than tracing the mess of self-rewriting Makefiles or trying to bludgeon ant into learning a new trick.
The root of the problem is that the various shell languages have
export
trivially, and this isn't so cleanly done in other languages unless they take over the calling chain themselves. I'm not sure if I'd call this a deficiency of the operating system model, or of other languages, or what, but it put *sh where it wasn't supposed to go.
Of course, you still can say that this means shell languages suck, but before you do so I would invite comparison with Java - another language that ended up in a place it wasn't originally meant to be, but responded very in a very different manner than bash/sh/csh/etc, and I think suffered for it.