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@gnu.org>. 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