Progress Is N+1

Not sure how I got there, but I just stumbled over this bit of dark humor at Joel Spolsky’s expense, and in reading it I was reminded of a discussion last Friday where I voiced my frustration that as much as IE 8 looks to be a good point release, we know next to nothing about it’s intentions with regards to ship dates or auto-update deployment. I’m not talking exact dates or firm plans here, just “within the next N months” or “we’ll wait N (plus or minus 3) months to put it on Windows Update”. Knowing those things fill in the missing bits of making any plans around IE. No plan is complete without a “who”, a “how”, and a “when”. Right now we’ve got the first two bits (ish), but the third is a mystery….which means we don’t have a collective plan.

By the transitive property of IE being the monopoly market-share browser, we can clearly state that we have no idea when the Open Web will be revved. This is based solely on the IE team’s lack of commitments. This is a terrible result, and one which I think the frenzy over IE 8’s features has obscured.

Joel’s article and some of Mark’s commenters make it obvious that there’s now a gap in the expectations of some devs about what it means to be a web developer versus what it meant 4 or 5 years ago. Back then we all assumed that browsers would get better, or at least different. There was bitter complaining about how incompatible everything was and how horrid it was to have to update everything…but underlying that discontent was the assumption that the web would keep changing. Web developers have to a great extent lost this assumption and I see a lot of the acrimonious discussions about new browser features in this light. There is great fear on the part of the web development community that progress will cost something, and they’re right. So long as we’re only talking about one revision, the cost looks new and surprising, but if we were to start talking about how we’d keep revving the web, those costs could be assumed by all parties again. It’s for this reason that I posit that the most important thing about IE 8 won’t be any of its features…it’ll be that it ships soon-ish and goes out to auto-update (if that is indeed the plan, which we don’t know).

The analogies that Joel brings up about standardization are perhaps valid if you take a snapshot in time of features vs. conformance. What happens in the browser world, though, is that things where were only marginally possible with old features become the norm via new features. New tags or CSS rules get added which make what was hard simple, if less flexible. In that process, we find that we need strong agreement on the behavior of those “mainline” things, while it’s perfectly OK for browser vendors to disagree about the fringes. Those fringes, after all, are were new things should be getting developed and introduced for market testing. It’s only when new things don’t get introduced and that broad agreement isn’t forged and “full” standards conformance comes into the fore. We need 100% standards conformance for all the nit-picky corner cases when those are all we’ve got in the way of “new” platform capabilities. Joel’s view of the world doesn’t take into account healthy evolution and improvement based on real competition. Competition makes suppliers responsive to customers and gives a real path for evolution. Standards make suppliers responsive to proxy bodies who are easily distracted.

IE and all browsers are as much a platforms as applications, but browser vendors get themselves into strange positions with regards to the platform bits of their products. Since browsers are positively differentiated by their chrome and not their engines, you can think of renderers and script engines and all the things that webdevs care about as costs of doing business for a browser-producing organization. Insofar as they make money, they do it on chrome, not rendering. Of course, getting into the good graces of web developers is great for a browser maker, but getting in front of users is the only real metric of browser success and to get there one only needs a renderer that’s on par with the others. You can’t positively differentiate a browser by making it more standards compliant or even by introducing new and awesome non-standard features. Those things can have strategic value, but they can never stand on their own.

Which brings us back to IE being a platform. The bits that webdevs care about must change in order for the web to get better, and today webdevs are platform customers without a commitment from their biggest supplier to ship another version beyond the one they’re working on now. If this were any other sort of platform, this would never ever fly. Code-in-escrow would be demanded along with a roadmap, or at a minimum a commitment to an N+1 version in a reasonable time frame. But webdevs don’t have that leverage by virtue of the disintermediation that browser economics now demand.

So as webdevs, we must be canny enough to find a way to “better” which doesn’t put all of our eggs in any particular basket. Every browser that we depend on either needs an open development process or it needs to have a public plan for N+1. The goal is to ensure that the market knows that there is momentum and a vehicle+timeline for progress. When that’s not possible or available, it becomes incumbent on us to support alternate schemes to rev the web faster. Google Gears is our best hope for this right now, and at the same time as we’re encouraging browser venders to do the right thing, we should also be championing the small, brave Open Source team that is bringing us a viable Plan B. Every webdev should be building Gear-specific features into their app today, not because Gears is the only way to get something in an app, but because in lieu of a real roadmap from Microsoft, Gears is our best chance at getting great things into the fabric of the web faster. If the IE team doesn’t produce a roadmap, we’ll be staring down a long flush-out cycle to replace it with other browsers. The genius of Gears is that it can augment existing browsers instead of replacing them wholesale. Gears targets the platform/product split and gives us a platform story even when we’re neglected by the browser vendors.

Gears has an open product development process, an auto-upgrade plan, and a plan for N+1.

At this point in the webs evolution, I’m glad to see browser vendors competing and I still feel like that’s our best long-term hope. But we’ve been left at the altar before, and the IE team isn’t giving us lots of reasons to trust them as platform vendors (not as product vendors). For once, we have an open, viable Plan B.

Gears is real, bankable progress.

17 Comments

  1. Posted March 26, 2008 at 9:03 am | Permalink

    As I read about your desire for a roadmap for Microsoft’s browser platform, that made me consider Microsoft’s other, even bigger platform: Windows. I can imagine that many Windows developers were dismayed at the shifting timetables of what ultimately became Vista (and were likely even more dismayed when Vista actually shipped).

    By comparison, the reconvened IE team seems to be making a bit more forward progress with their platform. I totally agree, though, that Microsoft not moving quickly with IE and not even providing a hint of future plans makes things harder for web developers.

    You make a great point about Gears. I haven’t seen any stats about Gears’ installed base. It’s harder to rely on a plugin like Gears for core application functionality unless you know your users will have it or at least be able to get it (and not be held back by their IT departments or lack of knowledge/comfort with computers).

  2. Posted March 26, 2008 at 10:16 am | Permalink

    Alex your thoughts are as precise and accurate as ever. The need for change should be manifest, the web is powerful but surely not all it could be. To cite just a small case, although I dont know if ES4 is /the/ way forwards, I cannot help but revulse everytime someone claim that we should just leave JS exactly as it is and how dare they change things. Sir, whomever you are, you are in technology for the wrong reasons, please at least refrain from hating on advancement just because you dont understand the boon.

    Your final thoughts on gears struck me profoundly. You have but 171 words on Gears and absolutely minimal (but well threaded and sufficient) assertions as to how and why Gears is bankable, but I think you could go further and state and declare it incredibly potent as well. Gears is not just the development model we need, it directly fills the niche left by the the most pervasive, broken, and damaging artifact in the world, IE (who only now is accepting standards, and seems utterly resistant to growth). Gears laces IE (amongst others) with the spice IE devs may or may not ever be willing to put in, allows the web to advance as a platform even when the most stagnant entity remains firmly fixed.

    To recap, ironically it was Microsoft’s constant innovation in the early web that gave us DHTML. After IE6 it seems like they’ve been doing everything they can to keep the web platform from moving forwards. And Gears provides an incredible avenue to keep progress flowing inspite of.

  3. Posted March 26, 2008 at 10:24 am | Permalink

    You said much the same as my previous comment, and looking again I see I did the point no greater justice. The reason I wrote my comment was that I feel like the point has been declared subtly, when it ought not be a fine point; it should be bold and scrawled large upon city streets and buildings and shouted from mountain tops.

  4. Posted March 26, 2008 at 10:25 am | Permalink

    Kevin’s comments on Gears install base is spot on. While it’s interesting to have new ways to create browser innovation, mainstream application developers won’t invest in Gears without good statistics on the install base. It’s surprising that this kind of stat seems to be nowhere to be found.

  5. Posted March 26, 2008 at 10:29 am | Permalink

    Alex, great post. This is why I joined Google and the Gears team. I believe in the open web and see Gears as a very clever solution to help get us out of the impasse we are all in as web devs. I’d like to look back five years from now and see how we, as a community, constructed an open source update mechanism for the web that cuts cross-browser and cross-platform, giving us leverage to move the web forward and rev it much faster than we have now. Gears is the closest to this we have today. As we say in open source, code rules, so drop on by Gears and contribute Gears modules that make this happen (http://gears.google.com). Want to see better 2D vector graphics show up cross browser that you can use today? Bake one into Gears.

    Just in case you don’t know about Gears or what it has today here’s some more info:

    Gears is an open source plug-in that teaches current web browsers new tricks. Gears is a clever way to raise the bar cross-browser and cross-platform, today, running inside of Firefox and Internet Explorer on Windows, Mac OS X, and Linux. No more waiting years for features to show up across all browsers and platforms. APIs include: A real embedded relational database (SQLite) for web sites; client-side full text search; threads for JavaScript; offline web applications; secure and fast cross-domain mashups; desktop shortcuts; mobile devices; and more.

  6. Posted March 26, 2008 at 10:32 am | Permalink

    About Gears installed base, Gears has only been out for about nine months as an early access, beta product, so the installed base is still growing. However, expect to see Gears baked into many places you would expect to see it in 2008 from Google’s end, as well as a big push from partners in general this year. You can start using Gears now in your applications and feel comfortable that deployment will ramp up greatly in 2008.

    Best,
    Brad Neuberg
    Gears

  7. Posted March 26, 2008 at 11:10 am | Permalink

    Gears is more a tool for web apps than web sites. Unless the target audience for your app is everyone, the install base is basically insignificant. Even if it is everyone, if the raison d’etre of your app includes offline functionality, the install base is insignificant as Gears’ is the crux of your selling point and there is no standards based alternative.

  8. Posted March 26, 2008 at 3:54 pm | Permalink

    Hi Rektide, HTML 5 includes offline functionality (much of it speced out with input from the Gears team).

    Brad Neuberg
    Gears

  9. Posted March 26, 2008 at 4:43 pm | Permalink

    I feel the same way about Gears, but we need to do something about its installed base. We need a killer app, which will compel people to install it, and probably a concerted effort from Google to promote it.

  10. Posted March 26, 2008 at 6:33 pm | Permalink

    Bertrand:

    Microsoft could do the world a favor and start distributing Gears as part of the Silverlight installer. Clearly the fact that it’s a plugin can’t be an a-priori strategic disadvantage or else Silverlight and Flash would be similarly un-viable. Gears has the advantage, though, that it doesn’t burden you with changing your entire development process to take advantage of it. As Brad mentions, installed base shouldn’t be an issue once people realize how important Gears is to the future of a healthy web.

    I’ve been saying for a while that Silverlight has better evolutionary characteristics than Flash, but Gears trumps them both by piggybacking on HTML itself and not requiring a new markup system.

    Gears FTW!

    Regards

  11. Posted March 27, 2008 at 2:14 pm | Permalink

    @Alex: I’m not following you. How does it make sense for Microsoft to add Gears to Silverlight?

  12. Posted March 27, 2008 at 4:53 pm | Permalink

    Hey Bertrand:

    I’m not sure it does make sense for MS (on a selfish, short-term basis) and I don’t know that any browser vendor will seriously consider it. That said, it *would* be good for the world if MS distributed Gears and got involved in the (open) Gears development process. Same is true for Yahoo building Gears features and supporting the project (which they probably won’t until it’s too late) or Sun shipping it alongside the JRE (which they won’t do until it’s waaaaaaaay too late).

    Most of those organizations have a vested interest in seeing the Open Web improve (as does some faction inside of MSFT), but in all cases they cannot or will not move to preserve this investment; either because of a desire to exploit the opportunity of Open Web stagnation for product gain, or because their browser-based efforts would be threatened insofar as shipping gears would be tacit acknowledgment that their browsers aren’t good enough.

    Luckily, Google may be large enough on its own to pull it off, but I fear that without engagement by other parties who SHOULD be at the table, Gears will continue to be a Google-only effort (with predictable and negative long-term results).

    It would be good for MSFT on a rational, medium-term basis to get involved in the Gears development effort and to ship to older IE installs in an effort to stave off other browsers, but I don’t see that level of foresight being able to overcome the “but we have an answer in Silverlight…” arguments which would be immediately brought to bear. For the other tech giants, it’s just a “rinse, repeat” situation WRT their own investments.

    Regards

  13. Posted March 27, 2008 at 5:17 pm | Permalink

    Yes, well, the way I see it, Gears is a great incubator for new ideas, but I personally wouldn’t bet a lot on the success of Gears (I could of course be very wrong on that). I understand that you think it would be in everybody’s best interest to promote the plug-in in every possible way in order to promote the ideas it implements but as you say all major vendors that would be able to do that have their own agendas to promote their versions of similar ideas. I think I’m actually fine with that because after all that looks just like healthy competition. I agree that we have Gears to thank for contributing to reviving competition in the browser space.

  14. Posted March 30, 2008 at 2:04 pm | Permalink

    Bertrand:

    I’m counting on you being wrong on this one. Google has reach, and the virtuous cycle of self-perpetuating gears-based features/installs doesn’t need much of a kickstart once Google products really start to use it.

    The fact that Gears doesn’t present an entirely different programming model/environment is it’s biggest strength and the reason I think its uptake will be both swift and (relatively) silent. Silverlight needs a bit splash to sell itself…Gears just needs email and document editing offline. I’m betting there’s more pent-up demand for the latter than the former.

    I’ll buy you a case of your favorite beer if gears isn’t on 50% of desktops in a year.

    Regards

  15. Posted April 1, 2008 at 3:02 pm | Permalink

    I’m willing to take that bet. :) Guinness will do. What will that be for you?

  16. Posted April 12, 2008 at 3:52 am | Permalink

    Hi Alex,

    I haven’t seen your post till now, not exactly because I was not looking, but a vacation aligned with a spring break can get in a way of work…
    I very much sympathize with your desire to see a solid path to the web as a whole moving towards something substantially different. I also have a number of desires towards the future which I wish I could have a clear roadmap for, such as when Americans will actually leave Iraq (I have no intention to make any kind of a political statement with this one, or any kind of parallels. I just really, sincerely want to know).
    I am not sure what the example of Gears will teach us. It is great to see people make commitments and stand by them. We (IE) do make commitments and stand by them. It takes some planning to make a commitment that can affect a billion people or so. Even if we know that we can absolutely, no doubt, ship software on a particular date (it does happen), we have to take any other variable out of the way before we tell anyone. So sorry, you’ll have to be patient. You know we are on your side, but changing the world can be somewhat slow…
    Meanwhile, consider all that computers that will never get updated. Then, consider the computers that actually do run other browsers (based on a standard that doesn’t exist). Suppose every IE becomes IE8… Will you get a web where you can really author once? What will your next problem be?
    You know, I am fine with people blaming IE for web development being difficult. We’ve contributed our share. Think a step or two ahead – if IE did everything you want it to, is it enough to make the world better? (I am assuming at this point that IE is still not the only browser in universe, and I don’t know that either…)
    Ahh, I love being a browser developer. Everybody readily appreciates my hard work (which I totally pretend to do, mostly writing emails sitting at an exotic beach… ;)
    –Alex

  17. Posted April 13, 2008 at 11:54 pm | Permalink

    Alex:

    Thanks for taking the time to reply. As you well know, I don’t blame IE for everything. When I talk about a roadmap, what I’m suggesting here is that the IE team not having a release date or deployment plan is both understandable and highly problematic. As I outlined in the post, the idea of waiting on omnibus browser releases to “fix the web” leaves the broader community of web developers in the lurch for years at a time. Of course we have to wait on new renderers for CSS and HTML rendering bugs to get fixed…but why are we waiting on IE 8 (or Firefox 3, etc.) for JScript fixes and enhacements? Or for DOM fixes? Or for offline support? The concept of the omnibus browser is truly useful, but it’s also limiting in ways that are bad for the web so long as we need to assume that we must replace an application on everyone’s desktop to get a better platform to build applications *within* that chrome upon. Gears breaks us of that dependence without also throwing the basic model of the web under the bus (which both Silverlight and Flex are more than happy to do).

    What I am trying to figure out is how we can get to a place where we get a better web faster. Looking at the current landscape and the history of the browser wars, I think it’s pretty safe to say that all browsers getting auto-update is a huge deal…but it’s fundamentally also too slow. This isn’t about any one particular feature, it’s about the overall rate of change. I have hope that renewed browser competition will do more than Gears or Ajax frameworks ever could to ensure a high rate of improvement to the platform, but there seems to be a gap still. The uptake of IE 7 hasn’t been nearly good enough and there was an (as yet) unexplained year lag from release to being pushed to auto-update. In a faster evolving web, that kind of lag is a problem. Fundamentally, making users choose a *platform* based on an *application* is kinda backwards, and Gears go some way toward leveling out the collateral damage from the extant asymmetric information problem. None of the browser vendors have stepped up to really separate chrome for renderer and the platform suffers as a result. Auto-update only matters to getting a better *platform* when we’re not also waiting on the next searchbox enhancement to emerge.

    Gears is therefore different in ways which I think you (as someone working on a browser engine) may find to be either “lesser” or at least not fully adequate to the tasks at hand. It’s true that there are things which Gears can’t do as well as if they were implemented natively, but *those things will never be implemented natively on IE 7 and IE 6*. Those browser still need a hot-patch, and MSFT isn’t providing it (and the planned patch, IE 8, has no release date/plan AFAICT). Here’s where Gears has regular browser evolution “beat”:

    1.) gears does not require that users upgrade their browser or that they upgrade their OS. If their version of IE can handle the plugin, Gears can provide many capabilities which that old/slow/broken browser may never have been able to approach on its own. Note that this is the *exact same argument* being implicitly made by the Silverlight team, except that this team the plugin is *playing for our team*.

    2.) while you mentioned the awesome responsibility of needing to provide something that is in front of half a billion people every day, if the open web doesn’t grow new capabilities, those half billion people will just chose different types of platforms. Gears is our bootstrap into that future. You (and the IE team) can stabilize, standardize, and solidify technology and techniques for app development embodied both by the Ajax toolkits and also (now) by Gears. The different between them (JS and Gears) is that while it’s much harder to provide capability v ia Gears, it’s a much more complete and (once deployed) “less expensive” way of emulating a missing feature. That said, there are some thing thst Gears fundamentally cannot provide without replacing the renderer, and that hasn’t been it’s focus thus far (and I’m conflicted about whether or not it should).

    3.) Gears is on auto-update and is independent of the browser release cycles. We can get new stuff faster and in a less omnibus fashion. Having to wait until all the old browsers flush out of circulation is going to leave me an old, grey man before I the web evolves very far. Gears gets us the future sooner, albeit with the bootstrap problem to solve. The Google Docs announcement is the first step on the road to getting that done, and I expect we’ll see more.

    Lastly, Gears is an open project under a liberal OSS license. There aren’t issues of transparency or single vendor control. Anyone who wants to can get involved and help improve the state of the web for every browser. That’s really, really different.

    Regards

2 Trackbacks

  1. By Ajaxian » Progress Is N+1 on March 26, 2008 at 7:46 am

    […] Russell isn’t talking about the N+1 select problem when he references the Joel Spolsky piece on IE […]

  2. […] first post I read this morning was Alex Russell giving some more thought to the future of the Open Web where he concludes: Gears has an open product development process, an auto-upgrade plan, and a […]