Is HTML for Pages or Apps?
As I was learning about Polymer today at Google I/O, one of the speakers said something that sounded funny to me. I realized it is because I am old.
No really, it is because I am old.
I remember when the web "came into being". At least publicly. Back then, we thought of the web as a set of pages. My understanding of HTML, and i think most peoples was that HTML was a markup languages for creating hyper-linked pages. And pages are generally thought of as presenting information, like you would in a book, magazine or newspaper.
But don't let that interpretation fool you. My co-workers and I started creating Web applications very quickly. But back then, you didn't think of the application the same way that you do today with single page JavaScript applications.
So when the speaker today started talking about web components and especially components like animated page holders my brain did a little hiccup.
I realized that Web Components sound a lot like the components from a GUI framework, like NEXTSTEP, Cocoa, Carbon, Windows, Motif, AWT or Swing. Basically Polymer and the other web component frameworks are pushing the browser toward being a graphical application platform.
Now for some of you this may be no surprise.
To be honest, I shouldn't say I was surprised. I have written single page application that basically abused HTML and CSS into becoming a GUI application framework.
But web components aren't about abusing the browser. They are a real standard for creating a different Web platform. In other words, Web components allow me to write Web applications the same way I wrote Java Swing applications. At the same time, the browser still allows me to use HTML and CSS to create informational pages, like this blog, where I think about formatting as a page layout problem.
And there in lies the core of my realization today. I now have two ways to think about the browser. First, the browser is still the same page layout engine it was when Tim Berners Lee invented HTML. Of course we have a lot of new power with CSS, but ultimately I can use the browser to deliver pages to people. But the browser is also becoming a true application platform, where I compose applications from encapsulated components.
With the release of Polymer, X-Tag and other web component frameworks, along with the underlying web component standards, the Web application platform is truly coming into existence. We don't have to beat it into submission anymore. The browser is finally the window in which we can build applications.