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.
$34.00$34.00
Ships from: Amazon Sold by: Always Best Dealz
$21.53
Try Kindle Edition $0.00
Try Kindle Edition $0.00
- Highlight, take notes, and search in the book
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.
OK
Image Unavailable
Color:
-
-
-
- To view this video download Flash Player
- VIDEO
Beautiful Code: Leading Programmers Explain How They Think 1st Edition
This is not simply another design patterns book, or another software engineering treatise on the right and wrong way to do things. The authors think aloud as they work through their project's architecture, the tradeoffs made in its construction, and when it was important to break rules.
This book contains 33 chapters contributed by Brian Kernighan, Karl Fogel, Jon Bentley, Tim Bray, Elliotte Rusty Harold, Michael Feathers, Alberto Savoia, Charles Petzold, Douglas Crockford, Henry S. Warren, Jr., Ashish Gulhati, Lincoln Stein, Jim Kent, Jack Dongarra and Piotr Luszczek, Adam Kolawa, Greg Kroah-Hartman, Diomidis Spinellis, Andrew Kuchling, Travis E. Oliphant, Ronald Mak, Rogerio Atem de Carvalho and Rafael Monnerat, Bryan Cantrill, Jeff Dean and Sanjay Ghemawat, Simon Peyton Jones, Kent Dybvig, William Otte and Douglas C. Schmidt, Andrew Patzer, Andreas Zeller, Yukihiro Matsumoto, Arun Mehta, TV Raman, Laura Wingerd and Christopher Seiwald, and Brian Hayes.
Beautiful Code is an opportunity for master coders to tell their story. All author royalties will be donated to Amnesty International.
- ISBN-100596510047
- ISBN-13978-0596510046
- Edition1st
- PublisherO'Reilly Media
- Publication dateJuly 31, 2007
- LanguageEnglish
- Dimensions7 x 1.41 x 9.19 inches
- Print length618 pages
Frequently bought together
Customers who viewed this item also viewed
Editorial Reviews
About the Author
Greg Wilson holds a Ph.D. in Computer Science from the University of Edinburgh, and has worked on high-performance scientific computing, data visualization, and computer security. He is the author of Data Crunching and Practical Parallel Programming (MIT Press, 1995), and is a contributing editor at Doctor Dobb's Journal, and an adjunct professor in Computer Science at the University of Toronto.
Product details
- Publisher : O'Reilly Media; 1st edition (July 31, 2007)
- Language : English
- Paperback : 618 pages
- ISBN-10 : 0596510047
- ISBN-13 : 978-0596510046
- Item Weight : 2.16 pounds
- Dimensions : 7 x 1.41 x 9.19 inches
- Best Sellers Rank: #424,966 in Books (See Top 100 in Books)
- #470 in Microsoft Programming (Books)
- #512 in Software Development (Books)
- #1,223 in Computer Software (Books)
- Customer Reviews:
Videos
Videos for this product
1:42
Click to play video
Greg Wilson on Beautiful Code
Merchant Video
About the authors
Travis has a Ph.D. from the Mayo Clinic and B.S. and M.S. degrees in Mathematics and Electrical Engineering from Brigham Young University. Since 1997, he has worked extensively with Python for numerical and scientific programming, most notably as the primary developer of the NumPy package, and as a founding contributor of the SciPy package. He is also the author of the definitive "Guide to NumPy".
Travis was an assistant professor of Electrical and Computer Engineering at BYU from 2001-2007, where he taught courses in probability theory, electromagnetics, inverse problems, and signal processing. He also served as Director of the Biomedical Imaging Lab, where he researched satellite remote sensing, MRI, ultrasound, elastography, and scanning impedance imaging.
As CEO of Continuum Analytics, Travis engages customers in all industries, develops business strategy, and helps guide technical direction of the company. He actively contributes to software development and engages with the wider open source community in the Python ecosystem. He has served as a director of the Python Software Foundation and as a director of Numfocus.
Elliotte is originally from New Orleans to which he returns periodically in search of a decent bowl of gumbo. However, he currently resides in Brooklyn with his wife Beth and dog Thor. He's a frequent speaker at industry conferences including Software Development, Dr. Dobb's Architecture & Design World, SD Best Practices, Extreme Markup Languages, JavaWorld, and too many user groups to count. His fiction has appeared in Alfred Hitchcock’s Mystery Magazine, Crossed Genres, and Daily Science Fiction in addition to numerous anthologies. His most recent books are Java Network Programming, 4th edition, and the JavaMail API, both from O’Reilly.
Dr. Greg Wilson is a programmer, author, and educator based in Toronto. He co-founded and and was the first Executive Director of Software Carpentry, which has taught basic software skills to tens of thousands of researchers worldwide, and has authored or edited over a dozen books, including "Beautiful Code", "The Architecture of Open Source Applications", and most recently "Software Design by Example". Greg is a member of the Python Software Foundation and a recipient of ACM SIGSOFT's Influential Educator of the Year award.
Andy Oram is an editor at O'Reilly Media, a highly respected book
publisher and technology information provider. An employee of the
company since 1992, Andy currently specializes in open source,
networking, and software engineering, but his editorial output has
ranged from a legal guide covering intellectual property to a graphic
novel about teenage hackers. His work for O'Reilly includes the
influential 2001 title Peer-to-Peer, the 2005 ground-breaking book
Running Linux, and the 2007 best-seller Beautiful Code.
Andy also writes often for O'Reilly's Radar site
(http://radar.oreilly.com/) and other publications on policy issues
related to the Internet and on trends affecting technical innovation
and its effects on society. Print publications where his work has
appeared include The Economist, Communications of the ACM, Copyright
World, and Internet Law and Business. His web site is
http://www.praxagora.com/andyo/.
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.
For the intermediate or beginning programmer, I'd say this is an excellent read as long as you are able to comprehend the material. Some of the text demands more than a cursory knowledge of programming. I will probably need to reread a few chapters later in my career in order to understand them in the manner they were intended.
The book reads like a book about software pattern implementations, but without the emphasis on the patterns. It is left to the reader to draw generalizations from the examples that they can apply to their own code.
Personally, I'd like to see more books like this. It provides a good frame of reference for the construction of good software.
The better part is that each section is short enough to be read in one shot. Helps a lot on following the authors!
And, in fact, all too much of the code is downright ugly. This starts, sadly enough, with the first example, by Brian Kernighan, describing a limited-capacity regular expression matcher.
Yes, THAT Brian Kernighan, a software god among men. But the example he describes as beautiful would be the last thing I would ever want in any software that I had to maintain. I am sure it is efficient, and it probably works, but the only beauty that I can see is that, if you convince yourself you understand why it works, you've also proven to yourself that your mental abilities put you in an elite category of coder. God help you if you need to modify the method's functionality or (shudder) debug it.
Another dubious entry in the book is by Adam Kolawa, who describes the CERN mathematical library. He claims that no library routine can be beautiful if it uses dynamic memory allocation. The software architecture he deems beautiful passes working memory, in the form of an array to the library routines, which in turn pass it on to their subroutines. In fact, the space used by the input parameters is reused to hold the solution. I am sure that CERN math library is an excellent package, but I would hate to have the job of tracking down bugs in a system in which all the subroutines in the stack were writing back into the same array.
Software ugliness can take many forms, as, for example, in the chapter by Ronald Mak, describing NASA software used for the Mars Rover mission. The solution for a highly reliable, long running, independent system? SOA, using Java 2 and J2EE EJBs. I am a big fan of Java and J2EE, but why on earth (or Mars!) would the Mars Rover system need EJBs? The SOA and EJB technology is at its best when coupling diverse databases and interacting with legacy systems. It brings with it a significant complexity and overhead. Why would anyone think this was appropriate for the Mars Rover?
For my taste, the worst of the worst was an article by R. Kent Dybvig, describing a program for analyzing code and detecting parameter name clashes. The code to be analyzed is in Scheme, a Lisp dialect. It's been awhile since I've fooled with LISP, but I was ready to give it a try. So here is an example of a macro that has potential scope issues, if there is a bound variable t elsewhere in the code:
(or e1 e2) -> (let ([t e1]) (if t t e2))
...and here is the refactored code, in which the problem is fixed:
(or e1 e2) -> (let [g e1] (if g g e2))
I stared dumbly at this for all too long a time until I read the next phrase, "in which 'g' is a generated (fresh) identifier". Here I'd fault the author for a really rotten presentation, and also for begging the question, since the whole problem he is purporting to solve is avoiding name clashes.
In fairness, the book also has many descriptions of genuinely beautiful code. I especially enjoyed the article by Charles Petzold on efficient image processing through code generated on-the-fly. Also, Henry Warren essay on devising efficient algorithms for counting the number of enabled bits in a bit string is fascinating. Yet another stimulating article is by Brian Hayes, who describes an efficient approach for determining if three points are co-linear. This article also uses LISP as the example language, but unlike Dybvig's piece, it's clear, and "porting" the approach to Java or C++ would be straight-forward.
In summary, "Beautiful Code" is a very mixed bag. On balance, it is probably worth reading, but without doubt it is a disappointment.
Top reviews from other countries
Enjoy!