XForms Essentials book review
Author: Micah Dubinko ISBN: 0596003692 Publisher: O’Reilly & Associates
HTML forms are a necessary evil, outdated and overworked they are
prime targets for a long awaited overhaul. From out of the shadows
we have the only contender to step up to the challenge and push
forward; XForms.
XForms Essentials has an enviable pedigree, with Micah Dubinko an
editor and author of the XForms specification itself, writing the
book the information is almost straight from the horses mouth.
While the accuracy of the books content can't be argued with the
terse style of his writing isn't ideal for someone with no
previous exposure to the XForms spec.
Despite the books short length, eleven chapters in under 200
pages, it attempts to cover an ambitious amount of ground. This
includes an introduction to HTML forms, the XPath required to
understand XForms and even a little of the behemoth known as XML
Schema. Unfortunately it overextends itself and leaves some of
the chapters in a no-mans land, too superficial for beginners
(Chapter 4 on XML Schema) and not enough meat for advanced
readers (Chapter 11 Extending XForms.)
Two factors sank the book for me, firstly its lack of
accessibility and the fact that it never managed to grab my
attention, this is not a book you glance at and impulse buy!
Secondly it lacks the one thing that could have made the subject
matter spring to life; information on the current
implementations. The author must have been placed in an awkward
position when writing, the implementations are both thin on the
ground and major adoption isn't looking too promising in the near
future.
After this review was first submitted to the London PM mailing
list an XML.com article called <a
href="http://www.xml.com/pub/a/2003/09/10/xforms.html">Ten
Favorite XForms Engines</a> was published by the books author.
This article is exactly what I feel the book was missing, it
introduces the current implementation options and shows how you
can use the spec in the here and now. The article addresses some
of my criticisms and is a high enough quality to warrant
inclusion in the next edition.
I think this book was released before its time. The excellent
(actually the highlight of the book in my view), chapter on
combining XForms and CSS show that the author can bring the
subject away from dry explanations of the spec. This combination
of practical aspects and insights into the rational behind the
decisions in the spec make it both an interesting read and
contrasts the potential of the standard against the existing
kludges and work arounds. This was the only part of the book that
indicated the real concrete benefits provided by XForms beyond
what can already be done with HTML forms when combined with some
client and server side scripting.
Unfortunately the books lack of any discussion regarding existing
applications and current implementation support leaves this as a
lonely bright spot in the book. With some more display of the
external support of the standard, either case studies or
implementations, the book could have been the only one you need.
As it stands its coverage is both accurate and quite
comprehensive, albeit dry and rather academic. The second edition
warrants watching for.
Update: This review is odd in that I've had a chance to look back
over it before it was put online. After sending it to the list I
asked for it to be left off the site for a while so I could
update it based upon some extremely apt and thought provoking
comments from Robin Berjon. In addition to pointing me at the
article mentioned above and correcting me on the status of the
spec, Robin didn't so much argue with me as point out the bits I
didn't think about enough and raised the awkward questions I
really hoped no one would think of. This review benefited a lot
from his observations.
My view of the book is more positive than it was, it has aged
gracefully and still covers the essentials. What's ironic is that
the chapter I felt was missing, a section on implementation
details, is the section that would have aged the most. My rating
is slightly higher than last time: 6/10