10 years ago the default was probably VB6/Windows, these days it’s just the web. Why?
If we don't know what's right about the web, then it's hard to know how to build on the success.
4 reasons why; and they've all got something vital in common.
This is the easy one, in retrospect it's amazing that it took so long for the concept of a 'player' to catch on. A player (like a web browser, flash runtime etc) allows the download component to be smaller, it can provide a sandbox to keep the user safe and it can provide many of the libraries that otherwise would have been part of the install.
Zero install saves time, builds trust, reduces clicks and confusion, saves space and is much easier to use.
HTML makes it hard to create overlapping windows, complex dialogs, hidden options, deep menu structures - all the things that can make traditional applications harder to use. It's easy, when someone doesn't 'get' an application, to think that they've got a problem, and that they need a training course.
But it would be better if we saw it another way: the application author has a problem - their app is too complex. Developers are very good at coping with complexity, but too often assume that others are too.
The web makes it hard to pass the complexity on, so people create simple UIs instead.
Lazy Text means that web pages are:
- hackable. Which means advanced users can scrape, mash and plot, and normal users can embed YouTube videos in their blogs.
- debuggable. When makes them easier to fix, even outside of the development environment.
- learnable. Which means HTML can be taught in most schools.
- Postel’s Law compliant. Which means they work. Postel’s Law makes browsers harder to write, can makes pages a mess and is a disaster for security, but there are no exceptions to Postel’s Law.
Creating the development platform for the world is quite a responsibility. It would be a mistake to give it to Dr. Evil. There are degrees of openness, and while the web is not in the ideal position, it does appear that there are forces currently taking it in that direction.
Probably, the ideal position would have:
- Open patent free specs
- Multiple implementations, at least one being open source
- No monopolies
Clearly the web does not have a monopoly free position - it’s not as open as most people would like, but at the moment, each month we getting closer to the ideal.
What do these 4 have in common?
Zero Install means that the web will scale to billions of pages.
Lazy Text means that the web will scale to millions of developers.
A Simple UI Model means that the web will scale to billions of users.
Openness means that the web will scale to thousands or millions of enablers (the creators of browsers, servers, development tools, etc)
The web is probably the most scalable system that anyone has ever designed. The Chinese Army, the Indian State Railways and the UK Health Service are all big, but they're nothing on the size of the web. It’s perhaps not surprising that what made it successful was it’s scalability potential.