237 of 260 people found the following review helpful
Some good data, but scattered and inconsistent, unclear who it's written for.,
Verified Purchase(What's this?)
My TL;DR version of the review: this book is a hodgepodge of different information about the language, but some of it is so complicated it'll go immediately over the heads of new programmers, and then some of it is so mundane (even pedantic, talking about very specific aspects of coding styles) it felt goofy and out of place. It seems to me that any specific individual reading this book won't really find more than one or two chapters very relevant. I give it 3 stars because the useful parts were useful to me, but I skimmed and ignored 80+% of the book.
Crockford's writing is personable and clear, and the book's organization is straightforward. Here's my chapter-by-chapter breakdown. Note that this is all from my perspective, what I personally found useful or not, but my point is, while other readers will certainly disagree with me about what was useful, I have trouble imagining any one person finding more than about 20% of the book useful.
Chapter 1 is an introduction and high-level explanation of the point of the book.
Chapter 2 covers basic grammar and the likes, which was helpful though it's not aimed at any particular familiarity with other languages so it's trying to be comprehensive, which meant that as an experienced programmer in other languages I had to skim it and just look for differences with what I'm already used to.
Chapters 3 and 4 were the most useful parts of the book for me: the section on objects and functions, data scoping and closure, which really takes a new way of thinking if, like me, you have a lot of experience with languages without closure and anonymous functions and the like. Crockford does a good job of explaining this and giving relevant examples. This section was 20% of the book and was the only section I found really useful.
Chapter 6 covers arrays. If you've used scripting languages this stuff is very simplistic, a stark change from Chapter 5, which is quite sophisticated. Again, my point here - I don't know who would simultaneously understand Chapter 5 and still find anything in Chapter 6 useful.
Chapter 8 is a reference for core API functionality and his extension methods; this feels like stuff I'd just google while coding, not terribly valuable to me personally.
Chapter 9 is a diversion on coding style, and felt wildly out of place and kind of insulting: if this book is for a seasoned programmer this is just going to trigger unpleasant flashbacks to arguments you had back when you were a junior programmer. If you're a new programmer and this stuff is news to you, other chapters in the book are going to be utterly incomprehensible to you.
Chapter 10, "The Beautiful Parts," is all of a page long, but a nice summary of the good aspects of the language.
Appendix D is about JSON and just some reference information about the format. Maybe useful, but no authorial insight, just docs.
Overall, glad I read it, but I was pretty underwhelmed given the generally great reviews of the book on here.
Sort: Oldest first | Newest first
Showing 1-10 of 13 posts in this discussion
Initial post: Mar 3, 2011 3:10:30 PM PST
Marshall Alsup says:
Thanks for this excellent thoughtful review. I'm coming from a similar background so your insights are quite useful.
Posted on Dec 15, 2011 10:05:14 PM PST
Jong Wook Kim says:
Totally agreed; I came here to write some idea similar to these but this is an awesome and detailed review. I'd rather give 2 stars though...
Posted on Mar 30, 2012 8:19:14 AM PDT
R. W. Mercer says:
A very helpful review, thanks for helping me decide that this book is probably not for me.
Posted on May 8, 2012 6:20:33 AM PDT
kathryn fruchey says:
Experience tends to make a lot of things a lot easier and other things harder. Maybe it wouldn't seem like such an odd mix if you didn't have the C, C++ and Java experience.
Posted on May 8, 2012 1:30:42 PM PDT
Fernando Alonso says:
Thanks for the review. I'm more inclined to buy this book now
In reply to an earlier post on May 8, 2012 1:54:43 PM PDT
Brian Sharp says:
I do know what you mean. I tried to think about that when writing the review; I think even trying to put myself in the shoes of a beginner, there are things that seem like odd choices.
First, the inheritance / aggregation / composition stuff is deep. I mean, that's serious stuff, and his examples are not real examples, they're "Mammal : Cat" kinds of examples, so I know that when I was just getting started, his quick and kind of abstract treatment of it would have just gone right over my head.
I will concede that when I wrote the review I didn't realize Crockford wrote JSLint himself! That changes my understanding a bit of the portion about JSLint, though I STILL think it's odd because all he did was essentially copy and paste the docs in. Why not just say "This is a thing I've built that is very important to use. Go check it out," and give an overview of it.
To each her own; maybe this seems like a more intuitive mix to you, and obviously that's fine, I'm not saying anyone ought to agree with me. But for my money, I'd have far preferred he omit the JSLint and regexp sections, among others, and devote more time to the core stuff like object inheritance and really dig into some real examples with that.
I guess a good metaphor for the way I see the book is if I wrote a book about automobiles, and I had one chapter for "the engine" and one chapter for "accessory lights" and one chapter for "windshield wipers" and one chapter for "tires" and they were all equal length. I guess it depends what you're trying to do with cars, but I just feel like most people reading a book about how cars work want more time devoted to explaining engines in depth and probably need less information about the windshield wipers... and it's also probably fine to say "Your car depends heavily on a variety of light bulbs but the inner workings of the various kinds of light bulbs is beyond the scope of this book, check out some other resources." (ala the regular expression stuff.)
Anyway, thanks for the thoughtful comment because you're absolutely right, there are definitely people out there in situations where this book will be useful to them. I even gave it 3 stars because I got useful info out of it myself.
In reply to an earlier post on May 8, 2012 1:55:44 PM PDT
Brian Sharp says:
Cool, you're welcome. Yeah, I find myself referring back to it on occasion, and I do not regret the purchase. My 3 stars and critique are just meant to say, I think this book could have been quite a bit better. But there's certainly utility here.
Posted on Aug 8, 2012 9:16:48 AM PDT
Last edited by the author on Aug 8, 2012 9:20:05 AM PDT
A. Tolley says:
That is not to say your review is not valid and very helpful to prospective buyers of the book, just some context for the rational behind its otherwise seemingly arbitrary structure. And my suggestion to the more experienced programmers who get this book: It's short, so grin and bear the parts you know, because skimming can disrupt the context in which more subtle points are raised.
In reply to an earlier post on Jun 19, 2013 9:12:03 AM PDT
Jermaine Stewart says:
Good review and good comments. Given the feedback on this book, I'll surely purchase it. I also like that its supposedly short and to the point.
In reply to an earlier post on Aug 1, 2013 9:49:59 AM PDT
White Ceilings says: