Ben and I are speaking at the Future of Web Apps in lovely Miami. Having just been in the midwest, heading to some nice weather is welcome. I spoke at the event in London and thoroughly enjoyed it. At the time I was speaking on Gears. This time, Ben and I are talking about the state of the Web, and it obviously excites us. The timing is perfect as we give the talk on the back of the recent release of Bespin, the project that let us play with the bleeding edge. We were unencumbered by the chains of old browsers, and it shocked us a little. These chains keep us in the stone ages, and if we just suck it up and live with them the platform will pale in comparison to those that rev.

It is 2009 yet the majority of us still have to work in a world of browsers that were built for web pages. This show isn’t called the Future of Web Pages though, is it!

Through innovative and tiresome work the community evolved what we finally coined Ajax. It looked a little like this:

It was a series of hacks. A series of quirks. Painful. But, just like the early planes, who cares? The beast does fly! This cobbled together set of technologies gave us our flight in the form of giving us the ability to build applications. The small changes that we got in XHR and the like meant that we could create interactive experiences on the Open Web.

But, the browsers are finally changing. The new crop come with technologies that show that the browser vendors are thinking about building a platform for desktop quality applications. The Chrome comic book was full of this. We highlight some of these technologies:

Super fast JavaScript. Other platforms have smart JIT VMs and we should be no different. With the latest VMs that browsers are integrating we get orders of magnitude in performance gains. This doesn’t just make things a little faster, it means that the game has changed and you can do things that you previously couldn’t

Other platforms have smart JIT VMs and we should be no different. With the latest VMs that browsers are integrating we get orders of magnitude in performance gains. This doesn’t just make things a little faster, it means that the game has changed and you can do things that you previously couldn’t Offloading the processing. Fast JavaScript is great, but you still have a bottleneck in the old single threaded architecture of the browser. Web Workers gives us a nice API (no threading APIs here!) to offload the work. As we think that we can do more (due to the faster JS) we find ourselves with more code, and we need to let the browser do its thing while this code runs.

Fast JavaScript is great, but you still have a bottleneck in the old single threaded architecture of the browser. Web Workers gives us a nice API (no threading APIs here!) to offload the work. As we think that we can do more (due to the faster JS) we find ourselves with more code, and we need to let the browser do its thing while this code runs. Multiple processes. Even with fast JavaScript and Web Workers, we need to isolate our worlds. If you have Gmail, a calendar, Bespin, and three other real Web applications running, all polling for updates and the like, it is too easy to have them collide as they all ask the CPU to do work. With the new multiprocess architectures we side step this issue. When I am in Bespin I want it to have as much nice as possible.

Even with fast JavaScript and Web Workers, we need to isolate our worlds. If you have Gmail, a calendar, Bespin, and three other real Web applications running, all polling for updates and the like, it is too easy to have them collide as they all ask the CPU to do work. With the new multiprocess architectures we side step this issue. When I am in Bespin I want it to have as much nice as possible. Rich graphics. We are used to having text, boxes, images to work with. That’s kinda it! Isn’t it amazing to think about what we have done with those simple building blocks? With Canvas, SVG, and the great new CSS primitives (border radius, css animations, css transitions, css shadows, and more) we get to think outside of the box.

We are used to having text, boxes, images to work with. That’s kinda it! Isn’t it amazing to think about what we have done with those simple building blocks? With Canvas, SVG, and the great new CSS primitives (border radius, css animations, css transitions, css shadows, and more) we get to think outside of the box. Desktop services. We need to reach out. Real applications need to talk to the clipboard, get geolocation, access your address book, etc. We need to solve this problem to get past the cliff that we currently experience where people say “but to do X, you need to use a native desktop framework”. We need a trust model that works, and to get the APIs into the browser.

What we end up with is this a metamorphosis from the first planes to the jet:

This is why I am excited to work on new developer tools for the Open Web. I am jazzed that the community is making this happen. Browser vendors, web developers, together we can make a big difference.

Of course, when the koolaid wears off I am always acutely aware of the problems that we have on the platform. There is a long way to go, and we can’t just ignore old browsers. Fun times ahead though!