Tuesday, November 18th, 2008

Fixing the Web, Part I

Category: Editorial

Over on my personal blog I’ve started a new semi-regular series called Fixing the Web. From Part I of the series:

We’ve made major progress on the web since 2005 and the rise of Ajax. JavaScript toolkits like JQuery, Dojo, and YUI have expanded what we can do with web browsers and increased our productivity, while dynamic high-profile web sites have legitimized using DHTML and Ajax. The rise of web browsers like Firefox, Safari, and Chrome have done a huge amount to help revive the web and web applications. Developers such as all of us in the Ajax community have shown that it’s possible to do things with the web cross-browser that no one expected, including Comet, cross-browser vector graphics, and more.

However, even with all of the amazing work the last few years, the web has some very serious foundational issues that we need to solve or else it’s game over. In the next year or two we will begin to hit the limit of what we can achieve with clever JavaScript tricks (I’ve literally made a career out of this browser black magic). As an industry we’ve put off having to solve some very serious issues. Unfortunately the bill is going to come due soon, and if we don’t take action, solve these issues, and push the web in a new direction some other possibly much less open technology will take over the bulk of new development.

We need to do something about this. This blog post is part of a new, semi-regular series called Fixing the Web. The goal is to highlight these issues, identify potential solutions, and have a dialogue. I don’t claim to have the answers for the situation we are in. However, I do know this — if there is any community that potentially has what it takes to solve these issues I believe it’s the Ajax and JavaScript communities, which is why this is a perfect place to have these discussions.

I propose some starting ways to address this and fix things:

To start, I see four areas that are broken that must be fixed:

1) Make developing for the web much easier and more powerful. There are gaping holes in the web that need to be fixed. Examples include:

* Layout – layout needs to be _much_ easier. We need real, kick-ass, drop dead simple layout. You shouldn’t have to be a CSS wizard to get multiple columns, for example.
* JavaScript++ – JavaScript needs to evolve for programming in the large and medium.
* Bling – Browser’s need much better native multimedia support, real vector graphics, and _fast_ (really fast) animation
* Tooling – We need much better open web tooling support, such as IDEs.

2) Solve the standards problem. The web standards process is broken. There is a real disconnect between developers needs and the W3C’s standard setting process, creating a dangerous power and leadership vacuum. We need to come up with better mechanisms for creating standards, as well as organizations that can help manage them.

3) Solve the distribution problem. Both Gears and Yahoo BrowserPlus are attempting to address this area. There is just a sheer mass of inertia on the web. It doesn’t matter if you have the most amazing standards, developer tools, etc. if they aren’t in enough places to do anything. This problem can also be re-framed as ‘Solve the Internet Explorer problem’, because the other browsers are pretty damned good at getting things out there — IE is the mass that blocks any positive forward web progress. IE 8 is a start, but at the end of the day it’s not doing enough. This is also linked to how hard it is to do web development, since you have to be a wizard to know the potholes or do crazy workarounds.

4) Solve the innovation problem — There is a saying in politics that you create ideas so that you can draw on them when there is a crises, such as we are seeing now. Much of the innovation on the web has surprisingly happened by Flash, with some by Silverlight lately — when we get excited about being able to do video on the web, which is great, that’s a pretty sad indictment of the open web ‘owning’ the future. We’ve got to have better mechanisms for stamping out potential futures and innovation that can then compete, the successful ones turning into standards. Mozilla has done a good job of this with the web “concept cars” type work they’ve been doing.

What do you see as the major areas we need to address? Expect to see the issues above, and others, discussed in future blog posts in this series.

Posted by Brad Neuberg at 8:30 am

3.2 rating from 28 votes


Comments feed TrackBack URI

Maybe I’m missing the point entirely, but arent these problems already solved, or being solved?
Layout: CSS3, HTML 5 In their final stages
JavaScript++ : ES-Harmony Planned release early next year
Bling: Canvas, SVG Both planned to be based on OpenGL ES in the near future. Also let us not forget about: V8, TraceMonkey, and SquirrelFish
Tooling: Aptana
For Point 2 on the standards problem I’ll have to agree with you there. But the WhatWG is doing a pretty decent job in comparison.
Point 3: I don’t see this problem as ever going away. Too many people don’t upgrade their browser until they upgrade their computer. We will always have to deal with older browsers/software. The power of the web comes more from its mashability with everything under the sun not the quality of WHAT is mashed up. The Interweb is a large mass and as such moves slowly. The trick is being able to raise what the lowest common denominator is that we have to deal with.
Point 4:

Much of the innovation on the web has surprisingly happened by Flash, with some by Silverlight lately

I think that’s pretty debatable especially with the recent advancements between Webkit and Mozilla over the past year, I guess more clarification would be needed on that point.

Comment by TNO — November 18, 2008

Excellent post – I think this sentiment strikes a chord in developers everywhere. I hate to join the IE-trashing mob, but I have to agree that it is the “mass that blocks any positive forward web progress.” Even on my extremely developer-oriented blog, 13%+ of my hits come from IE6/7. On more mainstream sites that number can jump in excess of 80%. If Microsoft could find a way to ween users off of the old versions of IE, we could stop losing sleep over png alpha values in IE6, float bugs in IE7, and leave box-model hacks as a not-to-pleasant relic of pre-standards web development. Most browser venders do a spectacular job of getting users to upgrade – why is this not true of IE?

Comment by jmar777 — November 18, 2008

An idea I’ve been tossing around lately is that one of the problems currently is that the platform is completely in the browser. That is, the implementation of how layout, etc., works, is all in the browser. Obviously, this is the way it always has been, but really, it has some serious drawbacks. After all, if the implementation is in the browser, then each browser will inevitably have its own, somewhat differing, implementation, causing big headaches for all.

Obviously, a lot must be implemented in the browser. But wouldn’t it be neat – especially with JavaScript becoming so much faster lately – if a large portion of the browser was actually written in JavaScript? Then, all browsers could use the same JavaScript by default – or, any site could supplement their own JavaScript-based browser implementation.

This JavaScript code would contain all the code necessary to perform the layout of objects on the page. The JavaScript would talk to a much lower-level set of components and commands to actually draw everything.

I’m still not sure exactly how it would work, and I’m pretty sure that JavaScript is not fast enough (yet) for this kind of work. But the thought is still interesting.

Comment by ialexi — November 18, 2008


Excellent post. Of course, getting large corporates to drop IE6 would play a major part in fixing the web. I’d love to see some practical ideas on how to do that.

I’ve suggested making all our internal sites IE7 compliant first (which will take at least a year) before looking at cross-browser compliance.

Comment by igitur — November 18, 2008

Excellent post. Cannot agree with you more on 1.), especially the layout and JavaScript related issues. I have been impressing myself with some of the UIs I’ve been designing lately, but having to tweak half a dozen browsers (or that’s what it feels like) is simply to taxing on how much time is spent in the overall development process. If this could be reduced, innovation will flourish, IMO.

Comment by JoeMcCann — November 18, 2008

Because an IE upgrade can result in system instability. Internet Explorer is ass deep in large businesses and networks unlike other browsers and has been for years. Risking the break in backwards compatibility would be a nightmare. So until people move away from windows 2000 (where IE6 is the best you can get) and windows XP (where IE7 is optional) and Vista (where IE8 is optional) we will continue to have issues. Microsoft does its best to support older products and does a damn good job with it you must admit. The bigger issue is the fact that the end of life for this software is not in the near future (plus take into account the time it would take for the user to change OSes/browsers after the fact).

Comment by TNO — November 18, 2008

@ialexi: I think we need to look at what is needed to implement decent application layout from javascript. Some of the issues of the top of my head: js/dom interaction performance (browsers really need to focus their optimization efforts there), the need for a “standard” javascript layout library, just like how there are emerging standards for mashups, and a migration path to future css styles for the javascript layout systems.

Comment by Joeri — November 18, 2008

hehe… i came here using ie5.0 just to screw your statistics up! :) really, my boss asked me to check how our app looks like in ie5, so here i am with windows98 and ie5…
what an experience!

Comment by mare — November 18, 2008

I wonder whether naming and shaming companies who’s IT dept have not upgraded the company machines to ie7 would work?

Comment by fighne — November 18, 2008

On mulling the discussion further, I think getting users off of IE6 is going to be up to developers – not Microsoft or corporations. Stop supporting it, provide a friendly notice as to why the site looks awful, an explanation regarding why it’s not supported, and a link to an upgrade. As the IE6 surfing experience gets progressively worse, people will migrate.

Comment by jmar777 — November 18, 2008

@ialexi: That’s a very interesting idea. It sounds like it might be useful to define a small set of very fast operations that would be cross-browser, such as something equivalent to the BlitBit call to send things to the screen and the ability to deal with a tree of DOM-like objects. Then, if fast JavaScript were available, we could try to do as much as possible at the JavaScript layer. Dion and I were kicking around ideas on how to have stronger web extensibility models, like what is in XBL 2, and this fits into this idea.

@igitur: I’ve wanted to see some strong data to understand how much the corporate market creates the IE inertia that we see. If it’s 70%, for example, then as you suggest this would be a great place to target. How do we induce change here though? Many of these corporate shops have Windows Update turned off and are very conservative. It might be useful to understand their motivations better. Also, one thing we’ve tossed around is whether there are a few companies that are so large (such as GE) where just targeting the top 10 of the Fortune 500 for example could shift the numbers a bit. Again, I wish there was some better hard data.

@TNO: Good points. Since IE is so deep in the OS I can see enterprises hesitancy in upgrading it. Microsoft is actually very good at supporting older products, as you mention. Also, good point that the Canvas tag could be used as a kind of “BlitBit” to rebuild things on top of, though unfortunately IE just doesn’t have the JavaScript or animation performance to make this currently tenable.

@mare: LOL. Internet Explorer 5… wow, that’s old school :)

@fighne: Not sure. Again, I’d love to understand their motivations better. Anyone here come from that world? What would motivate them to upgrade their browsers?

Comment by Brad Neuberg — November 18, 2008

We’ve tried desupporting IE6, but our customers won’t let us. I don’t think there’s anyone that is supporting IE6 out of choice instead of necessity. So, the argument of “developers will just have to stop supporting it” is not going to fly I’m afraid. Where I see IE6 being used, it’s mostly because upgrading to IE7 risks breaking a lot of stuff and the process takes a long time. The core problem is that IE is too deeply tied into the OS. Perhaps the community could work on providing a corporate browser based on firefox or webkit that doesn’t break anything, is easy to roll out company-wide, and easy to keep secure? As I understand it, IE is still the easiest browser to manage centrally.
On a different topic, I don’t see canvas as a solution for layout at all. I want better layout tools in html and css, not some alternate system bolted on. I might as well use flex in that case, which is much nicer to develop in if you don’t mind it not being html-based.

Comment by Joeri — November 18, 2008

@Joeri: That’s interesting to hear that IE is still the easiest browser to manage centrally. Is that due to enterprises using their own Windows Update server? Any other things that make it easier? I agree that we need better layout tools for html and css themselves versus creating another layer with Canvas.

Comment by Brad Neuberg — November 18, 2008

@Brad: I’m not a specialist by any stretch, but generally corporations drive all updates and configuration centrally, through something like WSUS for the software updates, and active directory for configuration. IE makes it easy to cherry-pick updates, so admins can only push those updates they really want to, and leave out the others. IE updates are also neatly integrated into microsoft’s management tools. Another big advantage for IE is that it makes it really easy to change the configuration centrally, based on active directory hierarchical structures. On the back-end, this just modifies the registry, so for the other browsers it’s just a matter of exposing all settings as registry settings and providing management consoles. I don’t know how far along they are in that.
I guess what needs to happen here is for someone like google or mozilla to go take a look at “the dark web”, by which I mean the corporate networks, and see what the real needs are there. Too much of the ajax community is focused on the public web, but I wouldn’t even go so far as to assume that the public web is the majority of the web applications out there.

Comment by Joeri — November 18, 2008

Plain and Simple, most System Administrators don’t know jack about web design, but they know JScript/VBScript and table layouts well enough to build most of the utility HTML Applications they need. Upgrading the browser can and will break many of these and there is no viable alternative which supports all the WMI classes, COM objects and native access that VBScript/JScript in HTA’s support (For Example the Add/Remove programs utility in the Control panel is an HTML Application). These system admins for the most part don’t care if you can view your yahoo on your computer as much as they care that their network managing HTA applications don’t break. If a better, lightweight alternative was provided I know a few Network admins willing to use it.

Comment by TNO — November 18, 2008

I think we might have to wait until corporations make the next OS jump from Windows XP before we really see change. Hopefully Windows 7 will live up to expectations, and we will see lots of users go from IE6 to IE 8 or something.

Comment by jonhartmann — November 18, 2008

What I’ve seen holding back migration to IE7 have mostly been two things. Firstly, legacy web apps, in-house developed or bought in and no longer supported. Secondly, the IE7 security model, which is different enough that we’ve seen several breaking changes affecting our software, let alone other products. Especially the security model around embedded browser controls was affected. There are a lot of applications that use an embedded browser control for a part of their functionality, and I can imagine these would take a long time to upgrade.
@Jonhartmann: good luck holding your breath on that one. As late as last year we had customers upgrading from windows 2000 to windows xp. We have a lot of customers on oracle 9, a lot of customers on PHP4, and despite our newest version having been released half a year ago, we’re only now seeing the first major roll-outs. The key is that these are companies for whom technology is only a tool, not a core business, so their I.T. department has a simple mission: make sure that it works, all the time. It’s understandable that they’re reticent to rock the boat.

Comment by Joeri — November 18, 2008

w/r/t standards, what about WHATWG? Not sure that anything other than a process like this, eventually ending in some “standard organization”, makes sense. How much more quickly can it evolve?

Comment by pmuellr — November 18, 2008

What we need is a standard that recognizes that the web is composed of both applications and content. It seems to me that for the last decade or so we have been trying to make applications out of documents. Its like building an application in an excel document with VB. Sure there are some situations where that is appropriate but in excel you’re never going to get the same power as you would developing a full-on native application.
I think some of the problems are things mentioned like layout and standards acceptance/implementation. I also think that we need to recognize the web is largely an application development platform and the browser is an operating system. It’s a whole different way of thinking that would change the web forever for the better.
I know this is a just a pipe dream. For any change like this I would expect to have to wait another decade before version 1, which is too bad. Imagine a world where the limits of the web were the same as the limits of your imagination instead of the limits of the _Document_ Object Model.

Comment by blulrryrunner — November 19, 2008

I agree. Your post said everything.
I see big problems about item 4 (Innovation).
How to stop innovation ?
Stop thinking?

Comment by ViniciusCamara — November 19, 2008

Leave a comment

You must be logged in to post a comment.