<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" 
      xmlns:thr="http://purl.org/syndication/thread/1.0">
  <link rel="alternate" type="text/html" href="http://dashes.com/anil/2004/08/a-middle-layer.html" />
  <link rel="self" type="application/atom+xml" href="http://dashes.com/anil/atom.xml" />
  <id>tag:dashes.com,2009:/anil//1/tag:www.dashes.com,2004:/anil//1.1793-</id>
  <updated>2009-08-10T20:28:10Z</updated>
  <title>Comments for A middle layer of web apps</title>
  <subtitle>A Blog About Making Culture</subtitle>
  <generator uri="http://www.sixapart.com/movabletype/">Movable Type 4.3-en</generator>
  <entry>
    <id>tag:www.dashes.com,2004:/anil//1.1793</id>
    <link rel="alternate" type="text/html" href="http://dashes.com/anil/2004/08/a-middle-layer.html" />
    <link rel="service.edit" type="application/atom+xml" href="http://dashes.com/mt/mt-atom.cgi/weblog/blog_id=1/entry_id=1793" title="A middle layer of web apps" />
    <published>2004-08-19T15:53:35Z</published>
    <updated>2005-08-12T06:49:50Z</updated>
    <title>A middle layer of web apps</title>
    <summary>Olivier has offered a challenging analysis whose name explains his thesis: &quot;Organizr is Nice, But Not a Web App&quot;. The fundamental debate is whether an...</summary>
    <author>
      <name>Anil</name>
      <uri>http://anildash.com/</uri>
    </author>
    
    <content type="html" xml:lang="en" xml:base="http://dashes.com/anil/">
      <![CDATA[<p>Olivier has offered a challenging analysis whose name explains his thesis: "<a title="Organizr is Nice, But Not a Web App" href="http://www.oliviertravers.com/archives/2004/08/18/organizr-is-nice-but-not-a-web-app/">Organizr is Nice, But Not a Web App</a>". The fundamental debate is whether an in-browser Flash app that calls a <span class="caps">REST</span>ian web service is a "real" web app in the same sense that an <span class="caps">HTML </span>app is.</p>

<p>My initial thinking on this is:</p>


<ol>
<li>A management application running in Flash is actually in a slightly different class, a middleweight interface halfway between a thin-client <span class="caps">HTML </span>page and a rich executable client.</li>
<li>Who cares?</li>
</ol>



<p>Stewart makes a fairly compelling argument that the real-world web consists of anything that sits on top of it. I've <a href="http://www.alistapart.com/articles/typepad/">talked about creating web apps that are valid <span class="caps">XHTML</span></a>, and interestingly the reaction from people commenting was to focus on whether an application's <em>output</em> was valid, with the markup of the application's actual user interface seeming almost unimportant. That's completely understandable, but it underscores the "Who cares?" point by refocusing on what comes out of the application, instead of the technical specifications of the application itself. Even if Olivier's right, it doesn't change anything.</p>

<p>The more interesting part to me is the layering over web services that we're seeing. <a href="http://www.dropcash.com/">DropCash</a> is the definitive example right now, <a href="http://www.sixapart.com/log/2004/08/dropcash_launch.shtml">reusing existing <span class="caps">API</span>s</a> like <a href="http://www.movabletype.org/docs/tk-apps.html">TypeKey</a> and PayPal to provide a useful and unique service. But the potential for building even more on top of these second-level platforms is the reason that I'm excited about DropCash.</p>

<p>I want enough <span class="caps">API</span>s built on top of DropCash that I can build (or rather, one of the PBs can build) a wishlist gifting tool. Give the service a person's name, and it goes to their site and finds their Amazon wishlist link, maybe from their <span class="caps">FOAF </span>file. Using the Amazon <span class="caps">API, </span>you grab the person's wishlist, enumerate the items, and sort them by price, lowest to highest. Create a DropCash campaign that ends on a certain date (the giftee's birthday?) rather than at a certain dollar amount. Retrieve the images of each item on the wishlist and line them up next to the bar chart showing the campaign's progress.</p>

<p>Then it's all about notification. All of you who thought "DropCash needs an <span class="caps">XML </span>feed!" rest assured: <a href="http://notes.torrez.org">Andre</a>'s thought of that, I'm sure. But this campaign could update donors either via subscription or email and say "We've raised enough money to buy a CD!" or "...to buy a TV!" or "...to buy a PC!". <em>That's</em> a useful layering of web services. Wishlist gifting app on top of Amazon on top of DropCash  on top of TypeKey on top of PayPal. Nothin' but net.</p>

<p>Should you do it in a Rich Internet App or a thin client or a dedicated desktop app? I don't much care. If you do it right, it's easy enough to plug any of those into the service you've created. Do one reference implementation, and let the Lazyweb build the rest of the versions and improve upon what you've done. Let a thousand clients bloom. <a href="http://www.kottke.org/04/08/web-platform">Web as OS</a> or whatever.</p>

<p>Naturally, I love <a href="http://www.flickr.com/tools/organizr.gne">Organizr</a> because it's a cool app. But I don't just want it to talk to the <a href="http://www.flickr.com/services/api/">Flickr <span class="caps">API</span></a>. I want to layer it on top of the Atom <span class="caps">API </span>and see my posts in the same view that I see my images. Timeline slider that scales and shows posts within a certain range.</p>

<p>Then, stack Organizr on top of the Wishlist app. I want to see pictures of each of the gifts that's been given away on campaigns that were created in the last month. And then...?</p>]]>
      
    </content>
  </entry>

  <entry>
    <id>tag:www.dashes.com,2004:/anil//1.1793-comment:3817</id>
    <thr:in-reply-to ref="tag:www.dashes.com,2004:/anil//1.1793" type="text/html" href="http://dashes.com/anil/2004/08/a-middle-layer.html"/>
    <link rel="alternate" type="text/html" href="http://dashes.com/anil/2004/08/a-middle-layer.html#c3817" />
    <title>Comment from jjg on 2004-08-19</title>
    <author>
        <name>jjg</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>My feeling about it has always been (and remains) that "the Web" refers to a very specific set of technologies: HTML and JavaScript delivered over HTTP. Delivering HTML by some other means? Great, but it's not the Web. Delivering something else over HTTP? Also great, but also not the Web.</p>

<p>(Yes, that means Web services are misnamed too. I fully expect to lose this battle; this fact, however, does not make me wrong.)</p>

<p>RESTfulness is not strictly necessary, but it is important, since it facilitates linking, which is the very essence of the philosophy underlying the Web technologies.</p>

<p>I agree that Flash apps seem to fall into a middle tier between desktop apps and Web apps: client-server apps in which the client-side code is only resident on the client for the duration of the user session. I guess this is the Rich Internet Application that Macromedia is always on about.</p>]]>
    </content>
    <published>2004-08-20T02:42:37Z</published>
  </entry>

  <entry>
    <id>tag:www.dashes.com,2004:/anil//1.1793-comment:3818</id>
    <thr:in-reply-to ref="tag:www.dashes.com,2004:/anil//1.1793" type="text/html" href="http://dashes.com/anil/2004/08/a-middle-layer.html"/>
    <link rel="alternate" type="text/html" href="http://dashes.com/anil/2004/08/a-middle-layer.html#c3818" />
    <title>Comment from jburka on 2004-08-20</title>
    <author>
        <name>jburka</name>
        <uri>http://www.burkas.net</uri>
    </author>
    <content type="html" xml:lang="en" xml:base="http://www.burkas.net">
        <![CDATA[<p>Jesse, if you're going to be that restrictive in your definition of "the Web," why include JavaScript (or, better, ECMAScript)?  after all, it wasn't introduced until Netscape 2.0 which was released in, what, early '96?  That's over 5 years after the web really debuted (and 7 years after Berners-Lee conceived of it).  Further, a major aspect of the Web as it's existed since the browsers of the early '90s is the ability to hyperlink to URIs using protocols other than HTTP (e.g. gopher, ftp).  Servers of the world, unite!</p>

<p>Your highly restrictive definition seems far more applicable to the term "web page" than to the Web itself...</p>]]>
    </content>
    <published>2004-08-20T13:12:23Z</published>
  </entry>

  <entry>
    <id>tag:www.dashes.com,2004:/anil//1.1793-comment:3819</id>
    <thr:in-reply-to ref="tag:www.dashes.com,2004:/anil//1.1793" type="text/html" href="http://dashes.com/anil/2004/08/a-middle-layer.html"/>
    <link rel="alternate" type="text/html" href="http://dashes.com/anil/2004/08/a-middle-layer.html#c3819" />
    <title>Comment from kevin fanning on 2004-08-20</title>
    <author>
        <name>kevin fanning</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>how unique is dropcash really? there are a variety of other tools that help people fundraise online, (entango, active.com's activegiving). dropcash is probably the simplest, but you can't do anything to personalize it or make it interesting to the possible donor.</p>]]>
    </content>
    <published>2004-08-20T17:33:25Z</published>
  </entry>

  <entry>
    <id>tag:www.dashes.com,2004:/anil//1.1793-comment:3820</id>
    <thr:in-reply-to ref="tag:www.dashes.com,2004:/anil//1.1793" type="text/html" href="http://dashes.com/anil/2004/08/a-middle-layer.html"/>
    <link rel="alternate" type="text/html" href="http://dashes.com/anil/2004/08/a-middle-layer.html#c3820" />
    <title>Comment from Dan S. on 2004-08-20</title>
    <author>
        <name>Dan S.</name>
        <uri></uri>
    </author>
    <content type="html" xml:lang="en" xml:base="">
        <![CDATA[<p>When I think of the promise of "web apps," I think of applications that can run using thin, ubiquitous technology based on open standards.  A web app would be able to run in any browser with a few basic capabilities, on any platform that supports such a browser.  The cool part is being able to walk into any library with Internet access and bring up all of my email, calendaring, notes, blog admin interface, word processing.  I can do the same from an Internet cafe running IE and Windows 95 on 500MHz Pentiums, or a friend's house running Linux and Firefox.</p>

<p>Flash doesn't meet this expectation, so it's less cool.  JavaScript is ubiquitous and open.  Inconsistent implementations of JS have held back some of the more whizbang just-like-the-desktop web apps, and encouraged others to use platforms like Flash for this sort of thing, but there's plenty we can do with what works.</p>]]>
    </content>
    <published>2004-08-20T19:48:20Z</published>
  </entry>

</feed>