{"id":50,"date":"2007-09-27T19:25:58","date_gmt":"2007-09-27T18:25:58","guid":{"rendered":"http:\/\/tmachine1.dh.bytemark.co.uk\/blog\/index.php\/2007\/09\/27\/internet-as-platform-marc-andreessen-is-wrong\/"},"modified":"2007-09-27T19:26:45","modified_gmt":"2007-09-27T18:26:45","slug":"internet-as-platform-marc-andreessen-is-wrong","status":"publish","type":"post","link":"http:\/\/new.t-machine.org\/index.php\/2007\/09\/27\/internet-as-platform-marc-andreessen-is-wrong\/","title":{"rendered":"Internet as Platform &#8211; Marc Andreessen is wrong?"},"content":{"rendered":"<p>&#8220;Often wrong, never in doubt&#8221; is the tagline on Marc Andreessen&#8217;s blog. With a recent post of his, on the &#8220;three kinds of platforms you meet on the internet&#8221;, I think the first part of that tagline is ringing true :P &#8211; <a href=\"http:\/\/blog.pmarca.com\/2007\/09\/the-three-kinds.html\">Marc is talking nonsense with his claims that &#8220;[a Level 3 platform is] much better for the developer [than a Level 2 one]&#8221;<\/a><\/p>\n<p>It&#8217;s great that he&#8217;s trying to &#8220;disentangle and examine the topic of Internet Platform&#8221;, but &#8230; seriously, there are good analyses and bad analyses, and this one rings jarringly false to me.<\/p>\n<p>To save you reading the whole thing initially, here&#8217;s <a href=\"http:\/\/andrewchen.typepad.com\/andrew_chens_blog\/2007\/09\/great-article-o.html?cid=84282752\">Andrew Chen&#8217;s summary<\/a>:<\/p>\n<blockquote><p>The fastest summary:<\/p>\n<p>    * A Level 1 platform&#8217;s apps run elsewhere, and call into the platform via a web services API to draw on data and services &#8212; this is how Flickr does it.<\/p>\n<p>    * A Level 2 platform&#8217;s apps run elsewhere, but inject functionality into the platform via a plug-in API &#8212; this is how Facebook does it.  Most likely, a Level 2 platform&#8217;s apps also call into the platform via a web services API to draw on data and services.<\/p>\n<p>    * A Level 3 platform&#8217;s apps run inside the platform itself &#8212; the platform provides the &#8220;runtime environment&#8221; within which the app&#8217;s code runs.<\/p>\n<p>And which companies are working on Level 3 platforms, other than Marc&#8217;s Ning?<\/p>\n<p>    * Salesforce.com<\/p>\n<p>    * SecondLife<\/p>\n<p>    * Amazon (through AWS)<\/p>\n<p>    * Akamai<\/p>\n<\/blockquote>\n<p>Which is fine, but I need to add Marc&#8217;s statement that <\/p>\n<p>I call these Internet platform models &#8220;levels&#8221;, because as you go from Level 1 to Level 2 to Level 3, as I will explain, each kind of platform is harder to build, but much better for the developer. Further, as I will also explain, each level typically supersets the levels below.<\/p>\n<ol>\n<li>Are they monotonically harder to build?\n<ul>\n<li>Yes<\/li>\n<\/ul>\n<\/li>\n<li>Do they typically superset the levels below?\n<ul>\n<li>Yes<\/li>\n<\/ul>\n<\/li>\n<li>Are they &#8220;much better for the developer&#8221;?\n<ul>\n<li>Hell no<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>Marc has written a very programmer-centric post here. He&#8217;s identified that, technically speaking, the different classes of platform are &#8220;bigger&#8221; than each other and obey a transitive, non-commutative, superset relationship. Natural consequences of that are the first two items I hilight in his claims above.<\/p>\n<p>But he&#8217;s then made the mistake of conflating this with *entirely unsubstantiated* business concepts of &#8220;better&#8221;. As the developer of one of these &#8220;level 3&#8221; platforms he contends are &#8220;best&#8221;, it&#8217;s no wonder that he wants to believe that it is a *logical* conclusion that the business advantage comes forth just as the technical conclusions are logically sound. But wanting to believing a thing doesn&#8217;t make it true. And whilst I genuinely believe he could have provided a decent argument that makes it true *for his business*, I think it&#8217;s not only an illogical claim, but actually false, in the general case.<\/p>\n<p>Specifically, I would like to know how a level 3 is &#8220;better for the developer&#8221; than a level 2?<\/p>\n<p>And I&#8217;m sorry, but I&#8217;m going to stop calling them &#8220;levels&#8221;; they are only levels in a programming sense, not in a business sense, and to name them that way implies something is globally true that only applies to one aspect of them.<\/p>\n<p>Going from class 2 to class 3, you:<\/p>\n<ol>\n<li>have to do more work<\/li>\n<li>pay more in ongoing costs<\/li>\n<li>provide no appreciable benefit to any user who is also a competent developer<\/li>\n<\/ol>\n<p>To give an example of a valid way of making the &#8220;3 beats 2&#8221; argument work is that you could argue that if your target-market is people who can&#8217;t write code at all then the third point above is irrelevant, and that actually you ARE adding value.<\/p>\n<p>But for all the other users &#8211; and, let&#8217;s be fair here, Marc chooses *Facebook* as one of his examples of class TWO, not three; Facebook, where pretty much any idiot can (and does) write a facebook app within a matter of days or hours &#8211; point three above means you aren&#8217;t adding any value at all by moving to class 3.<\/p>\n<p>Hosting is incredibly cheap these days, and developing basic functionality is incredibly easy &#8211; as mentioned, look at the proliferation of non-programmers and what they&#8217;ve done on FB. Reducing the dev cost and hosting cost over and above a level 2 platform seems to have very little actual point to it.<\/p>\n<p>And, worst of all, with a level 3 platform, you make it into an &#8220;all-or-nothing&#8221; proposal, completely about-face from what has driven the proliferation of Web 2.0. You create a walled-garden of proprietaryness, where every user is dependent upon your ongoing existence. Facebook expressly does not do this.<\/p>\n<p>Even when people use your service because they have no choice but to limit themselves to your walled-garden, you will scare away vast swathes of the best users because they will be rightly suspicious that yours is a proprietary platform that they cannot exist without.<\/p>\n<p>I would rather contend that class 2 apps are the best of all. Why? Because:<\/p>\n<blockquote><p>If I develop an FB app, and FB disappears tomorrow, I can still run my app all over the web with almost literally no changes to code.<\/p><\/blockquote>\n<p>On the other hand (and I know many examples of where this has prevented people from using SL, even though LL have taken many steps to blur this and insulate people from the problem, including open-sourcing pretty much everything)<\/p>\n<blockquote><p>If I develop something in SL, and Linden implodes tomorrow &#8230; I lose my entire ability to conduct business.<\/p><\/blockquote>\n<p>I think it&#8217;s telling that even in Marc&#8217;s post it&#8217;s clear he was struggling to find examples of class 3 platforms. I think it&#8217;s disingenuous to even put SL in that category, since it is (as noted) moving so strongly and rapidly towards being something different &#8211; they&#8217;re even talking about allowing anyone to run the servers themselves. If they&#8217;re a poster-child for level 3 being &#8220;much better for the developer&#8221;, then why are they running full-tilt for becoming something that would only fit in his level 2?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;Often wrong, never in doubt&#8221; is the tagline on Marc Andreessen&#8217;s blog. With a recent post of his, on the &#8220;three kinds of platforms you meet on the internet&#8221;, I think the first part of that tagline is ringing true :P &#8211; Marc is talking nonsense with his claims that &#8220;[a Level 3 platform is] [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,3],"tags":[],"_links":{"self":[{"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/posts\/50"}],"collection":[{"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/comments?post=50"}],"version-history":[{"count":0,"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/posts\/50\/revisions"}],"wp:attachment":[{"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/media?parent=50"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/categories?post=50"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/new.t-machine.org\/index.php\/wp-json\/wp\/v2\/tags?post=50"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}