[ Note: I'm blogging this for a practical reason, not just to agree with Tim's statements - see below for why. ]
Here is Tim O'Reilly's post about Twitter:
Tim O'Reilly on "Why I love Twitter".
He gives some good reasons for liking Twitter - the post is worth reading ...
One of the reasons he gives is that Twitter is in many ways similar to the UNIX philosophy of simple, co-operating tools.
There's a link in his post to the book that best describes that UNIX philosophy - "The UNIX Programming Environment" by Kernighan and Pike (UPE for short).
[ Important point: though the book (and Tim) mention the words "the UNIX philosophy", the book is eminently practical - it's not just about philosophy. In fact, it's designed to be read while sitting at your machine and trying out the examples and exercises. (Doing that was one of the big things that helped me learn UNIX fairly well, quite a while back (though I'm still learning it :-)
[ This is the aforementioned practical reason for this post: to highly recommend that book to anyone who wants to improve their UNIX or Linux skills - because, as many of us know, Linux or other UNIX-based operating systems like FreeBSD, other BSDs and Mac OS X (particularly the free and open source ones) have been growing in usage in recent years, for good, solid reasons of cost, stability, security, etc. - and will likely be used even more in the near future, because of the current global economic crisis. ]
Another good book somewhat along the same lines is Eric Raymond's book, The Art of UNIX Programming (TAOUP for short). Though a bit of a heavy read, it's definitely worth reading too. I particularly liked Eric's discussion of several "unwritten" (*) UNIX software design principles or rules - with examples from major successful open source software products - some of which, incidentally, almost all computer users use on a daily basis, but many might not even know about :-).
(*) Actually, some of those rules had been written about before Eric's book, and he refers to those sources.
Quiz: Try to guess what some of those extensively used products are, before reading TAOUP to find out. You might be surprised ...
Also, you can read TAOUP online at the link I gave above for it - though you can also buy a hard copy.
This article I wrote for IBM developerWorks may also be of interest: it's a detailed tutorial on the topic of "Developing a Linux command-line utility" and illustrates how to apply the UNIX philosophy in some detail; it uses as a case study, a real-life UNIX utility that I wrote at the specific request of a customer, one of the world's largest two-wheeler vehicle manufacturers. They needed the utility to prevent paper wastage due to printers jamming when running huge print jobs. It was deployed on their HP-UX based UNIX servers.
- Vasudev Ram.