Thursday, January 15, 2009

JavaScript: The Good Parts by Douglas Crockford

I read JavaScript: The Good Parts by Douglas Crockford and learned a lot from it.
I feel that he makes very good points on his commentaries on the awful and bad parts of JavaScript and his suggestions to use a "good parts" subset of the language does seem to hold ground and increase quality and development time. At least, that is the case on the project that I'm working on that involves JavaScript. I seem to have fallen to just about all the pitfalls that he points out. Reading his book was a great comfort (I'm not the only one thinking that this or that aspect of the language stinks and for a good reason...) to me and his work-around suggestions do seem to be useful and practical. Along with other two very useful books on JavaScript: Bulletproof Ajax by Jeremy Keith (see my post on the book) and AJAX Security by Billy Hoffman and Bryan Sullyvan (see my post on this book too) I think that any developer that usews JavaScript can get a clear picture on the good sides and bad sides of JavaScript and clear understanding of the "do"s and the "don't"s and the implication of doing things one way or the other.

There are some mild typos in the book, that I'm sure will be corrected in future editions (e.g., pp.60: "... 'shi' has its key changed from '4' to '3'..." should be "... 'shi' has its key changed from '3' to '3'...", I believe).

Considering the fact that the author states several times that the book will avoid the bad parts and concentrate on the good parts, it is quite stressed in the book when bad parts are discussed, and some bad parts are repeatedly being mentioned and the implications of using them along with their proposed work around is also re-iterated (e.g., arguments list which is not really an Array object, or the fact that null is being identified as an object, and there are many more examples).

I liked a lot the "functional" approach, which I enjoy and like to use in many of my Perl scripts and programs, and I also use a lot in my JavaScript scripts and programs. I do find the "functional" way of doing things to be lighter and more straightforward than the classical object oriented approach that many advocate (which I don't really find very useful most of the time). For those that want a non lisp/scheme/haskell introduction to functional programming see a very nice Perl book that introduces functional programming: Higher Order Perl by Mark Jason Dominus (see my Amazon review on the book).

I really really enjoyed reading the book. I found the advise there very useful and I learned quite a lot of things about JavaScript.

I have reviewed this book on Amazon too.

1 comment: