I am reporting on a break-through idea. I have to describe it. It will change the world. Ar at least change the World Wide Web. It’s not “my” idea. It was a result of a brainstorming session. I’ll explain:
It’s the last day of Ajax Experience. It started off with a keynote by Kevin Lynch from Adobe. It was an amazing demo. He took a web application using Jack Slocum’s EXT and published it using Adobe AIR. This allowed the application to run as a desktop app in any operating system. It was HTML, CSS and JavaScript, but running without a browser. It used WebKit, the browsing engine that powers Apple’s Safari. So it basically had a specialized browser running inside Flash, on the desktop. This is when I had a seed of an idea: “Hmm, I wonder if they could embed that in Firefox and IE?”
I didn’t pursue this line of thinking too much at the time. Later, this evening, I was getting ready to leave when Brad Neuberg and Paul Abrams started a little brain storming session. Brad did an awesome job of moderating. Seriously, he was a study in patience, tact and inspiration. (Brad works on the core of Dojo) We were imagining a different WWW. A different paradigm of viewing the web, where “desktop” and “web” became blurred and “public” and “private” became important. (More on that another time)
The most exciting idea, which several people seemed to be noodling on at the same time was what I am loosely calling Browser Possession. It goes like this:
- You make a web page using HTML, CSS and JS.
- You test it in ONE browser. Probably Webkit.
- You include a single JS at the top of your page, a spinoff off of SWFObject.js
- The JS would instantiate a SWF file which would fill the 100% of the height and width of your browser window.
- The JS would then suck in the HTML of the page, and feed it to the Flash Movie.
- Then the Flash movie would instantiate Webkit inside it and render the page.
OR
- Same as above, but instead of a Flash movie, it would be a Webkit native plugin.
- This would need it’s own JS that was specific to this task.
What are the benefits? First of all, I would only have to test ONE browser, regardless of whether you used IE, FF, or Safari. Inside those browsers, would be the soul of Webkit, who is rendering the page, NOT the native rendering engine. Webkit would have taken possession of the page rendering on demand of the publisher. THEN, when a new version of Webkit is released, it is up to the publisher to change his page to use the new plugin ONLY if they wanted to. Let’s say you had a page that you never wanted to upgrade. You would specify Webkit 1.0 and never upgrade that to Webkit 2.0. Maybe even allow for Gecko plugins or IE rendering plugins. Then you could say, “I want this browser to render my page, regardless of what browser shell the user may be using!” This also allows the page to be very simple so that Google can still read it and index it.
This would solve so many problems and create so many opportunities.
- It would reduce cross-browser testing to zero.
- It would allow much more advanced applications to be built because you wouldn’t have to yield to the lowest common denominator.
- It would simplify pages because you wouldn’t need all the extra divs that are only there because of box model problems.
- It would speed development because you wouldn’t need to learn all the different browser language quirks.
- It would allow plugins with different languages like Python or Ruby on the client.
- It wouldn’t break the Web now, and it would ensure never to break the Web later.
- It would allow more radical upgrades of browsing engines because backward-compatibility would be a non-issue.
Apple could do this and convert a whole slew of people to be designing for Webkit (which powers Safari and the iPhone)
Side note: Although Apple didn’t have a presence at AjaxExperience, I noticed an important thing. 9 out of 10 developers had Macs. Very few PC’s. I thought this was really interesting. Plus, I saw at least 6 iPhones. I used one. They are extremely nice to use.
This idea is breakthrough. I think almost everything we need to accomplish it is available today. Whether a Flash plugin or a WebKit plugin, the infrastructure exists. It would completely change how we build web applications and sites. It would make IE and FF irrelevant. They would become shells. At that point the “browser” has alot less meaning. It would ensure that pages would be rendered the way the developer wanted them to be rendered. There are so many good things that would come of this. We would be fast-forwarding the web by 10 years, right now.
This is the biggest idea, since jQuery. And for me, that is saying alot.
Whatya think?