On 10 Jun, 2006, at 00:40, John Cowan wrote:
...
No, what makes Unixicians sont droit et Windowsites sont tort
is that Unix lets you make up your own stuff out of existing pieces,
and Windows does not. The Windows utilities just do what they do, and
if it's not what you want, it's back to the drawing board, so people
create TMA-1 monoliths. This tendency is infecting Unix too nowadays,
as lots of people have discovered how much easier it is to create
TMA-1s on Unix than on Windows, and so they do, and the native
tradition
of coarse-grained dataflow gets almost lost against the background
surviving only in the memories of the Old Farts here gathered.
Our tradition's dying unless we do something to keep it alive.
What's that going to be?
As ashamed as I am to admit it, I do read slashdot on occasion, and
on one such occasion I saw that there was an interview with Rob Pike
[1]; Mr Pike's comments weren't one and all insightful, but his
answer the to question about whether "Unix style" was still a valid
development aesthetic started me thinking (I've haven't stopped yet,
so I don't yet know if I agree):
Q: ... do you think the idea of "one tool doing one job" has been
abandoned? ...
A: Those days are dead and gone and the eulogy was delivered by Perl.
I think his point is that what Perl and its friends--the other high-
level, interpreter languages like Python, Ruby, and maybe (ick) PHP--
have gotten to the point where they can be used as a single framework
for writing short, ad-hoc programs in these languages that replace
combinations of the whole mess of Unix utilities like grep, cat, sed,
awk, uniq, sort, column, rs, head, tail, and maybe even more complex
tools like wget or hexdumps.
It's certainly more typing to write a perl function that can do the
work of one of these utilities, but on the other hand one has to
worry substantially less about syntax options for dozens different
commands, remembering enough escape sequences for nested for loops,
etc. Instead of making many programs that each do one thing well, we
have a language and a framework designed to do *anything*, and handle
it well (or at least satisfactorily). And isn't being able to do
anything you tell it to do with equal facility one of the great
things about computers?
[1]:
http://interviews.slashdot.org/article.pl?sid=04/10/18/1153211
Yours,
Evan