Frustrating User Experiences: Techmeme Meta Refresh Life before and after kids: Your DVR Recordings
Sep 08

Revisiting why the Open Web matters; Gratuitous technology politics analogy

Tech with tags: Add comments

Communist Party

I have been thinking more about the Open Web recently, and decided that it may be time to go back to first principles and work out why I am such an advocate for it. The Open Web has plenty of flaws. I wish it was more productive, more seemless, and more beautiful :)

This came about as I pondered the same thing for feeling an association to a political party. Why do people associate themselves as Democrats, Republicans, a member of a smaller party, or just independent? How often do you join a team and just stick with it? It feels like there are a few types of people, including (sorry for a football analogy!):

  • At birth: I was born in Tottenham, so I will be a Spurs fan for life
  • Fair weather: I never liked Chelsea particularly, but after that Russian guy got involved I go to games and cheer them on
  • First principles: I like teams who play attacking football. I used to hate “boring boring Arsenal” but after that French bloke go involved, I have changed my mind.

Things change. The party of Honest Abe kicked into gear with the “core values” revolving around abolishing slavery, rather than all of the conservative values that the party espouses today.

Of course, within a party there are many factions. The Neo Cons and the traditional fiscally conservatives may share a party, yet be at odds on various decisions. The exact same goes for the Democrats and their beliefs.

Because of this, I am trying to regularly take a step back and match my belief system to the current politics of the day. Often parties use deep wounds and values to try to tie people together, but in other times we see the need to be reborn. Tony Blair famously did this recently in the UK by creating the “New Labour” brand. He ended up doing what Neil Kinnock never could, and becoming prime minister.

How does this all fit into software?

It is easy to get sucked into the same trap. “I believe in the Open Web!” Things change, so you can challenge yourself on why that matters to you.

As I look into why I care so much for the Open Web, a few core thoughts come out.

Power will lead to bad things

If I look back at the recent history of software and platforms, I come to the conclusion that at various points on the road the interests of developers and vendors align for awhile. Ben and I have been talking about this. For example, Microsoft nails the productivity of Visual Basic, and developers take that gift and run with it. But, over time, developers get frustrated and some of them feel like Microsoft uses their power to do bad things. Many lose trust and look elsewhere. Others don’t care and keep listening.

When the Java community came to the realization that Applets weren’t the killer app, but rather the JVMs, the “better C++” for the time, and the write once, run anywhere promise took hold quickly. Despite Sun, the Java developer community is still strong to this day. The problem though, is that at some point the vendors got too involved in a way that created EJB. Forget solving developers problems, it is time to argue over what to standardize, where the game is having your approach be the standard. IBM, Oracle, Sun, and many others fought about EJB and thus we ended up with the monstrosity that would create fortunes for consultants. Once the success of Java kicked in, everyone jumped on how to make money for it. Sometimes the companies that innovated were able to both make money for themselves, and help developers. Other times, not so much.

The power of the Open Web is in the fact that no one company controls it. When the interest of developers and The Uber Company aren’t aligned, developers are no longer screwed. They have choice.

This choice can come at a cost though.

Mussolini may be a dictator, but he made the trains run on time!

There is a notion that the less voices that we have, the faster we can move. A dictator that owns multiple sides, or the entire stack, can make a more productive, technically superior solution. In some ways this makes sense of course, but remember that Mussolini set the trains perception by changing the clocks. It doesn’t have to be this way.

One key is to keeping the democratic process moving appropriately fast (but not too fast).

I have talked about the Fly wheel approach in the past, and I think that this is a key issue for a healthy democracy, and a healthy Open Web.

There are reasons why Winston Churchil said:

Democracy is the worst form of government except for all those others

On the bad side, you get the issue of it never being able to become pure (just the same as communism). We are dealing with people. Once people get in power they have reasons to tweak the system in their favour. Obvious examples exist such as redrawing the congressional boundaries to do what you can to keep your party in power.

In technology you get the same thing. On the Open Web for example, we only have a few viable browsers (like the few number of viable parties issue). This gives huge power to these browser vendors, and it can break the fly wheel. Browsers have barely had a chance to innovate in the last decade. Imagine using a cell phone from 10 years back? It is crazy! The silence in the chasm is frustrating as hell. Even when the browsers change, we still have the lead weight of the users who don’t update. We need to solve that problem.

Microsoft got such a huge leader in the browser war, that they turned off. This cut off the circle of healthy Web life:

  • Vendor creates technology
  • Developer uses technology
  • Developer pushes boundary of technology
  • Vendor sees what is being done, and works on newer better technology
  • REPEAT

It turned out that developers have really kicked this into live again via the Ajax revolution. With poor dhtml support, many developers moved from the client side of Web browsing, and ran screaming from dealing with Netscape layers, and IE equivalents (IE was quickly better in fact). They made their home on the server for the coming years, spending time on Web frameworks in every language camp out there. We went from CGI to NS/ISAPI, to mod_*/Servlets/PHP, to Rails/Django/and more.

It took the joining of Mozilla implementing XMLHttpRequest, and visible applications such as Google Maps and Gmail (among others) to wake up the developers to the wasted CPUs and functionality available in the browser. Only brave folks such as Dean Edwards, Alex Russell, Erik Arvidsson, Emil Eklund, Dan Pupius, Aaron Boodman, Scott Isaacs carried the flame and pushed during the lean years.

With developers back in the game, thanks to Ajax, the browser vendors had the push they needed to really kick into gear again. Richer Web applications required better JavaScript and APIs. If a browser got really good at powering these rich applications they could set themselves apart.

This wasn’t enough though. Web developers were frustrated. We had teams at Google that mirrored many others. They wanted to add more functionality to their applications, and they needed a vector to make that happen. This is how Gears was born, and I bet the case was similar for what became the Yahoo! BrowserPlus team (am I right Lloyd? :).

Now that we are back in sync, and the flywheel has been turned on again, my thoughts are on how to keep this effect going. How can we put developers first and make sure that the cycle continues and doesn’t get derailed? We need to balance the power and constantly be watching it. No one company can get to a point when the power can corrupt. This is subtle, as it isn’t just watching out for the Sheriff of Nottingham and seeing how he is taking all of the money. These things often happen by mistake. You can easily think that you are doing a “good thing for the community” and yet you are creating a very unlevel playing field. One simple example that shows this is if we put CSS and JS from Google properties directly into Google Chrome. We could argue that this would be good for users as it would make the experience faster. How harmless is that? I believe that it would destroy the level playing field.

This isn’t to say that you can’t innovate, far from it. We need to be very clear that we require innovation. We just need a path for taking the evolution and moving it into the standards. In the above example, we could create a system for richer caching of resources. We could implement the hashing work that Aza Raskin and Douglas Crockford talked about. Good work will stick and will become part of the Open Web naturally. This is the beauty of the Open Web. Someone can come up with a piece of technology and others can share and use it. An independent developer could think up OAuth and make it happen. If it is worthy, big companies can come along and implement it too, and we can standardize. It doesn’t have to come FROM the huge companies first though. Think about how rare that is.

This is why I come full circle to realize that the Open Web is important. We all need to do our best to make sure that this deeply evolving system doesn’t get cancer. We need the bursts of innovation to kick out new DNA that allows us to try experiments.

With all of the work being done right now, it feels like the end of the Dark Ages. I can’t wait for the next chapter, can you? What have I missed?

3 Responses to “Revisiting why the Open Web matters; Gratuitous technology politics analogy”

  1. aLe Says:

    Good article, nobody can stop the Open Web power, developer command not big company!
    Free Web as Free Beer

  2. Mateo Says:

    Thanks for this.
    IMHO you just missed that the power outside the Web may corrupt it all, and the earth doesn’t hold the pollution, etc… Dark Ages can begin again, and without Internet :-( …
    Just to balance :-P

  3. mikael bergkvist Says:

    Today, much of the power is serverside, as Google itself demonstrates.
    So, something that bothers me with this, is why it’s so important to have a different model for creating apps on the client, than on the server?

    Why not just use the javascript and DOM there as well, and then have stuff like associated accounts and user data pre-processed transparently so that the developer wont have to even think about it?

    In accordance with this point of view, Aptana looks kinda cool.

    Now, I understand that various developers want their particular language, like python or java or whatever, but the web parses it all as html + javascript anyway in the end, so at some point these developers will have to learn it and learn it good, or forever be ‘hacks’ on the web.

    Either we change the rules of the game in the browser to move ahead, or we change the rules of the game on the server to move ahead, and since all of the web is html, I’m guessing that the server is the most likely part to yield.
    And here I think javascript is unavoidable..

    When we moved ahead with web 2.0, it was javascript that lead the way with Ajax.
    Previously, before that, it was DHTML.
    That in turn was made possible by CSS.
    Every time the web has changed in any major, lasting, way, it’s been closely intergrated with what came before it, be it css, xml, or xhtml.
    I think that Chrome and V8 is along those lines too, continuously building on what came before.

    I expect this to move forward along the same lines, because it has sofar.
    The server world today doesn’t fit, and thus my conclusion is that at some point this will have to change.

Leave a Reply

Spam is a pain, I am sorry to have to do this to you, but can you answer the question below?

Q: What is the number before 3? (just put in the digit)