<<< Date Index >>>     <<< Thread Index >>>

Re: [PATCH] Remove absolute paths from gpg.rc



On Fri, Mar 23, 2007 at 03:53:08PM +0000, Ian Collier wrote:
> On Fri, Mar 23, 2007 at 02:52:24AM +0000, Dave wrote:

> > Check this out:
> > $ cat --version
> > cat (coreutils) 5.2.1
> > Written by Torbjorn Granlund and Richard M. Stallman.
> > 
> > Copyright (C) 2004 Free Software Foundation, Inc.
> > This is free software; see the source for copying conditions.  There is NO
> > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> 
> > Hey, this is a three-year-old program that still does its job right today.  
> > Can
> > you imagine how much programmer work hours were saved by the decision to 
> > make
> > cat(1) do one thing and do it right the first time?
> 
> It's three years old only because you haven't installed a newer version.

I'm talking about the program I have installed.  It hasn't been touched in three
years, yet I don't see the crashes typical of bloated software that hasn't been
updated in ages.

> Hey look, I've got an even older one than that:

...and I'm sure you don't miss the bug fixes and great new features (with new
bugs) of the latest version one bit ... you know why? because the differences
between any of our versions are tiny, incremental improvements, that 99.9% of
users will never notice ... that's the mark of a quality program ... 99.9% of
users don't need to update when a new version comes out (i.e., the latest
version doesn't fix a critical security hole, add an essential new feature, or
fix a commonly encountered bug, because it's already been doing its job quite
well for at least five years, thank you)

>  $ cat --version
>  cat (textutils) 2.0.21
>  Written by Torbjorn Granlund and Richard M. Stallman.
> 
>  Copyright (C) 2002 Free Software Foundation, Inc.
>  This is free software; see the source for copying conditions.  There is NO
>  warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
> 
> Yet at the same time, if I look at a recently installed operating system:
> 
>  $ cat --version
>  cat (GNU coreutils) 5.97
>  Copyright (C) 2006 Free Software Foundation, Inc.
>  This is free software.  You may redistribute copies of it under the terms of
>  the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
>  There is NO WARRANTY, to the extent permitted by law.
> 
>  Written by Torbjorn Granlund and Richard M. Stallman.

Okay, so nobody can claim that cat(1) isn't being actively developed as an
excuse for why I make do with my three-year-old version (or why you make do with
your five-year-old version).  Neither of us feels the need to upgrade.

> So it is in fact under one year old, and it seems that programmer work hours
> are still being spent on it.

here and there ... BTW - we don't even know off-hand if cat(1) itself has been
touched in five years, since the copyright is on the entire coreutils package,
AFAIK

> As for "cat" being a simple tool to do one thing, well...
> 
>  $ cat --help
>  Usage: cat [OPTION] [FILE]...
>  Concatenate FILE(s), or standard input, to standard output.
>  
>    -A, --show-all           equivalent to -vET
>    -b, --number-nonblank    number nonblank output lines
>    -e                       equivalent to -vE
>    -E, --show-ends          display $ at end of each line
>    -n, --number             number all output lines
>    -s, --squeeze-blank      never more than one single blank line
>    -t                       equivalent to -vT
>    -T, --show-tabs          display TAB characters as ^I
>    -u                       (ignored)
>    -v, --show-nonprinting   use ^ and M- notation, except for LFD and TAB
>        --help     display this help and exit
>        --version  output version information and exit
>  
>  With no FILE, or when FILE is -, read standard input.
>  
>  Examples:
>    cat f - g  Output f's contents, then standard input, then g's contents.
>    cat        Copy standard input to standard output.
>  
>  Report bugs to <bug-coreutils@xxxxxxx>.

An actively maintained program that can fit its entire documentation onto a
single screen is a very simple program, indeed.

> It's actually not that simple and it can be used for several different
> (but related) purposes.

A good tool can always be used for several different (but related) purposes, but
still has a very clear and simple job.  A monkeywrench, for example, can be used
to pull a pot out of the oven, to redo a frayed shoelace, or to change a drive
belt, but its job is very simple and very clear: to grab something and hold on
for dear life.

A tool that can't be reused for anything but its original purpose is a rather
poor investment, unless that purpose is extremely common or extremely difficult
to accomplish with anything but a purpose-built tool.  (For example, a shower
valve can be extracted with the combination of two screwdrivers and a hammer,
but a valve extractor saves lots of time, and leaves the valve head in better
shape when you're done, buying it extra years of useful life.)  However, it's
worth noting that 20% of the tools in the world can easily do 80% of the tasks
that need doing.  If you want sound advice, buy those 20%, not the other 80%.

 - Dave