[TUHS] TUHS Digest, Vol 32, Issue 8
Evan de Riel
menace3society at gnu-darwin.org
Sat Jun 10 16:04:49 AEST 2006
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
More information about the TUHS
mailing list