Ajax: The Definitive Guide by Anthony T. Holdener, III – Jan 2008, OReilly Press $50
This is the the definitive guide on AJAX circa late 2007 early 2008 – but only if you consider definitive to be like the New York Time – all the news on Web 2.0 fit to print. The book certainly covers all the major topics that concern Web developers. The author spend well over 100 pages on the nature of AJAX, how it fits in with other development frameworks like .NET and Java plus a look at some of the major scripting languages like Perl, Python, and Ruby before settling on JavaScript.
The balance of the Part I is then devoted to looking at how JavaScript is used in delivering some of the styling, GUI ease of use, collaboration, and server side data access tricks that make up the AJAX toolkit. And these are always working code examples. Next there is a clear discussion of XML, XSLT, and XPath and how, along with JSON, these technologies get used in many AJAX contexts. The final section in Part I discusses the Principle for AJAX Web design:
Minimalist and aesthetic structure
Flexibility and efficiency
Consistency in design and implementation
Navigation considerations
Proper feedback to users
Documentation and active help
These Principles then form the foundation for Part II
Part II proceeds to apply these principle with examples of real code for such tasks as Laying Out Site Navigation or Page Layout with Frames That Arent or A Funny Thing Happened on the Way to the Form. Each one of these are useful samples of code. But I cant help thinking that Part III which discusses mashups, Web Service and the many JavaScript Frameworks would have been a useful predecessor to Part II. I found myself wondering why certain frameworks were chosen for the various Ajax tasks that Anthony has programmed for us.
Now this is an important point because AJAX is now confronted with an embarrassment of riches – more than two dozen free Open Source JavaScript frameworks and maybe a top ten of commercial frameworks for doing AJAX programming with. In addition there are another dozen or two JavaScript IDEs also vying for developers allegiance. And with old stand-bys like Dreamweaver and Visual Studio decidedly biased towards supporting their own Spry and Atlas frameworks respectively- deciding on a good JavaScript IDE is also non-trivial.
Now the book certainly does discuss in part III about 7-8 of the more popular frameworks – but I found some of my favorites missing like EXT-YUI, Qooxdoo, and ActiveGrid to mention just 3 of nearly 20. Even more alarming some of the better commercial frameworks like Bindows, Backbase, Nexaweb and Tibco-General Instruments barely earn a mention. So if you are looking to make sense of the development choices, AJAX The Definitive Guide will certainly help – but its still missing not the Principles but rather an assessment of how well various tools allow you to fulfill those principles and design goals. Another missing ingredient – a thorough discussion of competing technologies like Flash/Flex/Air and Ruby on Rails.
Nonetheless this book is packed with nearly a thousand pages of good ideas, solid development tips and some nifty coding examples. If you are a competent JavaScript programmer this book will launch you well into the world of AJAX. If you are focusing on coding and designing in JavaScript, you may want to look at Pro JavaScript Design Patterns – reviewed here. It is interesting – after years of very few libraries and frameworks to support AJAX and Web 2.0 ( and even fewer books) – there is now a surplus of both.