The Art of UNIX Programming is another one for the bookshelf. It is jam-packed with insights into the philosophy, mindset and approach a Unix developer has when tackling software design the Unix way. While I have been involved with software development for a number of years, nearly all the systems I have worked on have been focussed towards the Microsoft stack. After finishing this book I now appreciate how the “other” side thinks - and I wished I had known about their philosophies and mindset years ago. Many of the things I have only recently learned to embrace in the Microsoft world have been common practice in the Unix world for decades.
The book is divided into 4 main sections: Context, Design, Implementation and Community. I really enjoyed the sections on Context and Community although there were nuggets of gold in all 4 sections.
As far as I am concerned the whole of chapter 1 is required reading. It covers a set of rules that one should apply to make effective design decisions. These rules include:
- Rule of Modularity
- Rule of Clarity
- Rule of Composition
- Rule of Separation
- Rule of Simplicity
- Rule of Optimization
Another section I really enjoyed was found in chapter 4 where it discussed Top Down vs. Bottom Up approach. I have been a strong advocate for the top down approach to design for a few years now, but the arguments they put forward in favor of bottom up really has made me question this stance.
The book ends off with what I would consider some of the most entertaining writing I have read in years regarding the software mindset with section ‘D’ - the “Rootless Root - The Unix Koans of Master Foo”. I found this section hilarious and enlightening.
Buy on Amazon