Web 3.0?

Part of my job is to keep on top of trends, technology happenings, buzz, gossip, etc. It’s fun, and it’s made possible because so much of that is available on the net (I don’t need to learn golf), and much of it through RSS and related feeds (it’s all “in one place”).

As a result, I spend a lot of time in bloglines, my current aggregator of choice. As much as like bloglines, and am quite pleased with its sparse user interface, which keeps mostly out of my way, I find that I wish it were more efficient still. I’m puzzled to see that bloglines, as far as I can tell, hasn’t evolved its user interface since I started using it (months and months ago!). Compared to flickr’s evolution in the same time period, that’s like being “biologically stable”. Even gmail has evolved as many have noted recently (although less than I’d like).

My fantasy life includes finding the time to hack together a greasemonkey extension to enrich the keyboard shortcuts in gmail and add some to bloglines, to make using these tools as efficient as using a rich app. Coming from the world of “shipping software” , it’s frustrating to see that something as “80’s” as full (let alone customizable) keyboard shortcuts isn’t considered a baseline requirement for a high-end webapp in 2005 (I know Mozilla can hack it).

Then again, when I find out the lengths that people like Alex Russell have to go through to deal with the history mechanisms in modern browsers, maybe it’s not that surprising. Simple things are hard, and hard things are just way too hard.

I do hope that Alex and the Dojo folks (or others) succeed in building a popular, higher level abstraction for web 2.0/ajax apps, or it’ll just remain the province of a few privileged companies, which would be a shame, and is certainly not in line with Sir Tim’s view of what the Web should be. In my mind, success will have been achieved when it’s as easy to build an interactive web app as it was to build a HyperCard stack.

Part of me feels that what’s really needed (assuming we have the collective energy for it) is a truly new programming metaphor, that understands the implications of web architectures deeply, including the need to distribute computational tasks based on differing latencies, persistence capabilities, user interface requirements, data security constraints, and more. Here’s a fun thought experiment: what kind of programming language would you want in a Web 3.0 universe, assuming (please!) that you’re not stuck with JavaScript on the client, and that (please?) you could write one program, not one per web page on the client and one (or more) on the server? Wouldn’t it be nice?

You might want something like E4X, although that seems too shallow a shift (if it’s got a spec, it can’t be that much of a paradigm shift). You might want a language that thought about security and distributed systems from the start? Maybe it’d be something built on a small VM that you could reasonably see in enough key browsers? What mountains would have to move for such a scenario to pan out, I wonder…


  1. Do you think it’s a generational thing? Our generation spent its neurons on scripting languages, CGI and servlets, instant messaging, etc.; maybe that’s all we had in us, and we have to wait for kids who are growing up with that stuff, and taking it for granted, to push the next rock up the hill.


  2. If you’re thinking in terms of human generations, I think that’s giving up too easily. I’m quite sure that this generation can do better, although I wouldn’t be surprised if the catalyst for the paradigm shift heralded above was an 18-year old with a bright idea.

    The problem isn’t so much that CGIs is all we had in us, as much as we had to figure out how the whole thing could work in the first place. Now, we know a lot more (about the real-world “efficiency” of languages like C++, for example, and about the value of well-defined data representations), and we can make new mistakes.


  3. I don’t think you can get the advantages of One Rich Platform without ruining the web’s scalability. viz. the whole REST argument. So, no silver bullet. Anything that looks like the web has irreducible complexity.

    But I agree our paradigms for server programs suck. Have you seen the continuation-oriented frameworks, like Seaside? You can put a multiple-round-trip web interaction inside a conditional.

    My blue sky: I’ve wanted something a little higher level — something that can define a REST service and a user model and all other constraints, and then generate stubs. So the app would really be web-centric, as in: defined around a graph of web interactions.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s