random memes }

What Are XForms?

I am totally not getting the purpose for XForms. This smells like another out-of-control "standard" that promises the world, and ends up delivering mostly bloat.

First off XForms are supported by approximately 0% of the world's web browsers - a percentage that will not change anytime soon (if ever). That means you have to transform XForms to ... HTML and JavaScript, or (ick) Flash. I am underwhelmed. What does this gain over HTML and JavaScript if the first instance? Oh, that's right - sprinkle on XML and anything is automatically better (or not). Sounds like we are going to get an XForms interpreter written in JavaScript and downloaded to the browser (fat and slow), or interpreted on the server (overloaded and laggy with latency).

Yes, I saw the browser plug-in <object>. The phrase "lead balloon" comes to mind. I can imagine explaining to customers why they need to install a plug-in on thousands of desktops, just to get forms that could be as well implemented in JavaScript and HTML. I am not tempted.

Traditional HTML Web forms don't separate the purpose from the presentation of a form. XForms, in contrast, are comprised of separate sections that describe what the form does, and how the form looks. This allows for flexible presentation options, including classic XHTML forms, to be attached to an XML form definition.

So we are going to get automagic rendering that works wonderfully in a big browser window and a tiny cellphone screen? More likely we get something that works well on one but not the other - or on neither. Optimal is not the word to describe this. If you are going to present a user interface on radically different devices, for any sort of decent result you are going to design a different user interface - and this you cannot escape.

Since I am tending more toward populating, updating, and submitting forms as JSON, injecting XML in the form of XForms seems more like a step backwards - or at least sideways.

I am just not convinced that XForms buys us anything we cannot get with HTML and a decent JavaScript library (or at least anything we want...).