{"id":1941,"date":"2007-06-05T11:39:11","date_gmt":"2007-06-05T15:39:11","guid":{"rendered":"http:\/\/www.markbaker.ca\/blog\/2007\/06\/05\/google-gears-too-much-interface\/"},"modified":"2007-06-05T11:39:11","modified_gmt":"2007-06-05T15:39:11","slug":"google-gears-too-much-interface","status":"publish","type":"post","link":"http:\/\/www.markbaker.ca\/blog\/2007\/06\/google-gears-too-much-interface\/","title":{"rendered":"Google Gears: too much interface?"},"content":{"rendered":"<p>So I had a quick look at <a href=\"http:\/\/code.google.com\/apis\/gears\/index.html\">Google Gears<\/a> this morning.  Unlike <a href=\"http:\/\/www.tbray.org\/ongoing\/When\/200x\/2007\/05\/31\/Gears\">some<\/a>, I do most definitely see value in supporting disconnected scenarios, not because I don&#8217;t see pervasive wired and wireless networks being the rule in the not-too-distant future &#8211; I do &#8211; but because I understand that <a href=\"http:\/\/en.wikipedia.org\/wiki\/Fallacies_of_Distributed_Computing\">networks are unreliable<\/a>.  That said, I do have some concerns about how Gears was put together.<\/p>\n\n<p>My primary concern is that I&#8217;ve always felt that supporting offline use in existing browsers required more innovation of <em>implementation<\/em> rather than interface, whereas Gears is all about interface.  What I mean by that is that I believe that a better, more easily deployable and usable solution would be for <a href=\"http:\/\/www.mozilla.org\">Mozilla<\/a> itself to tweak the implementations of its HTTP stack, cache, and XMLHttpRequest object.  Instead, Gears gives us new interfaces like <a href=\"http:\/\/code.google.com\/apis\/gears\/api_localserver.html\">LocalServer<\/a>, which developers are supposed to use to check for valid cached representations before hitting up XHR: something XHR could very well do itself, largely transparently (I expect &#8211; haven&#8217;t considered all the backwards-compatibility issues).<\/p>\n\n<p>Now, Gears could very well be something that was deployed for its ability to enable features <em>today<\/em>, because Google didn&#8217;t want to have to wait for <a href=\"http:\/\/www.whatwg.org\/specs\/web-apps\/current-work\/\">HTML 5<\/a> (and its equivalent of <a href=\"http:\/\/www.whatwg.org\/specs\/web-apps\/current-work\/#storage\">client-side storage<\/a>) to be deployed.  And from that perspective it&#8217;s great (though requiring a plugin is a bit of a pain).  I just hope that the Gears folks are talking with <a href=\"http:\/\/ln.hixie.ch\/\">Hixie<\/a> and Mozilla about where to draw the line here.<\/p>","protected":false},"excerpt":{"rendered":"So I had a quick look at Google Gears this morning. Unlike some, I do most definitely see value in supporting disconnected scenarios, not because I don&#8217;t see pervasive wired and wireless networks being the rule in the not-too-distant future &#8211; I do &#8211; but because I understand that networks are unreliable. That said, I [&hellip;]","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[3,12,17,30,34,36,40],"class_list":["post-1941","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-ajax","tag-google","tag-mobile","tag-standards","tag-w3c","tag-web20","tag-xml"],"_links":{"self":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/1941","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/comments?post=1941"}],"version-history":[{"count":0,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/posts\/1941\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/media?parent=1941"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/categories?post=1941"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.markbaker.ca\/blog\/wp-json\/wp\/v2\/tags?post=1941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}