Last month I did a review of the Book HTML Utopia: Designing without Tables using CSS and how it taught you to use the advanced features of Cascading Style Sheets (CSS) instead of the “old school” table based layouts. CSS is one of the mandatory skills that anyone doing web development needs to have. Another is a good understanding of JavaScript and the HTML DOM (Document Object Model).

Quick Review

DHTML Utopia: Modern Web Design Using JavaScript & DOM by Stuart Langridge is a great book for learning how to write client side browser code that takes advantage of the richness of browser DOM. The book is well written and includes thorough, clear and precise examples. In today’s environment of richer and richer client applications, this can be a great tool for learning the ins and outs of this style of client side development in a robust, supportable fashion.

Why not just use a framework?

Just this last week Scott Guthrie announced on his blog that Microsoft would be included jQuery inside of Visual Studio (starting within the next few weeks as a download). jQuery is just one of many great JavaScript frameworks that have abstracted out much of the complexity of dealing with JavaScript and the HTML DOM. jQuery (like the other frameworks) creates an abstraction layer that means you do not have to deal with the differences between browsers or the differences between versions of a browser.

With so many great frameworks out there, why would you need to learn the “raw” or “low level” coding that is discussed in the DHTML Utopia? Technically you would not need to, but if you are like me you have a natural curiosity of what is going on below the covers, even if you use a framework like jQuery. And that understand is what this book gives you. Also no framework will ever cover every use case, so it is good to know the details, in case you need to drop down and “roll your own” solution.

A little dated

The book was published in 2005, which means that much of the material is probably 4 years old (due to the publishing lead times). As a result, the specific browser versions are at least one major version out of date (example: all Internet Explorer discussion are version 6, not the current version). If you disregard the specific discussions, the book does a good job of standing the test of time for 2 reasons: the specific issues that he discusses are still prevalent on the Internet today and more importantly he talks about some great techniques for not coding to specific browser versions anyway.