edit: new "Avoid Gratuitous Negativity" complience.
edit: new "Avoid Gratuitous Negativity" complience.
And because of this, unices come with at least one accompanying higher order scripting language like perl or python.
I am not a fan of the bourne shell syntax but you can write fairly large programs on it, and the idea itself of using other programs and piping it at the core and heart of unix.
Perl is tied with any modern unix for historical reasons, but it has been criticized for not really following the principles of unix really well.
One critique of the worse-is-better [1] philosophy (Unix), is the design starts cracking more as it's pushed to scale to its logical conclusion.
Of course, maybe the worse-is-better essay is inapplicable (and the author himself argued both sides under a pseudonym or two). And good design is a matter of degree; we could all critique the-right-thing representatives. But here I think it's a useful model to describe what's going on.
I'm a cli ninja (at least for many tasks I need to do daily for a measure.) even though I nearly never ever need it's expanded use cases like arrays or process substitution. For example the latest shellshock was the result of an extended use case where implications of it was not well thought.
"Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can." - Look at the samples: Emacs, MATLAB, Mozilla, Opera, Trillian, and Drupal. Really?
http://en.wikipedia.org/wiki/Jamie_Zawinski#Zawinski.27s_law...
Filenames with spaces (or quotes, or unicode characters, or control characters, or...) have wreaked many a seemingly ideal program which needs to iterate over files.
Shell will always have problems with handling bloated/overheaded data structures. In these situations using intermediary higher level languages would help.
PS: I'm sorry my first post is unintentionally against new rule. I just realized.
Also there are repls or shells intended to have common data structures for input and output. (look into powershell)
What I mean is, this sentense you wrote is content-free. What does it mean "it was not a problem"? That they managed to do and be productive without it?
In the same sense not having computers was not a problem for nearly 2 millenia since Christ. They've managed to get by without them.
Not having something is not a problem in general, when you don't know what you're missing. You only see the problem when you compare the faster and more productive workflow and the possibilities you'd get if you had something compared to coping without it.
Which is how inventions are made, compared to "well, what we got works for us".
>Shell is not intended for high level data processing.
That's a limitation of the shell, that could very well be bypassed, not some physical law.
One could imagine shells very well intended for high level data processing (and in fact people have built some of those -- heck, even the Lisp Machines qualify).
Even -0 fails with some file contents due to null bytes embedded in Unicode characters.
Perhaps this is for enterprise shells, so yes :-)