Enjoy fast, free delivery, exclusive deals, and award-winning movies & TV shows with Prime
Try Prime
and start saving today with fast, free delivery
Amazon Prime includes:
Fast, FREE Delivery is available to Prime members. To join, select "Try Amazon Prime and start saving today with Fast, FREE Delivery" below the Add to Cart button.
Amazon Prime members enjoy:- Cardmembers earn 5% Back at Amazon.com with a Prime Credit Card.
- Unlimited Free Two-Day Delivery
- Streaming of thousands of movies and TV shows with limited ads on Prime Video.
- A Kindle book to borrow for free each month - with no due dates
- Listen to over 2 million songs and hundreds of playlists
- Unlimited photo storage with anywhere access
Important: Your credit card will NOT be charged when you start your free trial or if you cancel during the trial period. If you're happy with Amazon Prime, do nothing. At the end of the free trial, your membership will automatically upgrade to a monthly membership.
-20% $43.99$43.99
Ships from: Amazon.com Sold by: Amazon.com
$32.07$32.07
Ships from: Amazon Sold by: kichoyproductions
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the author
OK
The Art of UNIX Programming (The Addison-Wesley Professional Computng Series) 1st Edition
Purchase options and add-ons
The Art of UNIX Programming poses the belief that understanding the unwritten UNIX engineering tradition and mastering its design patterns will help programmers of all stripes to become better programmers. This book attempts to capture the engineering wisdom and design philosophy of the UNIX, Linux, and Open Source software development community as it has evolved over the past three decades, and as it is applied today by the most experienced programmers. Eric Raymond offers the next generation of "hackers" the unique opportunity to learn the connection between UNIX philosophy and practice through careful case studies of the very best UNIX/Linux programs.
- ISBN-100131429019
- ISBN-13978-0131429017
- Edition1st
- PublisherAddison-Wesley
- Publication dateSeptember 23, 2003
- LanguageEnglish
- Dimensions6.8 x 1.2 x 9.2 inches
- Print length560 pages
Frequently bought together
Customers who viewed this item also viewed
Editorial Reviews
Amazon.com Review
That said, a great deal of valuable practical information appears in this book. Very little of it is in the form of code; most of the practical material takes the form of case studies and discussions of aspects of Unix, all aimed at determining why particular design characteristics are good. In many cases, the people who did the work in the first place make guest appearances and explain their thinking--an invaluable resource. This book is for the deep-thinking software developer in Unix (and perhaps Linux in particular). It shows how to fit into the long and noble tradition, and how to make the software work right. --David Wall
Topics covered: Why Unix (the term being defined to include Linux) is the way it is, and the people who made it that way. Commentary from Ken Thompson, Steve Johnson, Brian Kernighan, and David Korn enables readers to understand the thought processes of the creators of Unix.
From the Back Cover
"Reading this book has filled a gap in my education. I feel a sense of completion, understand that UNIX is really a style of community. Now I get it, at least I get it one level deeper than I ever did before. This book came at a perfect moment for me, a moment when I shifted from visualizing programs as things to programs as the shadows cast by communities. From this perspective, Eric makes UNIX make perfect sense."
--Kent Beck, author of Extreme Programming Explained, Test Driven Development, and Contributing to Eclipse
"A delightful, fascinating read, and the lessons in problem-solvng are essential to every programmer, on any OS."
--Bruce Eckel, author of Thinking in Java and Thinking in C++
Writing better software: 30 years of UNIX development wisdom
In this book, five years in the making, the author encapsulates three decades of unwritten, hard-won software engineering wisdom. Raymond brings together for the first time the philosophy, design patterns, tools, culture, and traditions that make UNIX home to the world's best and most innovative software, and shows how these are carried forward in Linux and today's open-source movement. Using examples from leading open-source projects, he shows UNIX and Linux programmers how to apply this wisdom in building software that's more elegant, more portable, more reusable, and longer-lived.
Raymond incorporates commentary from thirteen UNIX pioneers:
- Ken Thompson, the inventor of UNIX.
- Ken Arnold, part of the group that created the 4BSD UNIX releases and co-author of The Java Programming Language.
- Steven M. Bellovin, co-creator of Usenet and co-author of Firewalls and Internet Security.
- Stuart Feldman, a member of the Bell Labs UNIX development group and the author of make and f77.
- Jim Gettys and Keith Packard, principal architects of the X windowing system.
- Steve Johnson, author of yacc and of the Portable C Compiler.
- Brian Kernighan, co-author of The C Programming Language, The UNIX Programming Environment, The Practice of Programming, and of the awk programming language.
- David Korn, creator of the korn shell and author of The New Korn Shell Command and Programming Language.
- Mike Lesk, a member of the Bell Labs development group and author of the ms macro package, the tbl and refer tools,lex and UUCP.
- Doug McIlroy, Director of the Bell Labs research group where UNIX was born and inventor of the UNIX pipe.
- Marshall Kirk McKusick, developer of the 4.2BSD fast filesystem and a leader of the 4.3BSD and 4.4BSD teams.
- Henry Spencer, a leader among early UNIX developers, who created getopt, the first open-source string library, and a regular-expression engine used in 4.4BSD.
About the Author
ERIC S. RAYMOND has been a Unix developer since 1982. Known as the resident anthropologist and roving ambassador of the open-source community, he wrote the movement's manifesto in The Cathedral and the Bazaar and is the editor of The New Hacker's Dictionary.
Product details
- Publisher : Addison-Wesley; 1st edition (September 23, 2003)
- Language : English
- Paperback : 560 pages
- ISBN-10 : 0131429019
- ISBN-13 : 978-0131429017
- Item Weight : 1.7 pounds
- Dimensions : 6.8 x 1.2 x 9.2 inches
- Best Sellers Rank: #467,588 in Books (See Top 100 in Books)
- #7 in Unix Programming
- #183 in Computer Systems Analysis & Design (Books)
- #1,232 in Computer Software (Books)
- Customer Reviews:
About the author
I design software, and I write books about software design. My software helps power pretty much every Internet-aware device you use daily - smartphones, ATMs, browsers. My books tend to have consequences and stay interesting for a long time. What I try to do is inquire deeply into timeless design patterns and the mindset that makes for great software
When I'm not writing code or books, I'm a science fiction fan, a martial artist, a firearms instructor, and a championship-level strategy gamer. I like Szechuan food, cats, and redheads. I live in Malvern, Pennsylvania with a redheaded wife and a ginger cat. You can read my personal blog at: http://esr.ibiblio.org
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
The Art of UNIX Programming takes a very accurate overview snapshot of what UNIX means at the time of publishing. Although Eric is not intentionally a "big picture" kind of guy he has painstakingly gathered all the relevant information while filtering out the inane. Every UNIX padawan secretly longs to know what Eric has so benevolently written in this book through his decades of experience; they just may not know it yet.
Of course there are some stances that Eric takes where I feel he tries too hard to go for the "big picture". Such as the renouncement of the Object Oriented approach, already mentioned in other reviews. But his is not a total renouncement, and the left over renouncement is for good reason on if taken on the surface. What Eric means to express is that it is better to create a small tool in a scripting language and then perform the Object Orientation through pipes for example: ps -A grep bash less. That is similar to calling upon objects less(grep(ps(A), "bash")), as functions; or however you want to do it. If it has encapsulation, inheritance, and polymorphism then it is OO by definition.
Eric would like to live in a world with many small tools (or libraries if you will) that when combined can create something much larger in scope. The argument is akin to something like an automotive factory assembly line where everyone is atomic in understanding and performing their duties. However, when taken too far Eric's theory is akin to one thousand monkeys writing on one thousand typewriters and creating the works of Shakespeare. I'm sure there is a balance to be found in the use of UNIX tool modularity, but I do agree that UNIX has many more intertwined tools and systems than other OSes and is UNIX better off for it design wise.
Anyway, add this book to your shelf and you'll have no end of geeky philosophy to argue about with your fellow colleagues.
Chapter 3 "Contracts: Comparing the Unix Philosophy with Others" starts with this quote from a Dilbert newsletter, "If you have any trouble sounding condescending, find a Unix user to show you how it's done." Nevertheless, I am more likely to be less critical and more philosophical about designs after learning about the OS designs of VMS, MacOS, OS/2, Windows NT, BeOS, MVS, VM/CMS, and Linux.
The last chapter titled "Futures: Dangers and Opportunities" summarizes the philosophical differences between operating system design in the past and in the present with Linux. By the time I got to this last chapter, I see that this book is a real eye opener and you will think "philosophically" about software designs. Understanding history does help. The next generation is thinking about usability along with the open design patterns of the OS. This is paradigm shift for Unix and Windows gurus.
Besides learning about how to think philosophically, this book is a gold mine to a software engineer. For example, chapter 2 "Basics of the Unix Philosophy" covers 17 rules on design that every software engineer needs. Additionally, chapter 16 "Reuse: On Not Reinventing the Wheel" is a hoot. Today, some professors do grade on code readability, style, and program documentation.
Chapter 14 "Languages: To C or Not To C?" is another learning experience on language choice. I cannot help but wonder if the authors are not Zen-like enough because of their love of their offspring C, when today there is a growing community using Java for embedded Linux software, because of its portability, improved memory management, and eliminated pointer security problems. Platform neutral language and OS.
Chapter 19 "Open Source: Programming in the New Unix Community", should be required reading for a software engineer. We need to learn about the open source software development process.
If there were only time, this book would make an excellent addition to a computer science OS or software engineering course. Software architects need this book. The Masters have a done a great job by contributing to this.
The true is that he has a good points and ideias of how to develop using the unix pratices (eg. the practice of separation and program specialization).
I love unix (any flavor), it is by far the best operating system for a wise developers. The advice of Eric really makes sense for someone used to work with unix, and I put a lot of his advice to good use.
I recommend this book to an intermediate/advance unix programmer/analyst.
I have been using Unix (and its variants) for a decade amd have quite some knowledge about "how-to", but probably like most other Unix programmers, have never systematically thought about the underlying "why". This book is going to tell you both in details.
The book contains topics in software engineering / design / implementation / interface / documentation areas. They are all supported by solid examples, both success and failure stories. This makes it stand out among numerous books on similar topics. The author's concise and clear writting style is among the best I have seen in computer books (similar to Richard Stevens's famous series, if you have to make a comparison). The author apparently does not fail on me to make me a better Unix programmer.
The book is an good complementary to your library if you are a Unix programmer (it is also refreshing even if you do not program under Unix). And I'd recommend this book to everyone who starts to program under Unix or have programmed under Unix even for a long time.
Top reviews from other countries
Must read for every computer programming and system design passionate.
This book explains *how* and *why* Linux behaves as it does. Thus, it re-aligns your expectations and you can begin a more harmonious relationship with that odd little penguin we call Linux.
Yes Linux. Although this book had 'UNIX' in the title, it also applies to those who wish to understand Linux.