I recently had a conversation with Brad Neuberg about the concept of using a plugin to have an Open Web competitor. Brad suggested that this was precisely what Google Gears was trying to do (sort of). In a recent post of his (which has since sparked a conversation across the blogosphere), Brad discussed the definition of the term Open Web and its importance, but also how Gears can help to push the web forward. In our conversation, he asked, “If you were to add functionality to Gears that doesn’t enhance the web’s existing technologies, but rather creates new ones that live in the browser through Gears what would these look like?” The following was my response:
1. I think data binding needs to be built in – with mechanisms for formatting and validation (and if you mention XBL, I’ll respond with a blank stare. Seriously? Stuff like that is the reason Flex and Silverlight are looking so good right now.)
3. CSS is a really cool idea, but it needs some re-evaluation. First of all, it needs better layout management. The hoops required currently are a little obscene. Even adding a “layout-manager” property with a few possibilities would go a long way. I would also definitely add CSS variables that, again, could be integrated with the binding layer. CSS expressions were definitely a mistake, but variables would be extremely powerful. For some ideas, just look at what webkit is doing with their css transformations and animations. It would be so much simpler to just put a variable in. Then a simple easing library could be used to change the variable over time to create animations. Finally, I think that CSS could be better incorporated into the new component model. For example, it would be helpful to be able to scope rules to components, and allow custom tags to be selected.
It’s great to talk about the deficiencies in the technologies we have, but to really move forward, we need a conversation for what can come next. And by next I guess I mean the next next. HTML5, CSS3, and JS2 are all really great things. I encourage people to be as involved in those as possible, but I still have a lot of doubts about its ability to stay pragmatic, on track, and happen quickly.
If you could snap your fingers and have a plugin with a wide install base built for web applications (as opposed to web sites), what would it look like? You can leave a comment, or even better, take a look at the group.