Book review: “The art of UNIX programming” by Eric Raymond

April 15th, 2004 at 11:42 am

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.

Related posts:

  1. Book review: “Win32 Perl Programming: The Standard Extensions” by Dave Roth
  2. understanding web programming & design with PHP / XML / XSLT
  3. “Programming Embedded systems in C and C++” by Michael Barr
  4. Book review: “Programming Pearls” by Jon Bentley
  5. parser hacking

Leave a Reply

To post code with preserved formatting, enclose it in `backticks` (even multiple lines)