Just finished reading the "Art of UNIX Programming" and felt I owed the book this 'short' review.
I was quite blown away by what is an excellent and very informative text. Eric S. Raymond has outdone himself and is to be commended on this marvellous work. It is probably one of the most important references for anyone wanting to gain an understanding of the UNIX/Linux world and the potential benefits its vision has over the competition. In this book you learn where UNIX has come from, where it is going and the methods it has employed to successfully chart an impressive 35 year history.
Despite it's title, the book is a good high-level overview of what is really going on in and around UNIX without leaving you drowning in colloquial tech-speak and jargon. It provide insight into the culture surrounding UNIX as well as the motivations and thoughts of its designers, followers and advocates.
The "Art of UNIX Programming" is part historical reference, part technical manual and part observation on designs, best practice and standards related to software development. It has pedigree, drawing on the findings encompassed the many thousands of man hours poured in the development of UNIX. It is not a tub-thumping political or ideological work. At its heart this is a rational, honest, "warts and all" look at a computer system and culture that has pioneered pretty much everything we appreciate in communication and technology today; its contributions, its successes, its failures and the justifications for why UNIX is the way it is. Such understanding is pretty much a requirement for anyone wishing to become a successful and competent developer or effective system administrator. There is a lot to be admired and appreciated here not only in UNIX itself but also in the author's ability to create a summary that is informative, intriguing and entertaining without ever losing the reader's attention.
To an outsider or newbie, UNIX seems like a bewildering and random set of systems, tools, apis with varying documentation systems having seemingly no real set of rules or conventions. This couldn't be further from the truth. There is certainly method in the apparent madness. A method, drive and focus which is to be admired for its aspirations, even if it doesn't always quite succeed. The fact that some of the development tools in use today have origins stretching back to beginnings of UNIX itself is truly astonishing. In today's throw away culture, UNIX teaches us to nurture toolsets extolling the virtues of minimalism, simplicity, transparency and orthogonality over monolithic, complex, closed designs and systems which subsequently have relatively limited lifespans. Programmers from other disciplines can learn a lot here. They would do well to heed the advice in the maxim famously coined by Henry Spencer (also a contributor to this book), "Those who do not understand UNIX are condemned to reinvent it -- badly".
There is certainly something here for everyone. I now have a much better grasp of what the UNIX/Linux culture and community is all about, how open source projects work in practice and importantly how all the different licenses (MIT, BSD, Artistic License, GPL, LGPL, MPL) affect currently available open source projects and products. I can see why Microsoft et al are rather unhappy about the implications of the GPL and the seemingly 'viral' nature of it.
This book makes me really appreciate the importance of environments such as Cygwin and how it is even possible for it to sit on top of a Windows platform and still remain a useful and effective tool. You realise that this is only really possible due to the inherent nature of simplicity embedded within the fabric of UNIX itself. Its design has made it flexible enough to run on nearly every hardware platform in existence. The discussions on how standards have affected development of UNIX makes for a revealing read. It sheds insight into how it was even possible for Linus Torvalds to consider creating his own UNIX implementation thanks largely to the work put into the POSIX standards.
In summary, buy and read this book. The time invested will certainly be worth the effort.