The Art of UNIX Programming (The Addison-Wesley Professional Computng Series)

The Art of UNIX Programming (The Addison-Wesley Professional Computng Series)

Eric S. Raymond

Language: English

Pages: 560

ISBN: 0131429019

Format: PDF / Kindle (mobi) / ePub


This text reveals the software design secrets of the original Unix designers, showing how they produce software that is fast, portable, reuseable, modular and long-lived. Luminaries including Brian Kernighan, David Korn and Henry Spencer contribute to the book.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Zen not as a religion but as a therapeutic form of mental discipline—which, in its purest non-theistic forms, is exactly what Zen is. Conventions Used in This Book The term “UNIX” is technically and legally a trademark of The Open Group, and should formally be used only for operating systems which are certified to have passed The Open Group’s elaborate standards-conformance tests. In this book we use “Unix” in the looser sense widely current among programmers, to refer to any operating system

is likely to fall in when one learns it. Thus the loyalty Unix commands. Much of Unix’s stability and success has to be attributed to its inherent strengths, to design decisions Ken Thompson, Dennis Ritchie, Brian Kernighan, Doug McIlroy, Rob Pike and other early Unix developers made back at the beginning; decisions that have been proven sound over and over. But just as much is due to the design philosophy, art of programming, and technical culture that grew up around Unix in the early days. This

especially when that next person might be yourself some years down the road. Never struggle to decipher subtle code three times. Once might be a one-shot fluke, but if you find yourself having to figure it out a second time—because the first was too long ago and you’ve forgotten details—it is time to comment the code so that the third time will be relatively painless. —Henry Spencer 1.6.3 Rule of Composition: Design programs to be connected with other programs. It’s hard to avoid programming

operation is sometimes called marshaling and its inverse (load) operation unmarshaling. These terms are usually applied with respect to objects in an OO language like C++ or Python or Java, but could be used with equal justice of operations like loading a graphics file into the internal storage of a graphics editor and saving it out after modifications. A significant percentage of what C and C++ programmers maintain is ad-hoc code for marshaling and unmarshaling operations—even when the serialized

instrumentation switches as a good sign, and their absence as possibly a bad one. Absence suggests an inexperienced or careless developer; presence suggests one with enough wisdom to follow the Rule of Transparency. The temptation to overprotect is especially strong in GUI applications targeted for end users, like mail readers. One reason Unix developers have been cool toward GUI interfaces is that, in their designers’ haste to make them ‘user-friendly’ each one often becomes frustratingly opaque

Download sample

Download