Beauty Summer Reading STEM nav_sap_plcc_ascpsc Starting at $39.99 Wickedly Prime Handmade Wedding Rustic Decor Book House Cleaning TheTick TheTick TheTick  Introducing Echo Show All-New Fire 7 Kids Edition, starting at $99.99 Kindle Oasis GNO Water Sports toystl17_gno



There was a problem filtering reviews right now. Please try again later.

Showing 1-10 of 16 reviews(Verified Purchases). See all 53 reviews
on May 30, 2010
This book is a collection of many articles by different authors, which is supposed to illuminate what they behold as beautiful engineering. Now it is said that beauty is in the eye of beholder, and some readers may be amazed by elegance and aha moments through the book. However to me it looks like most articles describe how authors used the plain common sense to architect this or that, and that beautiful aha moment to behold is nowhere to be seen. I was tempted to put the book down most of the time, but kept on reading only in hopes that next chapter by different author about different topic would make it finally worth it.

And one chapter did it! Titled "Accelerated Population Count" by Henry S. Warren, Jr (which is about calculating bit counts in arrays) is truly breathtaking and inspiring. Now, is it worth buying this book just for one small but very good article? Maybe, since A) it's that good, and B) I can't find it mentioned anywhere else, including the truly magnificent "Hacker's Delight" by same Henry S. Warren Jr. (the "Hacker's Delight" describes cool tricks in the bit counting area, but doesn't mention CSA).

If you are interested in the premise of this book, here is my recommendation:
1. Buy the "Programming Pearls", and get to know the real beautiful code 101 by heart
2. Buy the "Hacker's Delight", and keep is as a reference on the bit twiddling algorithms
3. Stop at the library or bookstore for 15 minutes, and read the "Accelerated Population Count" from the "Beautiful Code"

Have fun!
0Comment| 9 people found this helpful. Was this review helpful to you?YesNoReport abuse
on June 20, 2013
I haven't quite finished this yet but I have been enjoying it and Amazon asked me to review it.
You can trust my opinion because I bought the book to test reading textbooks on my first tablet and had very low expectations (the title is a bit of a facepalm :) - the book also donates to charity or something too.

The individual writers mostly fail to impress on us the beauty of the code - when and where they felt it, how it occurred to them and what followed. I feel an existing relationship with the beauty in code helped me appreciate the book.

It also feels unedited: what book are they assembling - something for experienced programmers to appreciate or are they seeking to inspire plebs to read code?

The former is sort of achieved but there's a lot of very skip-able faff.

As inspiration it covers a broad slew of problems (some of which are architectural rather than procedural) and the solutions are often fairly technical. If you happen to have at least considered most of the problems and have solid experience in 10 languages and 3 paradigms, that's fine but it ain't gonna work for the vast majority of devs.

Were I editing this book, I would call it "Code Stories" and insist that an attempt be made to use pseudo-code and diagrams; that the stories be English and the code be formal.

There is savage beauty in C and assembler which provides some of the best entertainment in book. These could be contrasted with modern standards to comic effect imho - that's definitely what I was doing when I read them :)

I want to fix this book which indicates I think it has a lot of value. In it's present form I think the reader has to do a lot of work from a perspective of skill and experience to appreciate it.
0Comment|Was this review helpful to you?YesNoReport abuse
on October 20, 2008
I like this book but it is a flawed thing.

Worth the read but not convinced it is worth the cost.

I started more than half the chapters and skipped on because either it was too obtuse or specific to a given language/problem or too general to be useful.

However there are also some great chapters.

If you are looking for a gift for the tech-head who has everything then this could be a good choice. If funds are tight and you are buying for yourself you probably have better ways to spend the cash.

I can't be too critical. The intent was noble and good. The authors are donating any profits to charity. I can't point to a better way of writing/structuring the book.

So yes it's good and I liked it but my praise is conditional and constrained. I feel churlish for saying these negative things because it is, as I said, well intentioned. I just wish it was better described as it was not what I thought I'd be getting. Not that I feel ripped off, just a little bemused.
0Comment| 2 people found this helpful. Was this review helpful to you?YesNoReport abuse
on November 9, 2008
The editors of this uneven book give us 33 chapters from various, often well-known developers, in which these developers describe some code and explain why they think that it is beautiful. There are some gems, but it's not light reading and quite a bit of it is a real slog. If you are a professional programmer, it's probably worth the effort, but otherwise I'd steer clear.

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.
0Comment| 8 people found this helpful. Was this review helpful to you?YesNoReport abuse
on November 17, 2013
This is an interesting book. Beauty is in the eye of the beholder. I certainly do not find all of the code featured in this book to be beautiful, but there is a lot of variety in the case studies which make up each chapter, and I think there is something for everyone here - as long as you have a reasonable amount of programming experience.
0Comment|Was this review helpful to you?YesNoReport abuse
on April 7, 2013
If anything, this book is proof that beauty is in the eye of the beholder. To my eye this collection is hit-or-miss. Several of the contributions are indeed beautiful while others are mundane and uninteresting. This could be a beautiful book but, alas, it misses the mark.
0Comment|Was this review helpful to you?YesNoReport abuse
on July 30, 2014
Great collection of essays from many famous programmers, from what I've read so far, this book is pretty awesome!
0Comment|Was this review helpful to you?YesNoReport abuse
on August 14, 2015
Nice boook..
0Comment|Was this review helpful to you?YesNoReport abuse
on October 21, 2007
I am a software engineer of about 5 years of professional experience. The book is attractive to me because it describes proven best-practices for existing software. There are a large variety of software descriptions in this book. If you are looking for a programming-language-specific book, this book might not be for you, because it contains a wide variety of projects from different programming languages (from Fortran to Python and perl).

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.
0Comment| 3 people found this helpful. Was this review helpful to you?YesNoReport abuse
on December 6, 2009
Enjoyed the book a lot. Not only contains really good solutions to a wide variety of problems: the core of the book are the explanations from the authors of each piece of beautiful code and why they think it is beautiful.

The better part is that each section is short enough to be read in one shot. Helps a lot on following the authors!
0Comment|Was this review helpful to you?YesNoReport abuse