Trying to follow Knuth's TAOCP glory, many books added "The art of ..." to their names. This book, in my opinion, definitely deserves this prefix. The ideas it expresses are in nature more of art than of anything else. It tries to deliver comprehensions that are difficult to describe, and shows many examples of how these comprehensions take form.

So what is this book about ? It's hard to put a finger on one topic - there are so many. UNIX history, philosophy, community. Design, implementation, documentation, usability, testing of programs. Programming tools, languages, interfaces, environments. Data formats, modularity, transparency. Truly, the scope is vast. It seems to me that Eric Raymond filled this book with his whole experience, thoughts and knowledge - a landmark book for him.

Throughout this wide range of topics, I think the main goal of the book is to show the "UNIX spirit", or the *right* way developers should think, design, write code, communicate and share. In my opinion, after a few years of programming experience, people start to get a feeling for a *right* way to do things. They not always actually do the right things. Many times, from commencial and other considerations, things are done for the sake of profit, not ideology. This is fine, this is how it's supposed to be. It doesn't mean, though, that people don't develop an appreciation for the truly right way to do this job.

Raymond tries to show how this *right* way is embodied in UNIX. UNIX as a fruit of work of talented people, who understood the right way and used this understanding to create the most powerful computing system in the world.

There's also a technical side to this review. Those who've had at least some experience using and programming for UNIX, but not too much experience, surely feel that the world of UNIX is vast and difficult to fully grasp (from icntl, ed and bc to Docbook, XML, XSL, Python, etc). I know this is what I felt. TAOUP put many things in order for me. Its description of the UNIX environment is detailed and entertaining, and not too technical. More than telling what various tools exist and co-exist in the UNIX environment, it tells why things are the way they are, and how it is correctly to use the tools and make them cooperate to achieve useful tasks. I can't say that this book taught me many new things about UNIX, but I can surely say that it arranged the things better in my head. Besides, I'm sure it can even serve as a reference later. It's scope is so large that I feel that I'll be able to turn to it later for answers to questions that interest me.

All in all, TAOUP is highly recommended, whether you're programming for UNIX or not. If you are, your understanding of your system will be surely improved, which might help you achieve your tasks better and faster. If you are a Windows (or Mac) developer, this book will introduce you into the exciting world of UNIX - you don't have to agree with everything, but you will definitely learn new things. At the very least, you will enjoy an entertaning account of the development of the PC/Internet world in the past 3 decades.


comments powered by Disqus