{"id":43,"date":"2007-08-26T11:09:01","date_gmt":"2007-08-26T15:09:01","guid":{"rendered":"http:\/\/www.coactus.com\/blog\/2007\/08\/mobile-ajax-workshop-position-paper\/"},"modified":"2007-08-26T11:09:01","modified_gmt":"2007-08-26T15:09:01","slug":"mobile-ajax-workshop-position-paper","status":"publish","type":"post","link":"http:\/\/www.coactus.com\/blog\/2007\/08\/mobile-ajax-workshop-position-paper\/","title":{"rendered":"Mobile Ajax Workshop position paper"},"content":{"rendered":"<p>This is the position paper we recently submitted to the <a href=\"http:\/\/www.w3.org\/2007\/06\/mobile-ajax\/\">W3C\/OpenAjax Workshop on Mobile Ajax<\/a>.<\/p>\n<h4 style=\"TEXT-ALIGN:center\">\n  The best mobile Ajax application &#8230;<br \/>\n<\/h4>\n<h4 style =\"TEXT-ALIGN:center\">\n  is the one that&#8217;s never written<br \/>\n<\/h4>\n<p><\/p>\n<div style=\"TEXT-ALIGN:center\">\n  A position paper for the<br \/>\n  <a href=\"http:\/\/www.w3.org\/2007\/06\/mobile-ajax\/\" title=\"W3C\/OpenAjax Workshop on Mobile Ajax\">W3C\/OpenAjax<br \/>\n  Workshop on Mobile Ajax<\/a><br \/>\n  by Mark Baker of<br \/>\n  <a href=\"http:\/\/www.coactus.com\" title=\"Coactus Consulting\">Coactus<br \/>\n  Consulting<\/a>\n<\/div>\n<p>\n  Hypertext inventor Ted Nelson talked about &#8220;the two Gods of literature&#8221;[1],<br \/>\n  publisher and reader, and the battle between them in determining what the<br \/>\n  reader ultimately consumes.&nbsp; Traditional Web programming with HTML and<br \/>\n  CSS (no script) provides effectively equal power to each God, permitting the<br \/>\n  publisher to provide the content together with declarations about how that<br \/>\n  content&nbsp;could be presented, but enabling the reader&nbsp;to instruct its<br \/>\n  agent to&nbsp;ignore and\/or extend those declarations as it sees fit.&nbsp;<br \/>\n  Scripting, on the other hand,&nbsp;puts all the power in the hands of the<br \/>\n  publisher,&nbsp;providing the reader two options; either execute it to be able<br \/>\n  to consume the content it contains, or don&#8217;t and don&#8217;t.\n<\/p>\n<p>\n  The &#8220;reader power&#8221; afforded by declarative programming is especially important<br \/>\n  for mobile use for at least&nbsp;two reasons.&nbsp; First, it&nbsp;allows the<br \/>\n  user agent to repurpose the content so it can be presented to the user&nbsp;in<br \/>\n  the context of the&nbsp;particular nuances of the input and output methods of<br \/>\n  the device.&nbsp; Second, it allows the user agent to&nbsp;be shipped<br \/>\n  with&nbsp;code which is optimized for the processing of&nbsp;the predefined<br \/>\n  markup language, where &#8220;optimized&#8221; can be along any dimension: speed, size,<br \/>\n  battery consumption, etc..\n<\/p>\n<p>\n  Fortunately, there exists an approach which permits us to have the best of<br \/>\n  both worlds.&nbsp; If we factored out the commonly used script components, and<br \/>\n  extended HTML so that those components could be instantiated declaritively,<br \/>\n  then we could use declarative programming&nbsp;for these common components but<br \/>\n  continue to use script for the less common cases.&nbsp; As an example, &#8220;drag<br \/>\n  and drop&#8221; is a reasonably common feature implemented by scripts, but could<br \/>\n  easily be accomplished via a declarative approach [2].\n<\/p>\n<p>\n  One&nbsp;downside of this hybrid approach is that standardization of the<br \/>\n  extensions &#8211; and deployment of software which uses them &#8211; can take a very long<br \/>\n  time.&nbsp; However it is not as big a problem as it first seems.&nbsp;<br \/>\n  Somewhat ironically, we can use script to help us incrementally deploy<br \/>\n  declarative content, by&nbsp;associating&nbsp;that content with&nbsp;script<br \/>\n  which interprets and processes the extension tags when browsers don&#8217;t support<br \/>\n  them (see [2] again for an example of this).\n<\/p>\n<p>\n  Some Javascript toolkits already provide for a somewhat similar approach, at<br \/>\n  least regarding the binding of HTML extensions to script.&nbsp;<br \/>\n  Dojo&nbsp;includes &#8220;Dijits&#8221; (Dojo widgets) which permits, for<br \/>\n  example,&nbsp;HTML forms to be extended with attributes whose value explicitly<br \/>\n  references a Dojo-specific scripted TextBox widget.&nbsp; Once&nbsp;the Dojo<br \/>\n  libraries are linked in, the extended processing occurs.&nbsp; All Dijits seem<br \/>\n  to be missing is to acknowledge the value of standardizing their HTML<br \/>\n  extensions.\n<\/p>\n<p>\n  HTML 5 (ne a bunch of WHAT WG specs) can also be seen in a new light when<br \/>\n  considering its role in&nbsp;this proposed approach.&nbsp; It defines<br \/>\n  (amoungst other things) a number of extensions that aim to do in a declarative<br \/>\n  manner what is currently done with script.&nbsp; For example, in-browser form<br \/>\n  validation.&nbsp; The&nbsp;approach outlined here also suggests that there<br \/>\n  would be value in developing a script which could process the HTML 5<br \/>\n  extensions for HTML 4 browsers.\n<\/p>\n<p>\n  Note: see also the TAG&#8217;s view on declarative vs. imperative, in their Rule of<br \/>\n  Least Power finding[3].\n<\/p>\n<p>\n  &nbsp;[1]&nbsp;Theodore Nelson.&nbsp; The Future of Information: Ideas,<br \/>\n  Connections and the Gods of Electronic Literature.&nbsp; ASCII Corp,<br \/>\n  1997.&nbsp; Unpublished.\n<\/p>\n<p>\n  &nbsp;[2]<br \/>\n  <a href=\"http:\/\/www.markbaker.ca\/blog\/2006\/07\/21\/declarative-drag-and-drop\/\">http:\/\/www.markbaker.ca\/blog\/2006\/07\/21\/declarative-drag-and-drop\/<\/a>\n<\/p>\n<p>\n  &nbsp;[3]<br \/>\n  <a href=\"http:\/\/www.w3.org\/2001\/tag\/doc\/leastPower.html\">http:\/\/www.w3.org\/2001\/tag\/doc\/leastPower.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is the position paper we recently submitted to the W3C\/OpenAjax Workshop on Mobile Ajax. The best mobile Ajax application &#8230; is the one that&#8217;s never written A position paper for the W3C\/OpenAjax Workshop on Mobile Ajax by Mark Baker of Coactus Consulting Hypertext inventor Ted Nelson talked about &#8220;the two Gods of literature&#8221;[1], publisher [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"_links":{"self":[{"href":"http:\/\/www.coactus.com\/blog\/wp-json\/wp\/v2\/posts\/43"}],"collection":[{"href":"http:\/\/www.coactus.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.coactus.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.coactus.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.coactus.com\/blog\/wp-json\/wp\/v2\/comments?post=43"}],"version-history":[{"count":0,"href":"http:\/\/www.coactus.com\/blog\/wp-json\/wp\/v2\/posts\/43\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.coactus.com\/blog\/wp-json\/wp\/v2\/media?parent=43"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.coactus.com\/blog\/wp-json\/wp\/v2\/categories?post=43"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.coactus.com\/blog\/wp-json\/wp\/v2\/tags?post=43"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}