The Unix philosophy is not an end to itself

May 13, 2013

Today I feel like opening a can of worms that I've alluded to before.

Here is something very important about the Unix philosophy (regardless of what exactly that is): the Unix philosophy was not conceived as an empty philosophy that was an end to itself. Instead it is above all a theory about how to make computers easy, powerful, and useful. This philosophy (or at least the things built by people following it at Bell Labs and elsewhere) has been extraordinarily successful, and I'm not just talking about Unix; concepts first pioneered in Unix and C now form core pieces of pretty much every computer system in the world.

But it's possible to take this too far. To put it one way, it's my strong view that the core goal of Unix is to be useful, not to be philosophically pure. The underlying purpose comes first and fitting how to be useful into 'the Unix way of doing things' comes second. If Unix has to be non-Unixy for a while (or even permanently) in order to be useful, then, well, I pick usefulness. Excessive minimalism and 'Unixness' for the sake of minimalism and Unixness is a kind of masochism.

(Of course the devil is in the details, as it always is. It's certainly possible to ruin Unix without getting anything worth it in exchange.)

What this biases me towards is an environment where one solves the problem first then try to make it fit into the traditional 'Unix way' second. Which is why part of me thinks that GNU sort's -h option is perfectly fine because it solves a real problem (and solves it now).

(The counterargument is that Unix cannot be all things to all people. As with all systems, at some point you have to draw a line and say 'this doesn't fit, you need to go elsewhere'. I don't know how to balance this. I do know that a certain amount of griping about 'the one true Unix way' and how (some) modern Unixes are ruining it reminds me an awful lot of the griping of Lisp adherents at the rise of Unix, and for that matter the griping of Unix people (myself sometimes included) at the rise of Windows and Macs.)

Comments on this page:

From at 2013-05-13 05:41:25:

Yes one has to be pragmatic in the interfaces used. I.E. picking the right level of decomposition, while also honoring past decisions and future trends. Tricky to say the least :)

For this specific example, for a comparison of `sort -h` versus a more "UNIXy" approach, see the second "numfmt as a filter" section in:

By p.kern at 2013-09-12 13:55:10:

a quote saved from Usenet (ie. a very long time ago):

 This is Unix, we shouldn't be saying "why would you want to do that",
 we should be saying "sure, you can do that if you want." :-)
       -- Steve Hayman <>
Written on 13 May 2013.
« The consequences of importing a module twice
My language irritations with Go (so far) and why I'm wrong about them »

Page tools: View Source, View Normal, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Mon May 13 00:29:34 2013
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.