[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



More information about the TUHS mailing list